--- /srv/rebuilderd/tmp/rebuilderdPnxZ5K/inputs/libfftw3-mpi-dev_3.3.10-2+b1_armel.deb +++ /srv/rebuilderd/tmp/rebuilderdPnxZ5K/out/libfftw3-mpi-dev_3.3.10-2+b1_armel.deb ├── file list │ @@ -1,3 +1,3 @@ │ -rw-r--r-- 0 0 0 4 2024-11-29 16:25:41.000000 debian-binary │ -rw-r--r-- 0 0 0 1028 2024-11-29 16:25:41.000000 control.tar.xz │ --rw-r--r-- 0 0 0 50932 2024-11-29 16:25:41.000000 data.tar.xz │ +-rw-r--r-- 0 0 0 51424 2024-11-29 16:25:41.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: armel │ │ │ Maintainer: Debian Science Maintainers │ │ │ -Installed-Size: 347 │ │ │ +Installed-Size: 357 │ │ │ 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:25:41.000000 ./usr/ │ │ │ drwxr-xr-x 0 root (0) root (0) 0 2024-11-29 16:25:41.000000 ./usr/include/ │ │ │ -rw-r--r-- 0 root (0) root (0) 36969 2024-11-29 16:25:41.000000 ./usr/include/fftw3-mpi.f03 │ │ │ -rw-r--r-- 0 root (0) root (0) 9624 2024-11-29 16:25:41.000000 ./usr/include/fftw3-mpi.h │ │ │ -rw-r--r-- 0 root (0) root (0) 18678 2024-11-29 16:25:41.000000 ./usr/include/fftw3l-mpi.f03 │ │ │ drwxr-xr-x 0 root (0) root (0) 0 2024-11-29 16:25:41.000000 ./usr/lib/ │ │ │ drwxr-xr-x 0 root (0) root (0) 0 2024-11-29 16:25:41.000000 ./usr/lib/arm-linux-gnueabi/ │ │ │ --rw-r--r-- 0 root (0) root (0) 126840 2024-11-29 16:25:41.000000 ./usr/lib/arm-linux-gnueabi/libfftw3_mpi.a │ │ │ --rw-r--r-- 0 root (0) root (0) 127424 2024-11-29 16:25:41.000000 ./usr/lib/arm-linux-gnueabi/libfftw3f_mpi.a │ │ │ +-rw-r--r-- 0 root (0) root (0) 132012 2024-11-29 16:25:41.000000 ./usr/lib/arm-linux-gnueabi/libfftw3_mpi.a │ │ │ +-rw-r--r-- 0 root (0) root (0) 132596 2024-11-29 16:25:41.000000 ./usr/lib/arm-linux-gnueabi/libfftw3f_mpi.a │ │ │ drwxr-xr-x 0 root (0) root (0) 0 2024-11-29 16:25:41.000000 ./usr/share/ │ │ │ drwxr-xr-x 0 root (0) root (0) 0 2024-11-29 16:25:41.000000 ./usr/share/doc/ │ │ │ drwxr-xr-x 0 root (0) root (0) 0 2024-11-29 16:25:41.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:25:41.000000 ./usr/share/doc/libfftw3-mpi-dev/changelog.Debian.armel.gz │ │ ├── ./usr/lib/arm-linux-gnueabi/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 │ │ │ │ -00000234 t cost_hook │ │ │ │ -00001254 t default_sz │ │ │ │ -000003a8 t default_sz.constprop.0 │ │ │ │ -000009ec t default_sz.constprop.1 │ │ │ │ -00000f2c t default_sz.constprop.2 │ │ │ │ +00000258 t cost_hook │ │ │ │ +000013a8 t default_sz │ │ │ │ +000003f0 t default_sz.constprop.0 │ │ │ │ +00000a90 t default_sz.constprop.1 │ │ │ │ +0000102c 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 │ │ │ │ -00002244 T fftw_mpi_cleanup │ │ │ │ +00002454 T fftw_mpi_cleanup │ │ │ │ U fftw_mpi_conf_standard │ │ │ │ U fftw_mpi_default_block │ │ │ │ U fftw_mpi_dtensor_canonical │ │ │ │ U fftw_mpi_dtensor_destroy │ │ │ │ -00003e34 T fftw_mpi_execute_dft │ │ │ │ -00003e3c T fftw_mpi_execute_dft_c2r │ │ │ │ -00003e38 T fftw_mpi_execute_dft_r2c │ │ │ │ -00003e40 T fftw_mpi_execute_r2r │ │ │ │ -000021d4 T fftw_mpi_init │ │ │ │ +000042e0 T fftw_mpi_execute_dft │ │ │ │ +000042e8 T fftw_mpi_execute_dft_c2r │ │ │ │ +000042e4 T fftw_mpi_execute_dft_r2c │ │ │ │ +000042ec T fftw_mpi_execute_r2r │ │ │ │ +000023cc T fftw_mpi_init │ │ │ │ U fftw_mpi_is_block1d │ │ │ │ -000023e4 T fftw_mpi_local_size │ │ │ │ -000024a4 T fftw_mpi_local_size_1d │ │ │ │ -00002530 T fftw_mpi_local_size_2d │ │ │ │ -000024f8 T fftw_mpi_local_size_2d_transposed │ │ │ │ -000025ac T fftw_mpi_local_size_3d │ │ │ │ -00002564 T fftw_mpi_local_size_3d_transposed │ │ │ │ -00002264 T fftw_mpi_local_size_guru │ │ │ │ -000015a0 t fftw_mpi_local_size_guru.part.0 │ │ │ │ -00001034 t fftw_mpi_local_size_guru.part.0.constprop.0 │ │ │ │ -00002304 T fftw_mpi_local_size_many │ │ │ │ -00002454 T fftw_mpi_local_size_many_1d │ │ │ │ -000022a8 T fftw_mpi_local_size_many_transposed │ │ │ │ -00001af4 t fftw_mpi_local_size_many_transposed.part.0 │ │ │ │ -0000063c t fftw_mpi_local_size_many_transposed.part.0.constprop.0 │ │ │ │ -00000b8c t fftw_mpi_local_size_many_transposed.part.0.constprop.1 │ │ │ │ -0000237c T fftw_mpi_local_size_transposed │ │ │ │ +00002658 T fftw_mpi_local_size │ │ │ │ +00002718 T fftw_mpi_local_size_1d │ │ │ │ +000027a4 T fftw_mpi_local_size_2d │ │ │ │ +0000276c T fftw_mpi_local_size_2d_transposed │ │ │ │ +00002820 T fftw_mpi_local_size_3d │ │ │ │ +000027d8 T fftw_mpi_local_size_3d_transposed │ │ │ │ +00002480 T fftw_mpi_local_size_guru │ │ │ │ +00001724 t fftw_mpi_local_size_guru.part.0 │ │ │ │ +0000115c t fftw_mpi_local_size_guru.part.0.constprop.0 │ │ │ │ +00002578 T fftw_mpi_local_size_many │ │ │ │ +000026c8 T fftw_mpi_local_size_many_1d │ │ │ │ +000024f0 T fftw_mpi_local_size_many_transposed │ │ │ │ +00001c70 t fftw_mpi_local_size_many_transposed.part.0 │ │ │ │ +000006ac t fftw_mpi_local_size_many_transposed.part.0.constprop.0 │ │ │ │ +00000c58 t fftw_mpi_local_size_many_transposed.part.0.constprop.1 │ │ │ │ +000025f0 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 │ │ │ │ -00002af4 T fftw_mpi_plan_dft │ │ │ │ -00002bd0 T fftw_mpi_plan_dft_1d │ │ │ │ -00002d44 T fftw_mpi_plan_dft_2d │ │ │ │ -00002f08 T fftw_mpi_plan_dft_3d │ │ │ │ -00003c1c T fftw_mpi_plan_dft_c2r │ │ │ │ -00003cf8 T fftw_mpi_plan_dft_c2r_2d │ │ │ │ -00003d90 T fftw_mpi_plan_dft_c2r_3d │ │ │ │ -00003a18 T fftw_mpi_plan_dft_r2c │ │ │ │ -00003af4 T fftw_mpi_plan_dft_r2c_2d │ │ │ │ -00003b84 T fftw_mpi_plan_dft_r2c_3d │ │ │ │ -000028a0 T fftw_mpi_plan_guru_dft │ │ │ │ -00003100 T fftw_mpi_plan_guru_r2r │ │ │ │ -00002a18 T fftw_mpi_plan_many_dft │ │ │ │ -0000393c T fftw_mpi_plan_many_dft_c2r │ │ │ │ -00003860 T fftw_mpi_plan_many_dft_r2c │ │ │ │ -0000329c T fftw_mpi_plan_many_r2r │ │ │ │ -000025f0 T fftw_mpi_plan_many_transpose │ │ │ │ -00003378 T fftw_mpi_plan_r2r │ │ │ │ -00003454 T fftw_mpi_plan_r2r_2d │ │ │ │ -0000363c T fftw_mpi_plan_r2r_3d │ │ │ │ -00002764 T fftw_mpi_plan_transpose │ │ │ │ +00002dc8 T fftw_mpi_plan_dft │ │ │ │ +00002ec4 T fftw_mpi_plan_dft_1d │ │ │ │ +00003054 T fftw_mpi_plan_dft_2d │ │ │ │ +00003234 T fftw_mpi_plan_dft_3d │ │ │ │ +00004070 T fftw_mpi_plan_dft_c2r │ │ │ │ +0000416c T fftw_mpi_plan_dft_c2r_2d │ │ │ │ +00004220 T fftw_mpi_plan_dft_c2r_3d │ │ │ │ +00003e14 T fftw_mpi_plan_dft_r2c │ │ │ │ +00003f10 T fftw_mpi_plan_dft_r2c_2d │ │ │ │ +00003fbc T fftw_mpi_plan_dft_r2c_3d │ │ │ │ +00002b44 T fftw_mpi_plan_guru_dft │ │ │ │ +00003448 T fftw_mpi_plan_guru_r2r │ │ │ │ +00002cd4 T fftw_mpi_plan_many_dft │ │ │ │ +00003d20 T fftw_mpi_plan_many_dft_c2r │ │ │ │ +00003c2c T fftw_mpi_plan_many_dft_r2c │ │ │ │ +000035f8 T fftw_mpi_plan_many_r2r │ │ │ │ +00002864 T fftw_mpi_plan_many_transpose │ │ │ │ +000036ec T fftw_mpi_plan_r2r │ │ │ │ +000037e8 T fftw_mpi_plan_r2r_2d │ │ │ │ +000039ec T fftw_mpi_plan_r2r_3d │ │ │ │ +000029f0 T fftw_mpi_plan_transpose │ │ │ │ U fftw_the_planner │ │ │ │ -000002d0 t local_size │ │ │ │ +000002f4 t local_size │ │ │ │ 00000000 b mpi_inited │ │ │ │ -00000078 t nowisdom_hook │ │ │ │ -00002008 t plan_guru_rdft2 │ │ │ │ -00001c94 t plan_guru_rdft2.constprop.0 │ │ │ │ -00001e60 t plan_guru_rdft2.constprop.1 │ │ │ │ +00000084 t nowisdom_hook │ │ │ │ +000021e8 t plan_guru_rdft2 │ │ │ │ +00001e3c t plan_guru_rdft2.constprop.0 │ │ │ │ +00002024 t plan_guru_rdft2.constprop.1 │ │ │ │ 000000dc t wisdom_ok_hook │ │ │ │ │ │ │ │ block.o: │ │ │ │ U MPI_Comm_size │ │ │ │ U __aeabi_idiv │ │ │ │ U __aeabi_idivmod │ │ │ │ -0000006c T fftw_mpi_block │ │ │ │ -0000016c T fftw_mpi_block_coords │ │ │ │ -00000058 T fftw_mpi_default_block │ │ │ │ -000000f8 T fftw_mpi_idle_process │ │ │ │ -00000418 T fftw_mpi_is_block1d │ │ │ │ -000003b4 T fftw_mpi_is_local │ │ │ │ -0000033c T fftw_mpi_is_local_after │ │ │ │ +00000090 T fftw_mpi_block │ │ │ │ +000001d0 T fftw_mpi_block_coords │ │ │ │ +00000070 T fftw_mpi_default_block │ │ │ │ +00000138 T fftw_mpi_idle_process │ │ │ │ +000004ec T fftw_mpi_is_block1d │ │ │ │ +0000046c T fftw_mpi_is_local │ │ │ │ +000003d8 T fftw_mpi_is_local_after │ │ │ │ 00000000 T fftw_mpi_num_blocks │ │ │ │ -00000014 T fftw_mpi_num_blocks_ok │ │ │ │ -00000090 T fftw_mpi_num_blocks_total │ │ │ │ -000001d0 T fftw_mpi_total_block │ │ │ │ +00000020 T fftw_mpi_num_blocks_ok │ │ │ │ +000000b4 T fftw_mpi_num_blocks_total │ │ │ │ +00000250 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 │ │ │ │ -000000f8 T fftw_mpi_dtensor_canonical │ │ │ │ -00000098 T fftw_mpi_dtensor_copy │ │ │ │ -00000030 T fftw_mpi_dtensor_destroy │ │ │ │ -00000034 T fftw_mpi_dtensor_md5 │ │ │ │ -000002e4 T fftw_mpi_dtensor_print │ │ │ │ -00000280 T fftw_mpi_dtensor_validp │ │ │ │ +0000015c T fftw_mpi_dtensor_canonical │ │ │ │ +000000d8 T fftw_mpi_dtensor_copy │ │ │ │ +00000054 T fftw_mpi_dtensor_destroy │ │ │ │ +00000058 T fftw_mpi_dtensor_md5 │ │ │ │ +0000036c T fftw_mpi_dtensor_print │ │ │ │ +00000308 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 │ │ │ │ -0000012c T fftw_mpi_rearrange_ny │ │ │ │ +00000130 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 │ │ │ │ -0000019c T fftw_mpi_broadcast_wisdom │ │ │ │ +000001a4 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 │ │ │ │ -00000888 T fftw_mpi_broadcast_wisdom_f03 │ │ │ │ +00000c60 T fftw_mpi_broadcast_wisdom_f03 │ │ │ │ U fftw_mpi_gather_wisdom │ │ │ │ -00000878 T fftw_mpi_gather_wisdom_f03 │ │ │ │ +00000c44 T fftw_mpi_gather_wisdom_f03 │ │ │ │ U fftw_mpi_local_size │ │ │ │ U fftw_mpi_local_size_1d │ │ │ │ -0000017c T fftw_mpi_local_size_1d_f03 │ │ │ │ +00000228 T fftw_mpi_local_size_1d_f03 │ │ │ │ U fftw_mpi_local_size_2d │ │ │ │ -000001c4 T fftw_mpi_local_size_2d_f03 │ │ │ │ +00000294 T fftw_mpi_local_size_2d_f03 │ │ │ │ U fftw_mpi_local_size_2d_transposed │ │ │ │ -000001fc T fftw_mpi_local_size_2d_transposed_f03 │ │ │ │ +000002e8 T fftw_mpi_local_size_2d_transposed_f03 │ │ │ │ U fftw_mpi_local_size_3d │ │ │ │ -00000240 T fftw_mpi_local_size_3d_f03 │ │ │ │ +00000350 T fftw_mpi_local_size_3d_f03 │ │ │ │ U fftw_mpi_local_size_3d_transposed │ │ │ │ -00000280 T fftw_mpi_local_size_3d_transposed_f03 │ │ │ │ -000000ec T fftw_mpi_local_size_f03 │ │ │ │ +000003ac T fftw_mpi_local_size_3d_transposed_f03 │ │ │ │ +00000158 T fftw_mpi_local_size_f03 │ │ │ │ U fftw_mpi_local_size_many │ │ │ │ U fftw_mpi_local_size_many_1d │ │ │ │ -00000124 T fftw_mpi_local_size_many_1d_f03 │ │ │ │ -00000064 T fftw_mpi_local_size_many_f03 │ │ │ │ +000001ac T fftw_mpi_local_size_many_1d_f03 │ │ │ │ +00000088 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 │ │ │ │ -000000a8 T fftw_mpi_local_size_transposed_f03 │ │ │ │ +000000f0 T fftw_mpi_local_size_transposed_f03 │ │ │ │ U fftw_mpi_plan_dft │ │ │ │ U fftw_mpi_plan_dft_1d │ │ │ │ -0000040c T fftw_mpi_plan_dft_1d_f03 │ │ │ │ +000005e4 T fftw_mpi_plan_dft_1d_f03 │ │ │ │ U fftw_mpi_plan_dft_2d │ │ │ │ -0000044c T fftw_mpi_plan_dft_2d_f03 │ │ │ │ +00000640 T fftw_mpi_plan_dft_2d_f03 │ │ │ │ U fftw_mpi_plan_dft_3d │ │ │ │ -00000490 T fftw_mpi_plan_dft_3d_f03 │ │ │ │ +000006a8 T fftw_mpi_plan_dft_3d_f03 │ │ │ │ U fftw_mpi_plan_dft_c2r │ │ │ │ U fftw_mpi_plan_dft_c2r_2d │ │ │ │ -000007f0 T fftw_mpi_plan_dft_c2r_2d_f03 │ │ │ │ +00000b7c T fftw_mpi_plan_dft_c2r_2d_f03 │ │ │ │ U fftw_mpi_plan_dft_c2r_3d │ │ │ │ -00000830 T fftw_mpi_plan_dft_c2r_3d_f03 │ │ │ │ -000007b0 T fftw_mpi_plan_dft_c2r_f03 │ │ │ │ -000003c8 T fftw_mpi_plan_dft_f03 │ │ │ │ +00000bd8 T fftw_mpi_plan_dft_c2r_3d_f03 │ │ │ │ +00000b20 T fftw_mpi_plan_dft_c2r_f03 │ │ │ │ +0000057c T fftw_mpi_plan_dft_f03 │ │ │ │ U fftw_mpi_plan_dft_r2c │ │ │ │ U fftw_mpi_plan_dft_r2c_2d │ │ │ │ -000006cc T fftw_mpi_plan_dft_r2c_2d_f03 │ │ │ │ +000009d8 T fftw_mpi_plan_dft_r2c_2d_f03 │ │ │ │ U fftw_mpi_plan_dft_r2c_3d │ │ │ │ -0000070c T fftw_mpi_plan_dft_r2c_3d_f03 │ │ │ │ -0000068c T fftw_mpi_plan_dft_r2c_f03 │ │ │ │ +00000a34 T fftw_mpi_plan_dft_r2c_3d_f03 │ │ │ │ +0000097c T fftw_mpi_plan_dft_r2c_f03 │ │ │ │ U fftw_mpi_plan_many_dft │ │ │ │ U fftw_mpi_plan_many_dft_c2r │ │ │ │ -00000754 T fftw_mpi_plan_many_dft_c2r_f03 │ │ │ │ -00000364 T fftw_mpi_plan_many_dft_f03 │ │ │ │ +00000aa0 T fftw_mpi_plan_many_dft_c2r_f03 │ │ │ │ +000004f4 T fftw_mpi_plan_many_dft_f03 │ │ │ │ U fftw_mpi_plan_many_dft_r2c │ │ │ │ -00000630 T fftw_mpi_plan_many_dft_r2c_f03 │ │ │ │ +000008fc T fftw_mpi_plan_many_dft_r2c_f03 │ │ │ │ U fftw_mpi_plan_many_r2r │ │ │ │ -000004dc T fftw_mpi_plan_many_r2r_f03 │ │ │ │ +00000718 T fftw_mpi_plan_many_r2r_f03 │ │ │ │ U fftw_mpi_plan_many_transpose │ │ │ │ -000002c8 T fftw_mpi_plan_many_transpose_f03 │ │ │ │ +00000418 T fftw_mpi_plan_many_transpose_f03 │ │ │ │ U fftw_mpi_plan_r2r │ │ │ │ U fftw_mpi_plan_r2r_2d │ │ │ │ -00000584 T fftw_mpi_plan_r2r_2d_f03 │ │ │ │ +00000808 T fftw_mpi_plan_r2r_2d_f03 │ │ │ │ U fftw_mpi_plan_r2r_3d │ │ │ │ -000005cc T fftw_mpi_plan_r2r_3d_f03 │ │ │ │ -00000540 T fftw_mpi_plan_r2r_f03 │ │ │ │ +00000874 T fftw_mpi_plan_r2r_3d_f03 │ │ │ │ +000007a0 T fftw_mpi_plan_r2r_f03 │ │ │ │ U fftw_mpi_plan_transpose │ │ │ │ -00000324 T fftw_mpi_plan_transpose_f03 │ │ │ │ +00000498 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 │ │ │ │ -000004c4 t apply │ │ │ │ -00000668 t awake │ │ │ │ -0000062c t destroy │ │ │ │ +000004f8 t apply │ │ │ │ +000006c8 t awake │ │ │ │ +00000680 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 │ │ │ │ -000006a4 T fftw_mpi_transpose_alltoall_register │ │ │ │ +00000718 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 │ │ │ │ -00000070 t mkplan │ │ │ │ +0000007c 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 │ │ │ │ -000004c0 t apply │ │ │ │ -00000638 t awake │ │ │ │ -000005f4 t destroy │ │ │ │ +00000514 t apply │ │ │ │ +000006c4 t awake │ │ │ │ +00000674 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 │ │ │ │ -00000674 T fftw_mpi_mkplans_posttranspose │ │ │ │ +00000714 T fftw_mpi_mkplans_posttranspose │ │ │ │ U fftw_mpi_num_blocks │ │ │ │ -00000fd0 T fftw_mpi_transpose_pairwise_register │ │ │ │ +000010ac 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 │ │ │ │ -00000070 t fill1_comm_sched │ │ │ │ +0000007c t fill1_comm_sched │ │ │ │ U memcpy │ │ │ │ U memmove │ │ │ │ -000009d8 t mkplan │ │ │ │ +00000a98 t mkplan │ │ │ │ 00000000 d padt.0 │ │ │ │ 00000000 t print │ │ │ │ 00000000 d sadt.1 │ │ │ │ -00000250 t transpose_chunks │ │ │ │ +00000280 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 │ │ │ │ -00000170 t awake │ │ │ │ -0000014c t destroy │ │ │ │ +000001d4 t awake │ │ │ │ +000001a4 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 │ │ │ │ -000008e4 T fftw_mpi_transpose_recurse_register │ │ │ │ +00000984 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 │ │ │ │ -000001a0 t mkplan │ │ │ │ +00000218 t mkplan │ │ │ │ 00000000 d padt.0 │ │ │ │ -0000006c t print │ │ │ │ -000000e0 t radix_first │ │ │ │ -00000108 t radix_sqrt │ │ │ │ +00000090 t print │ │ │ │ +00000110 t radix_first │ │ │ │ +0000014c 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,119 +509,119 @@ │ │ │ │ U fftw_ialignment_of │ │ │ │ U fftw_ifree │ │ │ │ U fftw_md5INT │ │ │ │ U fftw_md5int │ │ │ │ U fftw_md5puts │ │ │ │ U fftw_mkproblem │ │ │ │ U fftw_mpi_block │ │ │ │ -000001ac T fftw_mpi_mkproblem_transpose │ │ │ │ -00000110 t hash │ │ │ │ +000001f4 T fftw_mpi_mkproblem_transpose │ │ │ │ +0000014c t hash │ │ │ │ U memset │ │ │ │ 00000000 d padt │ │ │ │ -0000001c t print │ │ │ │ -000000b4 t zero │ │ │ │ +00000028 t print │ │ │ │ +000000dc t zero │ │ │ │ │ │ │ │ transpose-solve.o: │ │ │ │ 00000000 T fftw_mpi_transpose_solve │ │ │ │ │ │ │ │ dft-serial.o: │ │ │ │ 00000000 r .LC0 │ │ │ │ U MPI_Comm_rank │ │ │ │ 00000000 t apply │ │ │ │ -00000064 t awake │ │ │ │ -0000005c t destroy │ │ │ │ +00000078 t awake │ │ │ │ +00000070 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_0d │ │ │ │ U fftw_mktensor_1d │ │ │ │ U fftw_mpi_any_true │ │ │ │ -00000280 T fftw_mpi_dft_serial_applicable │ │ │ │ -000002d8 T fftw_mpi_dft_serial_register │ │ │ │ +00000288 T fftw_mpi_dft_serial_applicable │ │ │ │ +000002ec 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 │ │ │ │ -0000006c t mkplan │ │ │ │ +00000080 t mkplan │ │ │ │ 00000000 d padt.0 │ │ │ │ -0000003c t print │ │ │ │ +00000050 t print │ │ │ │ 00000000 d sadt.1 │ │ │ │ │ │ │ │ dft-rank-geq2.o: │ │ │ │ 00000000 r .LC0 │ │ │ │ 00000004 r .LC1 │ │ │ │ 00000008 r .LC2 │ │ │ │ U MPI_Comm_rank │ │ │ │ U MPI_Comm_size │ │ │ │ 00000000 t apply │ │ │ │ -000004d0 t awake │ │ │ │ -000000e0 t destroy │ │ │ │ +00000524 t awake │ │ │ │ +00000100 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 │ │ │ │ -000004f4 T fftw_mpi_dft_rank_geq2_register │ │ │ │ +0000055c 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 │ │ │ │ -000000fc t mkplan │ │ │ │ +00000128 t mkplan │ │ │ │ 00000000 d padt.0 │ │ │ │ -00000080 t print │ │ │ │ +00000094 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 │ │ │ │ -0000060c t awake │ │ │ │ -00000100 t destroy │ │ │ │ +0000066c t awake │ │ │ │ +00000130 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 │ │ │ │ -0000063c T fftw_mpi_dft_rank_geq2_transposed_register │ │ │ │ +000006b0 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 │ │ │ │ -00000124 t mkplan │ │ │ │ +00000160 t mkplan │ │ │ │ 00000000 d padt.0 │ │ │ │ -00000098 t print │ │ │ │ +000000bc t print │ │ │ │ 00000000 d sadt.1 │ │ │ │ │ │ │ │ dft-rank1.o: │ │ │ │ 00000000 r .LC1 │ │ │ │ 00000008 r .LC2 │ │ │ │ 00000010 r .LC3 │ │ │ │ 00000014 r .LC4 │ │ │ │ @@ -629,79 +629,79 @@ │ │ │ │ U MPI_Comm_rank │ │ │ │ U MPI_Comm_size │ │ │ │ U __aeabi_dadd │ │ │ │ U __aeabi_dmul │ │ │ │ U __aeabi_i2d │ │ │ │ U __aeabi_idiv │ │ │ │ 00000000 t apply_ddft_first │ │ │ │ -00000938 t apply_ddft_last │ │ │ │ -000008d4 t awake │ │ │ │ -00000298 t destroy │ │ │ │ +000009bc t apply_ddft_last │ │ │ │ +00000948 t awake │ │ │ │ +000002e0 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 │ │ │ │ -00000b1c T fftw_mpi_dft_rank1_register │ │ │ │ +00000bc8 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 │ │ │ │ -000002bc t mkplan │ │ │ │ +00000310 t mkplan │ │ │ │ 00000000 d padt.0 │ │ │ │ -000001f4 t print │ │ │ │ +00000230 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 │ │ │ │ -000004d4 t awake │ │ │ │ -00000104 t destroy │ │ │ │ +00000538 t awake │ │ │ │ +0000013c 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 │ │ │ │ -00000504 T fftw_mpi_dft_rank1_bigvec_register │ │ │ │ +0000057c 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 │ │ │ │ -00000128 t mkplan │ │ │ │ +0000016c t mkplan │ │ │ │ 00000000 d padt.0 │ │ │ │ -00000070 t print │ │ │ │ +00000094 t print │ │ │ │ 00000000 d sadt.1 │ │ │ │ │ │ │ │ dft-problem.o: │ │ │ │ 00000000 r .LC0 │ │ │ │ 00000014 r .LC1 │ │ │ │ 00000020 r .LC2 │ │ │ │ 00000028 r .LC3 │ │ │ │ @@ -716,22 +716,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 │ │ │ │ -000001c4 T fftw_mpi_mkproblem_dft │ │ │ │ -00000284 T fftw_mpi_mkproblem_dft_d │ │ │ │ +0000020c T fftw_mpi_mkproblem_dft │ │ │ │ +000002f4 T fftw_mpi_mkproblem_dft_d │ │ │ │ U fftw_mpi_total_block │ │ │ │ -00000134 t hash │ │ │ │ +00000170 t hash │ │ │ │ U memset │ │ │ │ 00000000 d padt │ │ │ │ -00000024 t print │ │ │ │ -000000e0 t zero │ │ │ │ +00000030 t print │ │ │ │ +00000108 t zero │ │ │ │ │ │ │ │ dft-solve.o: │ │ │ │ 00000000 T fftw_mpi_dft_solve │ │ │ │ │ │ │ │ rdft-serial.o: │ │ │ │ 00000000 r .LC0 │ │ │ │ U MPI_Comm_rank │ │ │ │ @@ -745,16 +745,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 │ │ │ │ -0000029c T fftw_mpi_rdft_serial_applicable │ │ │ │ -000002f4 T fftw_mpi_rdft_serial_register │ │ │ │ +000002c4 T fftw_mpi_rdft_serial_applicable │ │ │ │ +00000328 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 │ │ │ │ 0000003c t mkplan │ │ │ │ 00000000 d padt.0 │ │ │ │ @@ -764,109 +764,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 │ │ │ │ -00000444 t awake │ │ │ │ -000000b0 t destroy │ │ │ │ +0000049c t awake │ │ │ │ +000000d0 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 │ │ │ │ -00000468 T fftw_mpi_rdft_rank_geq2_register │ │ │ │ +000004d4 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 │ │ │ │ -000000cc t mkplan │ │ │ │ +000000f8 t mkplan │ │ │ │ 00000000 d padt.0 │ │ │ │ -00000050 t print │ │ │ │ +00000064 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 │ │ │ │ -00000564 t awake │ │ │ │ -000000cc t destroy │ │ │ │ +000005b4 t awake │ │ │ │ +000000ec 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 │ │ │ │ -00000594 T fftw_mpi_rdft_rank_geq2_transposed_register │ │ │ │ +000005f8 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 │ │ │ │ -000000f0 t mkplan │ │ │ │ +0000011c t mkplan │ │ │ │ 00000000 d padt.0 │ │ │ │ -00000064 t print │ │ │ │ +00000078 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 │ │ │ │ -00000454 t awake │ │ │ │ -000000e8 t destroy │ │ │ │ +000004a8 t awake │ │ │ │ +00000110 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 │ │ │ │ -00000484 T fftw_mpi_rdft_rank1_bigvec_register │ │ │ │ +000004ec 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 │ │ │ │ -0000010c t mkplan │ │ │ │ +00000140 t mkplan │ │ │ │ 00000000 d padt.0 │ │ │ │ -00000054 t print │ │ │ │ +00000068 t print │ │ │ │ 00000000 d sadt.1 │ │ │ │ │ │ │ │ rdft-problem.o: │ │ │ │ 00000000 r .LC0 │ │ │ │ 00000014 r .LC1 │ │ │ │ 00000018 r .LC2 │ │ │ │ 00000020 r .LC3 │ │ │ │ @@ -882,122 +882,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 │ │ │ │ -0000024c T fftw_mpi_mkproblem_rdft │ │ │ │ -000003d0 T fftw_mpi_mkproblem_rdft_d │ │ │ │ +00000294 T fftw_mpi_mkproblem_rdft │ │ │ │ +00000430 T fftw_mpi_mkproblem_rdft_d │ │ │ │ U fftw_mpi_total_block │ │ │ │ -00000184 t hash │ │ │ │ +000001c0 t hash │ │ │ │ U memset │ │ │ │ 00000000 d padt │ │ │ │ -00000024 t print │ │ │ │ -00000130 t zero │ │ │ │ +00000030 t print │ │ │ │ +00000158 t zero │ │ │ │ │ │ │ │ rdft-solve.o: │ │ │ │ 00000000 T fftw_mpi_rdft_solve │ │ │ │ │ │ │ │ rdft2-serial.o: │ │ │ │ 00000000 r .LC0 │ │ │ │ U MPI_Comm_rank │ │ │ │ -00000034 t apply_c2r │ │ │ │ +00000040 t apply_c2r │ │ │ │ 00000000 t apply_r2c │ │ │ │ -00000094 t awake │ │ │ │ -0000008c t destroy │ │ │ │ +000000ac t awake │ │ │ │ +000000a4 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 │ │ │ │ -00000320 T fftw_mpi_rdft2_serial_applicable │ │ │ │ -00000378 T fftw_mpi_rdft2_serial_register │ │ │ │ +00000360 T fftw_mpi_rdft2_serial_applicable │ │ │ │ +000003c4 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 │ │ │ │ -0000009c t mkplan │ │ │ │ +000000b4 t mkplan │ │ │ │ 00000000 d padt.0 │ │ │ │ -0000006c t print │ │ │ │ +00000084 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 │ │ │ │ -00000074 t apply_c2r │ │ │ │ +00000088 t apply_c2r │ │ │ │ 00000000 t apply_r2c │ │ │ │ -000005d0 t awake │ │ │ │ -0000011c t destroy │ │ │ │ +00000634 t awake │ │ │ │ +00000148 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 │ │ │ │ -000005f4 T fftw_mpi_rdft2_rank_geq2_register │ │ │ │ +0000066c 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 │ │ │ │ -00000138 t mkplan │ │ │ │ +00000170 t mkplan │ │ │ │ 00000000 d padt.0 │ │ │ │ -000000bc t print │ │ │ │ +000000dc 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 │ │ │ │ -00000090 t apply_c2r │ │ │ │ +000000ac t apply_c2r │ │ │ │ 00000000 t apply_r2c │ │ │ │ -000008b4 t awake │ │ │ │ -0000018c t destroy │ │ │ │ +0000092c t awake │ │ │ │ +000001d0 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 │ │ │ │ -000008e4 T fftw_mpi_rdft2_rank_geq2_transposed_register │ │ │ │ +00000970 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 │ │ │ │ -000001b0 t mkplan │ │ │ │ +00000200 t mkplan │ │ │ │ 00000000 d padt.0 │ │ │ │ -00000124 t print │ │ │ │ +0000015c t print │ │ │ │ 00000000 d sadt.1 │ │ │ │ │ │ │ │ rdft2-problem.o: │ │ │ │ 00000000 r .LC0 │ │ │ │ 00000018 r .LC1 │ │ │ │ 00000024 r .LC2 │ │ │ │ 0000002c r .LC3 │ │ │ │ @@ -1013,18 +1013,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 │ │ │ │ -000001f8 T fftw_mpi_mkproblem_rdft2 │ │ │ │ -00000278 T fftw_mpi_mkproblem_rdft2_d │ │ │ │ +00000240 T fftw_mpi_mkproblem_rdft2 │ │ │ │ +000002dc T fftw_mpi_mkproblem_rdft2_d │ │ │ │ U fftw_mpi_total_block │ │ │ │ -00000168 t hash │ │ │ │ +000001a4 t hash │ │ │ │ U memset │ │ │ │ 00000000 d padt │ │ │ │ -00000024 t print │ │ │ │ -000000e0 t zero │ │ │ │ +00000030 t print │ │ │ │ +00000108 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 768 1970-01-01 00:00:00.000000 any-true.o │ │ │ │ -?rw-r--r-- 0 0 0 23392 1970-01-01 00:00:00.000000 api.o │ │ │ │ -?rw-r--r-- 0 0 0 2528 1970-01-01 00:00:00.000000 block.o │ │ │ │ -?rw-r--r-- 0 0 0 1032 1970-01-01 00:00:00.000000 choose-radix.o │ │ │ │ +?rw-r--r-- 0 0 0 24588 1970-01-01 00:00:00.000000 api.o │ │ │ │ +?rw-r--r-- 0 0 0 2768 1970-01-01 00:00:00.000000 block.o │ │ │ │ +?rw-r--r-- 0 0 0 1060 1970-01-01 00:00:00.000000 choose-radix.o │ │ │ │ ?rw-r--r-- 0 0 0 2664 1970-01-01 00:00:00.000000 conf.o │ │ │ │ -?rw-r--r-- 0 0 0 2500 1970-01-01 00:00:00.000000 dtensor.o │ │ │ │ -?rw-r--r-- 0 0 0 1292 1970-01-01 00:00:00.000000 rearrange.o │ │ │ │ +?rw-r--r-- 0 0 0 2668 1970-01-01 00:00:00.000000 dtensor.o │ │ │ │ +?rw-r--r-- 0 0 0 1296 1970-01-01 00:00:00.000000 rearrange.o │ │ │ │ ?rw-r--r-- 0 0 0 2172 1970-01-01 00:00:00.000000 wisdom-api.o │ │ │ │ -?rw-r--r-- 0 0 0 5984 1970-01-01 00:00:00.000000 f03-wrap.o │ │ │ │ -?rw-r--r-- 0 0 0 4416 1970-01-01 00:00:00.000000 transpose-alltoall.o │ │ │ │ -?rw-r--r-- 0 0 0 7288 1970-01-01 00:00:00.000000 transpose-pairwise.o │ │ │ │ -?rw-r--r-- 0 0 0 5436 1970-01-01 00:00:00.000000 transpose-recurse.o │ │ │ │ -?rw-r--r-- 0 0 0 2312 1970-01-01 00:00:00.000000 transpose-problem.o │ │ │ │ +?rw-r--r-- 0 0 0 6980 1970-01-01 00:00:00.000000 f03-wrap.o │ │ │ │ +?rw-r--r-- 0 0 0 4552 1970-01-01 00:00:00.000000 transpose-alltoall.o │ │ │ │ +?rw-r--r-- 0 0 0 7528 1970-01-01 00:00:00.000000 transpose-pairwise.o │ │ │ │ +?rw-r--r-- 0 0 0 5624 1970-01-01 00:00:00.000000 transpose-recurse.o │ │ │ │ +?rw-r--r-- 0 0 0 2428 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 2880 1970-01-01 00:00:00.000000 dft-serial.o │ │ │ │ -?rw-r--r-- 0 0 0 3768 1970-01-01 00:00:00.000000 dft-rank-geq2.o │ │ │ │ -?rw-r--r-- 0 0 0 4240 1970-01-01 00:00:00.000000 dft-rank-geq2-transposed.o │ │ │ │ -?rw-r--r-- 0 0 0 5884 1970-01-01 00:00:00.000000 dft-rank1.o │ │ │ │ -?rw-r--r-- 0 0 0 4168 1970-01-01 00:00:00.000000 dft-rank1-bigvec.o │ │ │ │ -?rw-r--r-- 0 0 0 2920 1970-01-01 00:00:00.000000 dft-problem.o │ │ │ │ +?rw-r--r-- 0 0 0 2904 1970-01-01 00:00:00.000000 dft-serial.o │ │ │ │ +?rw-r--r-- 0 0 0 3892 1970-01-01 00:00:00.000000 dft-rank-geq2.o │ │ │ │ +?rw-r--r-- 0 0 0 4376 1970-01-01 00:00:00.000000 dft-rank-geq2-transposed.o │ │ │ │ +?rw-r--r-- 0 0 0 6084 1970-01-01 00:00:00.000000 dft-rank1.o │ │ │ │ +?rw-r--r-- 0 0 0 4316 1970-01-01 00:00:00.000000 dft-rank1-bigvec.o │ │ │ │ +?rw-r--r-- 0 0 0 3080 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 2956 1970-01-01 00:00:00.000000 rdft-serial.o │ │ │ │ -?rw-r--r-- 0 0 0 3580 1970-01-01 00:00:00.000000 rdft-rank-geq2.o │ │ │ │ -?rw-r--r-- 0 0 0 4056 1970-01-01 00:00:00.000000 rdft-rank-geq2-transposed.o │ │ │ │ -?rw-r--r-- 0 0 0 4000 1970-01-01 00:00:00.000000 rdft-rank1-bigvec.o │ │ │ │ -?rw-r--r-- 0 0 0 3100 1970-01-01 00:00:00.000000 rdft-problem.o │ │ │ │ +?rw-r--r-- 0 0 0 3020 1970-01-01 00:00:00.000000 rdft-serial.o │ │ │ │ +?rw-r--r-- 0 0 0 3708 1970-01-01 00:00:00.000000 rdft-rank-geq2.o │ │ │ │ +?rw-r--r-- 0 0 0 4176 1970-01-01 00:00:00.000000 rdft-rank-geq2-transposed.o │ │ │ │ +?rw-r--r-- 0 0 0 4132 1970-01-01 00:00:00.000000 rdft-rank1-bigvec.o │ │ │ │ +?rw-r--r-- 0 0 0 3208 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 3032 1970-01-01 00:00:00.000000 rdft2-serial.o │ │ │ │ -?rw-r--r-- 0 0 0 4012 1970-01-01 00:00:00.000000 rdft2-rank-geq2.o │ │ │ │ -?rw-r--r-- 0 0 0 4960 1970-01-01 00:00:00.000000 rdft2-rank-geq2-transposed.o │ │ │ │ -?rw-r--r-- 0 0 0 2912 1970-01-01 00:00:00.000000 rdft2-problem.o │ │ │ │ +?rw-r--r-- 0 0 0 3120 1970-01-01 00:00:00.000000 rdft2-serial.o │ │ │ │ +?rw-r--r-- 0 0 0 4152 1970-01-01 00:00:00.000000 rdft2-rank-geq2.o │ │ │ │ +?rw-r--r-- 0 0 0 5120 1970-01-01 00:00:00.000000 rdft2-rank-geq2-transposed.o │ │ │ │ +?rw-r--r-- 0 0 0 3040 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 │ │ │ │ ├── objdump --line-numbers --disassemble --demangle --reloc --no-show-raw-insn --section=.text {} │ │ │ │ │ @@ -2,23 +2,23 @@ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ Disassembly of section .text: │ │ │ │ │ │ │ │ │ │ 00000000 : │ │ │ │ │ fftw_mpi_any_true(): │ │ │ │ │ ldr r3, [pc, #52] @ 3c │ │ │ │ │ + mov r2, #1 │ │ │ │ │ push {lr} @ (str lr, [sp, #-4]!) │ │ │ │ │ sub sp, sp, #28 │ │ │ │ │ str r3, [sp] │ │ │ │ │ add r3, r3, #1020 @ 0x3fc │ │ │ │ │ - str r0, [sp, #12] │ │ │ │ │ - str r1, [sp, #4] │ │ │ │ │ add r3, r3, #-201326590 @ 0xf4000002 │ │ │ │ │ - mov r2, #1 │ │ │ │ │ + str r1, [sp, #4] │ │ │ │ │ add r1, sp, #20 │ │ │ │ │ + str r0, [sp, #12] │ │ │ │ │ add r0, sp, #12 │ │ │ │ │ bl 0 │ │ │ │ │ R_ARM_CALL MPI_Allreduce │ │ │ │ │ ldr r0, [sp, #20] │ │ │ │ │ add sp, sp, #28 │ │ │ │ │ pop {pc} @ (ldr pc, [sp], #4) │ │ │ │ │ .word 0x58000007 │ │ │ ├── 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: 22912 (bytes into file) │ │ │ │ │ + Start of section headers: 24108 (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: 12 │ │ │ │ │ Section header string table index: 11 │ │ │ │ ├── readelf --wide --sections {} │ │ │ │ │ @@ -1,21 +1,21 @@ │ │ │ │ │ -There are 12 section headers, starting at offset 0x5980: │ │ │ │ │ +There are 12 section headers, starting at offset 0x5e2c: │ │ │ │ │ │ │ │ │ │ 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 003e44 00 AX 0 0 4 │ │ │ │ │ - [ 2] .rel.text REL 00000000 004f20 0009f8 08 I 9 1 4 │ │ │ │ │ - [ 3] .data PROGBITS 00000000 003e78 000000 00 WA 0 0 1 │ │ │ │ │ - [ 4] .bss NOBITS 00000000 003e78 000004 00 WA 0 0 4 │ │ │ │ │ - [ 5] .rodata PROGBITS 00000000 003e78 000010 00 A 0 0 1 │ │ │ │ │ - [ 6] .rodata.str1.4 PROGBITS 00000000 003e88 000036 01 AMS 0 0 4 │ │ │ │ │ - [ 7] .note.GNU-stack PROGBITS 00000000 003ebe 000000 00 0 0 1 │ │ │ │ │ - [ 8] .ARM.attributes ARM_ATTRIBUTES 00000000 003ebe 00002b 00 0 0 1 │ │ │ │ │ - [ 9] .symtab SYMTAB 00000000 003eec 000880 10 10 66 4 │ │ │ │ │ - [10] .strtab STRTAB 00000000 00476c 0007b2 00 0 0 1 │ │ │ │ │ - [11] .shstrtab STRTAB 00000000 005918 000067 00 0 0 1 │ │ │ │ │ + [ 1] .text PROGBITS 00000000 000034 0042f0 00 AX 0 0 4 │ │ │ │ │ + [ 2] .rel.text REL 00000000 0053cc 0009f8 08 I 9 1 4 │ │ │ │ │ + [ 3] .data PROGBITS 00000000 004324 000000 00 WA 0 0 1 │ │ │ │ │ + [ 4] .bss NOBITS 00000000 004324 000004 00 WA 0 0 4 │ │ │ │ │ + [ 5] .rodata PROGBITS 00000000 004324 000010 00 A 0 0 1 │ │ │ │ │ + [ 6] .rodata.str1.4 PROGBITS 00000000 004334 000036 01 AMS 0 0 4 │ │ │ │ │ + [ 7] .note.GNU-stack PROGBITS 00000000 00436a 000000 00 0 0 1 │ │ │ │ │ + [ 8] .ARM.attributes ARM_ATTRIBUTES 00000000 00436a 00002b 00 0 0 1 │ │ │ │ │ + [ 9] .symtab SYMTAB 00000000 004398 000880 10 10 66 4 │ │ │ │ │ + [10] .strtab STRTAB 00000000 004c18 0007b2 00 0 0 1 │ │ │ │ │ + [11] .shstrtab STRTAB 00000000 005dc4 000067 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,74 +1,74 @@ │ │ │ │ │ │ │ │ │ │ Symbol table '.symtab' contains 136 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: 00000000 0 NOTYPE LOCAL DEFAULT 1 $a │ │ │ │ │ - 3: 00000000 120 FUNC LOCAL DEFAULT 1 bogosity_hook │ │ │ │ │ + 3: 00000000 132 FUNC LOCAL DEFAULT 1 bogosity_hook │ │ │ │ │ 4: 00000000 0 SECTION LOCAL DEFAULT 5 .rodata │ │ │ │ │ - 5: 00000074 0 NOTYPE LOCAL DEFAULT 1 $d │ │ │ │ │ - 6: 00000078 0 NOTYPE LOCAL DEFAULT 1 $a │ │ │ │ │ - 7: 00000078 100 FUNC LOCAL DEFAULT 1 nowisdom_hook │ │ │ │ │ + 5: 00000080 0 NOTYPE LOCAL DEFAULT 1 $d │ │ │ │ │ + 6: 00000084 0 NOTYPE LOCAL DEFAULT 1 $a │ │ │ │ │ + 7: 00000084 88 FUNC LOCAL DEFAULT 1 nowisdom_hook │ │ │ │ │ 8: 000000d8 0 NOTYPE LOCAL DEFAULT 1 $d │ │ │ │ │ 9: 000000dc 0 NOTYPE LOCAL DEFAULT 1 $a │ │ │ │ │ - 10: 000000dc 344 FUNC LOCAL DEFAULT 1 wisdom_ok_hook │ │ │ │ │ - 11: 00000224 0 NOTYPE LOCAL DEFAULT 1 $d │ │ │ │ │ - 12: 00000234 0 NOTYPE LOCAL DEFAULT 1 $a │ │ │ │ │ - 13: 00000234 156 FUNC LOCAL DEFAULT 1 cost_hook │ │ │ │ │ - 14: 000002c8 0 NOTYPE LOCAL DEFAULT 1 $d │ │ │ │ │ - 15: 000002d0 0 NOTYPE LOCAL DEFAULT 1 $a │ │ │ │ │ - 16: 000002d0 216 FUNC LOCAL DEFAULT 1 local_size │ │ │ │ │ - 17: 000003a8 660 FUNC LOCAL DEFAULT 1 default_sz.constprop.0 │ │ │ │ │ - 18: 0000063c 944 FUNC LOCAL DEFAULT 1 fftw_mpi_local_size_many_transposed.part.0.constprop.0 │ │ │ │ │ - 19: 000009ec 416 FUNC LOCAL DEFAULT 1 default_sz.constprop.1 │ │ │ │ │ - 20: 00000b8c 928 FUNC LOCAL DEFAULT 1 fftw_mpi_local_size_many_transposed.part.0.constprop.1 │ │ │ │ │ - 21: 00000f2c 264 FUNC LOCAL DEFAULT 1 default_sz.constprop.2 │ │ │ │ │ + 10: 000000dc 380 FUNC LOCAL DEFAULT 1 wisdom_ok_hook │ │ │ │ │ + 11: 00000248 0 NOTYPE LOCAL DEFAULT 1 $d │ │ │ │ │ + 12: 00000258 0 NOTYPE LOCAL DEFAULT 1 $a │ │ │ │ │ + 13: 00000258 156 FUNC LOCAL DEFAULT 1 cost_hook │ │ │ │ │ + 14: 000002ec 0 NOTYPE LOCAL DEFAULT 1 $d │ │ │ │ │ + 15: 000002f4 0 NOTYPE LOCAL DEFAULT 1 $a │ │ │ │ │ + 16: 000002f4 252 FUNC LOCAL DEFAULT 1 local_size │ │ │ │ │ + 17: 000003f0 700 FUNC LOCAL DEFAULT 1 default_sz.constprop.0 │ │ │ │ │ + 18: 000006ac 996 FUNC LOCAL DEFAULT 1 fftw_mpi_local_size_many_transposed.part.0.constprop.0 │ │ │ │ │ + 19: 00000a90 456 FUNC LOCAL DEFAULT 1 default_sz.constprop.1 │ │ │ │ │ + 20: 00000c58 980 FUNC LOCAL DEFAULT 1 fftw_mpi_local_size_many_transposed.part.0.constprop.1 │ │ │ │ │ + 21: 0000102c 304 FUNC LOCAL DEFAULT 1 default_sz.constprop.2 │ │ │ │ │ 22: 00000000 0 NOTYPE LOCAL DEFAULT 6 $d │ │ │ │ │ 23: 00000000 0 NOTYPE LOCAL DEFAULT 6 .LC0 │ │ │ │ │ 24: 00000008 0 NOTYPE LOCAL DEFAULT 6 .LC1 │ │ │ │ │ - 25: 00001034 544 FUNC LOCAL DEFAULT 1 fftw_mpi_local_size_guru.part.0.constprop.0 │ │ │ │ │ - 26: 00001248 0 NOTYPE LOCAL DEFAULT 1 $d │ │ │ │ │ - 27: 00001254 0 NOTYPE LOCAL DEFAULT 1 $a │ │ │ │ │ - 28: 00001254 844 FUNC LOCAL DEFAULT 1 default_sz │ │ │ │ │ - 29: 000015a0 1364 FUNC LOCAL DEFAULT 1 fftw_mpi_local_size_guru.part.0 │ │ │ │ │ - 30: 00001ae8 0 NOTYPE LOCAL DEFAULT 1 $d │ │ │ │ │ - 31: 00001af4 0 NOTYPE LOCAL DEFAULT 1 $a │ │ │ │ │ - 32: 00001af4 416 FUNC LOCAL DEFAULT 1 fftw_mpi_local_size_many_transposed.part.0 │ │ │ │ │ - 33: 00001c94 460 FUNC LOCAL DEFAULT 1 plan_guru_rdft2.constprop.0 │ │ │ │ │ - 34: 00001e4c 0 NOTYPE LOCAL DEFAULT 1 $d │ │ │ │ │ - 35: 00001e60 0 NOTYPE LOCAL DEFAULT 1 $a │ │ │ │ │ - 36: 00001e60 424 FUNC LOCAL DEFAULT 1 plan_guru_rdft2.constprop.1 │ │ │ │ │ - 37: 00001ff4 0 NOTYPE LOCAL DEFAULT 1 $d │ │ │ │ │ - 38: 00002008 0 NOTYPE LOCAL DEFAULT 1 $a │ │ │ │ │ - 39: 00002008 460 FUNC LOCAL DEFAULT 1 plan_guru_rdft2 │ │ │ │ │ - 40: 000021c0 0 NOTYPE LOCAL DEFAULT 1 $d │ │ │ │ │ - 41: 000021d4 0 NOTYPE LOCAL DEFAULT 1 $a │ │ │ │ │ - 42: 00002230 0 NOTYPE LOCAL DEFAULT 1 $d │ │ │ │ │ - 43: 00002244 0 NOTYPE LOCAL DEFAULT 1 $a │ │ │ │ │ - 44: 00002260 0 NOTYPE LOCAL DEFAULT 1 $d │ │ │ │ │ - 45: 00002264 0 NOTYPE LOCAL DEFAULT 1 $a │ │ │ │ │ - 46: 00002750 0 NOTYPE LOCAL DEFAULT 1 $d │ │ │ │ │ - 47: 00002764 0 NOTYPE LOCAL DEFAULT 1 $a │ │ │ │ │ - 48: 0000288c 0 NOTYPE LOCAL DEFAULT 1 $d │ │ │ │ │ - 49: 000028a0 0 NOTYPE LOCAL DEFAULT 1 $a │ │ │ │ │ - 50: 00002a04 0 NOTYPE LOCAL DEFAULT 1 $d │ │ │ │ │ - 51: 00002a18 0 NOTYPE LOCAL DEFAULT 1 $a │ │ │ │ │ - 52: 00002d30 0 NOTYPE LOCAL DEFAULT 1 $d │ │ │ │ │ - 53: 00002d44 0 NOTYPE LOCAL DEFAULT 1 $a │ │ │ │ │ - 54: 00002ef4 0 NOTYPE LOCAL DEFAULT 1 $d │ │ │ │ │ - 55: 00002f08 0 NOTYPE LOCAL DEFAULT 1 $a │ │ │ │ │ - 56: 000030ec 0 NOTYPE LOCAL DEFAULT 1 $d │ │ │ │ │ - 57: 00003100 0 NOTYPE LOCAL DEFAULT 1 $a │ │ │ │ │ - 58: 00003288 0 NOTYPE LOCAL DEFAULT 1 $d │ │ │ │ │ - 59: 0000329c 0 NOTYPE LOCAL DEFAULT 1 $a │ │ │ │ │ - 60: 00003628 0 NOTYPE LOCAL DEFAULT 1 $d │ │ │ │ │ - 61: 0000363c 0 NOTYPE LOCAL DEFAULT 1 $a │ │ │ │ │ - 62: 0000384c 0 NOTYPE LOCAL DEFAULT 1 $d │ │ │ │ │ - 63: 00003860 0 NOTYPE LOCAL DEFAULT 1 $a │ │ │ │ │ + 25: 0000115c 588 FUNC LOCAL DEFAULT 1 fftw_mpi_local_size_guru.part.0.constprop.0 │ │ │ │ │ + 26: 0000139c 0 NOTYPE LOCAL DEFAULT 1 $d │ │ │ │ │ + 27: 000013a8 0 NOTYPE LOCAL DEFAULT 1 $a │ │ │ │ │ + 28: 000013a8 892 FUNC LOCAL DEFAULT 1 default_sz │ │ │ │ │ + 29: 00001724 1356 FUNC LOCAL DEFAULT 1 fftw_mpi_local_size_guru.part.0 │ │ │ │ │ + 30: 00001c64 0 NOTYPE LOCAL DEFAULT 1 $d │ │ │ │ │ + 31: 00001c70 0 NOTYPE LOCAL DEFAULT 1 $a │ │ │ │ │ + 32: 00001c70 460 FUNC LOCAL DEFAULT 1 fftw_mpi_local_size_many_transposed.part.0 │ │ │ │ │ + 33: 00001e3c 488 FUNC LOCAL DEFAULT 1 plan_guru_rdft2.constprop.0 │ │ │ │ │ + 34: 00002010 0 NOTYPE LOCAL DEFAULT 1 $d │ │ │ │ │ + 35: 00002024 0 NOTYPE LOCAL DEFAULT 1 $a │ │ │ │ │ + 36: 00002024 452 FUNC LOCAL DEFAULT 1 plan_guru_rdft2.constprop.1 │ │ │ │ │ + 37: 000021d4 0 NOTYPE LOCAL DEFAULT 1 $d │ │ │ │ │ + 38: 000021e8 0 NOTYPE LOCAL DEFAULT 1 $a │ │ │ │ │ + 39: 000021e8 484 FUNC LOCAL DEFAULT 1 plan_guru_rdft2 │ │ │ │ │ + 40: 000023b8 0 NOTYPE LOCAL DEFAULT 1 $d │ │ │ │ │ + 41: 000023cc 0 NOTYPE LOCAL DEFAULT 1 $a │ │ │ │ │ + 42: 00002440 0 NOTYPE LOCAL DEFAULT 1 $d │ │ │ │ │ + 43: 00002454 0 NOTYPE LOCAL DEFAULT 1 $a │ │ │ │ │ + 44: 0000247c 0 NOTYPE LOCAL DEFAULT 1 $d │ │ │ │ │ + 45: 00002480 0 NOTYPE LOCAL DEFAULT 1 $a │ │ │ │ │ + 46: 000029dc 0 NOTYPE LOCAL DEFAULT 1 $d │ │ │ │ │ + 47: 000029f0 0 NOTYPE LOCAL DEFAULT 1 $a │ │ │ │ │ + 48: 00002b30 0 NOTYPE LOCAL DEFAULT 1 $d │ │ │ │ │ + 49: 00002b44 0 NOTYPE LOCAL DEFAULT 1 $a │ │ │ │ │ + 50: 00002cc0 0 NOTYPE LOCAL DEFAULT 1 $d │ │ │ │ │ + 51: 00002cd4 0 NOTYPE LOCAL DEFAULT 1 $a │ │ │ │ │ + 52: 00003040 0 NOTYPE LOCAL DEFAULT 1 $d │ │ │ │ │ + 53: 00003054 0 NOTYPE LOCAL DEFAULT 1 $a │ │ │ │ │ + 54: 00003220 0 NOTYPE LOCAL DEFAULT 1 $d │ │ │ │ │ + 55: 00003234 0 NOTYPE LOCAL DEFAULT 1 $a │ │ │ │ │ + 56: 00003434 0 NOTYPE LOCAL DEFAULT 1 $d │ │ │ │ │ + 57: 00003448 0 NOTYPE LOCAL DEFAULT 1 $a │ │ │ │ │ + 58: 000035e4 0 NOTYPE LOCAL DEFAULT 1 $d │ │ │ │ │ + 59: 000035f8 0 NOTYPE LOCAL DEFAULT 1 $a │ │ │ │ │ + 60: 000039d8 0 NOTYPE LOCAL DEFAULT 1 $d │ │ │ │ │ + 61: 000039ec 0 NOTYPE LOCAL DEFAULT 1 $a │ │ │ │ │ + 62: 00003c18 0 NOTYPE LOCAL DEFAULT 1 $d │ │ │ │ │ + 63: 00003c2c 0 NOTYPE LOCAL DEFAULT 1 $a │ │ │ │ │ 64: 00000000 0 NOTYPE LOCAL DEFAULT 4 $d │ │ │ │ │ 65: 00000000 4 OBJECT LOCAL DEFAULT 4 mpi_inited │ │ │ │ │ 66: 00000000 0 NOTYPE GLOBAL DEFAULT UND fftw_mpi_any_true │ │ │ │ │ 67: 00000000 0 NOTYPE GLOBAL DEFAULT UND MPI_Bcast │ │ │ │ │ 68: 00000000 0 NOTYPE GLOBAL DEFAULT UND MPI_Allreduce │ │ │ │ │ 69: 00000000 0 NOTYPE GLOBAL DEFAULT UND fftw_mpi_num_blocks_total │ │ │ │ │ 70: 00000000 0 NOTYPE GLOBAL DEFAULT UND fftw_mpi_block_coords │ │ │ │ │ @@ -88,52 +88,52 @@ │ │ │ │ │ 84: 00000000 0 NOTYPE GLOBAL DEFAULT UND fftw_is_prime │ │ │ │ │ 85: 00000000 0 NOTYPE GLOBAL DEFAULT UND fftw_mpi_choose_radix │ │ │ │ │ 86: 00000000 0 NOTYPE GLOBAL DEFAULT UND fftw_assertion_failed │ │ │ │ │ 87: 00000000 0 NOTYPE GLOBAL DEFAULT UND fftw_mpi_mkproblem_rdft2_d │ │ │ │ │ 88: 00000000 0 NOTYPE GLOBAL DEFAULT UND fftw_mkapiplan │ │ │ │ │ 89: 00000000 0 NOTYPE GLOBAL DEFAULT UND fftw_the_planner │ │ │ │ │ 90: 00000000 0 NOTYPE GLOBAL DEFAULT UND fftw_mpi_conf_standard │ │ │ │ │ - 91: 000021d4 112 FUNC GLOBAL DEFAULT 1 fftw_mpi_init │ │ │ │ │ - 92: 00002244 32 FUNC GLOBAL DEFAULT 1 fftw_mpi_cleanup │ │ │ │ │ + 91: 000023cc 136 FUNC GLOBAL DEFAULT 1 fftw_mpi_init │ │ │ │ │ + 92: 00002454 44 FUNC GLOBAL DEFAULT 1 fftw_mpi_cleanup │ │ │ │ │ 93: 00000000 0 NOTYPE GLOBAL DEFAULT UND fftw_cleanup │ │ │ │ │ - 94: 00002264 68 FUNC GLOBAL DEFAULT 1 fftw_mpi_local_size_guru │ │ │ │ │ - 95: 000022a8 92 FUNC GLOBAL DEFAULT 1 fftw_mpi_local_size_many_transposed │ │ │ │ │ - 96: 00002304 120 FUNC GLOBAL DEFAULT 1 fftw_mpi_local_size_many │ │ │ │ │ - 97: 0000237c 104 FUNC GLOBAL DEFAULT 1 fftw_mpi_local_size_transposed │ │ │ │ │ - 98: 000023e4 112 FUNC GLOBAL DEFAULT 1 fftw_mpi_local_size │ │ │ │ │ - 99: 00002454 80 FUNC GLOBAL DEFAULT 1 fftw_mpi_local_size_many_1d │ │ │ │ │ - 100: 000024a4 84 FUNC GLOBAL DEFAULT 1 fftw_mpi_local_size_1d │ │ │ │ │ - 101: 000024f8 56 FUNC GLOBAL DEFAULT 1 fftw_mpi_local_size_2d_transposed │ │ │ │ │ - 102: 00002530 52 FUNC GLOBAL DEFAULT 1 fftw_mpi_local_size_2d │ │ │ │ │ - 103: 00002564 72 FUNC GLOBAL DEFAULT 1 fftw_mpi_local_size_3d_transposed │ │ │ │ │ - 104: 000025ac 68 FUNC GLOBAL DEFAULT 1 fftw_mpi_local_size_3d │ │ │ │ │ - 105: 000025f0 372 FUNC GLOBAL DEFAULT 1 fftw_mpi_plan_many_transpose │ │ │ │ │ + 94: 00002480 112 FUNC GLOBAL DEFAULT 1 fftw_mpi_local_size_guru │ │ │ │ │ + 95: 000024f0 136 FUNC GLOBAL DEFAULT 1 fftw_mpi_local_size_many_transposed │ │ │ │ │ + 96: 00002578 120 FUNC GLOBAL DEFAULT 1 fftw_mpi_local_size_many │ │ │ │ │ + 97: 000025f0 104 FUNC GLOBAL DEFAULT 1 fftw_mpi_local_size_transposed │ │ │ │ │ + 98: 00002658 112 FUNC GLOBAL DEFAULT 1 fftw_mpi_local_size │ │ │ │ │ + 99: 000026c8 80 FUNC GLOBAL DEFAULT 1 fftw_mpi_local_size_many_1d │ │ │ │ │ + 100: 00002718 84 FUNC GLOBAL DEFAULT 1 fftw_mpi_local_size_1d │ │ │ │ │ + 101: 0000276c 56 FUNC GLOBAL DEFAULT 1 fftw_mpi_local_size_2d_transposed │ │ │ │ │ + 102: 000027a4 52 FUNC GLOBAL DEFAULT 1 fftw_mpi_local_size_2d │ │ │ │ │ + 103: 000027d8 72 FUNC GLOBAL DEFAULT 1 fftw_mpi_local_size_3d_transposed │ │ │ │ │ + 104: 00002820 68 FUNC GLOBAL DEFAULT 1 fftw_mpi_local_size_3d │ │ │ │ │ + 105: 00002864 396 FUNC GLOBAL DEFAULT 1 fftw_mpi_plan_many_transpose │ │ │ │ │ 106: 00000000 0 NOTYPE GLOBAL DEFAULT UND fftw_mpi_mkproblem_transpose │ │ │ │ │ - 107: 00002764 316 FUNC GLOBAL DEFAULT 1 fftw_mpi_plan_transpose │ │ │ │ │ - 108: 000028a0 376 FUNC GLOBAL DEFAULT 1 fftw_mpi_plan_guru_dft │ │ │ │ │ + 107: 000029f0 340 FUNC GLOBAL DEFAULT 1 fftw_mpi_plan_transpose │ │ │ │ │ + 108: 00002b44 400 FUNC GLOBAL DEFAULT 1 fftw_mpi_plan_guru_dft │ │ │ │ │ 109: 00000000 0 NOTYPE GLOBAL DEFAULT UND fftw_mpi_mkproblem_dft_d │ │ │ │ │ - 110: 00002a18 220 FUNC GLOBAL DEFAULT 1 fftw_mpi_plan_many_dft │ │ │ │ │ - 111: 00002af4 220 FUNC GLOBAL DEFAULT 1 fftw_mpi_plan_dft │ │ │ │ │ - 112: 00002bd0 372 FUNC GLOBAL DEFAULT 1 fftw_mpi_plan_dft_1d │ │ │ │ │ - 113: 00002d44 452 FUNC GLOBAL DEFAULT 1 fftw_mpi_plan_dft_2d │ │ │ │ │ - 114: 00002f08 504 FUNC GLOBAL DEFAULT 1 fftw_mpi_plan_dft_3d │ │ │ │ │ - 115: 00003100 412 FUNC GLOBAL DEFAULT 1 fftw_mpi_plan_guru_r2r │ │ │ │ │ + 110: 00002cd4 244 FUNC GLOBAL DEFAULT 1 fftw_mpi_plan_many_dft │ │ │ │ │ + 111: 00002dc8 252 FUNC GLOBAL DEFAULT 1 fftw_mpi_plan_dft │ │ │ │ │ + 112: 00002ec4 400 FUNC GLOBAL DEFAULT 1 fftw_mpi_plan_dft_1d │ │ │ │ │ + 113: 00003054 480 FUNC GLOBAL DEFAULT 1 fftw_mpi_plan_dft_2d │ │ │ │ │ + 114: 00003234 532 FUNC GLOBAL DEFAULT 1 fftw_mpi_plan_dft_3d │ │ │ │ │ + 115: 00003448 432 FUNC GLOBAL DEFAULT 1 fftw_mpi_plan_guru_r2r │ │ │ │ │ 116: 00000000 0 NOTYPE GLOBAL DEFAULT UND fftw_map_r2r_kind │ │ │ │ │ 117: 00000000 0 NOTYPE GLOBAL DEFAULT UND fftw_mpi_mkproblem_rdft_d │ │ │ │ │ 118: 00000000 0 NOTYPE GLOBAL DEFAULT UND fftw_ifree0 │ │ │ │ │ - 119: 0000329c 220 FUNC GLOBAL DEFAULT 1 fftw_mpi_plan_many_r2r │ │ │ │ │ - 120: 00003378 220 FUNC GLOBAL DEFAULT 1 fftw_mpi_plan_r2r │ │ │ │ │ - 121: 00003454 488 FUNC GLOBAL DEFAULT 1 fftw_mpi_plan_r2r_2d │ │ │ │ │ - 122: 0000363c 548 FUNC GLOBAL DEFAULT 1 fftw_mpi_plan_r2r_3d │ │ │ │ │ - 123: 00003860 220 FUNC GLOBAL DEFAULT 1 fftw_mpi_plan_many_dft_r2c │ │ │ │ │ - 124: 0000393c 220 FUNC GLOBAL DEFAULT 1 fftw_mpi_plan_many_dft_c2r │ │ │ │ │ - 125: 00003a18 220 FUNC GLOBAL DEFAULT 1 fftw_mpi_plan_dft_r2c │ │ │ │ │ - 126: 00003af4 144 FUNC GLOBAL DEFAULT 1 fftw_mpi_plan_dft_r2c_2d │ │ │ │ │ - 127: 00003b84 152 FUNC GLOBAL DEFAULT 1 fftw_mpi_plan_dft_r2c_3d │ │ │ │ │ - 128: 00003c1c 220 FUNC GLOBAL DEFAULT 1 fftw_mpi_plan_dft_c2r │ │ │ │ │ - 129: 00003cf8 152 FUNC GLOBAL DEFAULT 1 fftw_mpi_plan_dft_c2r_2d │ │ │ │ │ - 130: 00003d90 164 FUNC GLOBAL DEFAULT 1 fftw_mpi_plan_dft_c2r_3d │ │ │ │ │ - 131: 00003e34 4 FUNC GLOBAL DEFAULT 1 fftw_mpi_execute_dft │ │ │ │ │ + 119: 000035f8 244 FUNC GLOBAL DEFAULT 1 fftw_mpi_plan_many_r2r │ │ │ │ │ + 120: 000036ec 252 FUNC GLOBAL DEFAULT 1 fftw_mpi_plan_r2r │ │ │ │ │ + 121: 000037e8 516 FUNC GLOBAL DEFAULT 1 fftw_mpi_plan_r2r_2d │ │ │ │ │ + 122: 000039ec 576 FUNC GLOBAL DEFAULT 1 fftw_mpi_plan_r2r_3d │ │ │ │ │ + 123: 00003c2c 244 FUNC GLOBAL DEFAULT 1 fftw_mpi_plan_many_dft_r2c │ │ │ │ │ + 124: 00003d20 244 FUNC GLOBAL DEFAULT 1 fftw_mpi_plan_many_dft_c2r │ │ │ │ │ + 125: 00003e14 252 FUNC GLOBAL DEFAULT 1 fftw_mpi_plan_dft_r2c │ │ │ │ │ + 126: 00003f10 172 FUNC GLOBAL DEFAULT 1 fftw_mpi_plan_dft_r2c_2d │ │ │ │ │ + 127: 00003fbc 180 FUNC GLOBAL DEFAULT 1 fftw_mpi_plan_dft_r2c_3d │ │ │ │ │ + 128: 00004070 252 FUNC GLOBAL DEFAULT 1 fftw_mpi_plan_dft_c2r │ │ │ │ │ + 129: 0000416c 180 FUNC GLOBAL DEFAULT 1 fftw_mpi_plan_dft_c2r_2d │ │ │ │ │ + 130: 00004220 192 FUNC GLOBAL DEFAULT 1 fftw_mpi_plan_dft_c2r_3d │ │ │ │ │ + 131: 000042e0 4 FUNC GLOBAL DEFAULT 1 fftw_mpi_execute_dft │ │ │ │ │ 132: 00000000 0 NOTYPE GLOBAL DEFAULT UND fftw_execute_r2r │ │ │ │ │ - 133: 00003e38 4 FUNC GLOBAL DEFAULT 1 fftw_mpi_execute_dft_r2c │ │ │ │ │ - 134: 00003e3c 4 FUNC GLOBAL DEFAULT 1 fftw_mpi_execute_dft_c2r │ │ │ │ │ - 135: 00003e40 4 FUNC GLOBAL DEFAULT 1 fftw_mpi_execute_r2r │ │ │ │ │ + 133: 000042e4 4 FUNC GLOBAL DEFAULT 1 fftw_mpi_execute_dft_r2c │ │ │ │ │ + 134: 000042e8 4 FUNC GLOBAL DEFAULT 1 fftw_mpi_execute_dft_c2r │ │ │ │ │ + 135: 000042ec 4 FUNC GLOBAL DEFAULT 1 fftw_mpi_execute_r2r │ │ │ │ ├── readelf --wide --relocs {} │ │ │ │ │ @@ -1,322 +1,322 @@ │ │ │ │ │ │ │ │ │ │ -Relocation section '.rel.text' at offset 0x4f20 contains 319 entries: │ │ │ │ │ +Relocation section '.rel.text' at offset 0x53cc contains 319 entries: │ │ │ │ │ Offset Info Type Sym. Value Symbol's Name │ │ │ │ │ -00000048 0000421c R_ARM_CALL 00000000 fftw_mpi_any_true │ │ │ │ │ -00000074 00000403 R_ARM_REL32 00000000 .rodata │ │ │ │ │ -000000b0 0000421d R_ARM_JUMP24 00000000 fftw_mpi_any_true │ │ │ │ │ +0000004c 0000421c R_ARM_CALL 00000000 fftw_mpi_any_true │ │ │ │ │ +00000080 00000403 R_ARM_REL32 00000000 .rodata │ │ │ │ │ +000000bc 0000421d R_ARM_JUMP24 00000000 fftw_mpi_any_true │ │ │ │ │ 000000d8 00000403 R_ARM_REL32 00000000 .rodata │ │ │ │ │ -00000154 0000421c R_ARM_CALL 00000000 fftw_mpi_any_true │ │ │ │ │ -0000018c 0000431c R_ARM_CALL 00000000 MPI_Bcast │ │ │ │ │ -000001c0 0000441c R_ARM_CALL 00000000 MPI_Allreduce │ │ │ │ │ -00000224 00000403 R_ARM_REL32 00000000 .rodata │ │ │ │ │ -00000298 0000441c R_ARM_CALL 00000000 MPI_Allreduce │ │ │ │ │ -000002c8 00000403 R_ARM_REL32 00000000 .rodata │ │ │ │ │ -000002f0 0000451c R_ARM_CALL 00000000 fftw_mpi_num_blocks_total │ │ │ │ │ -00000344 0000461c R_ARM_CALL 00000000 fftw_mpi_block_coords │ │ │ │ │ -00000378 0000471c R_ARM_CALL 00000000 fftw_mpi_block │ │ │ │ │ -000003c0 0000481c R_ARM_CALL 00000000 fftw_mpi_mkdtensor │ │ │ │ │ -000003cc 0000481c R_ARM_CALL 00000000 fftw_mpi_mkdtensor │ │ │ │ │ -000004d4 0000451c R_ARM_CALL 00000000 fftw_mpi_num_blocks_total │ │ │ │ │ -000004e4 0000491c R_ARM_CALL 00000000 __aeabi_idiv │ │ │ │ │ -00000540 00004a1c R_ARM_CALL 00000000 fftw_mpi_dtensor_destroy │ │ │ │ │ -0000054c 00004b1c R_ARM_CALL 00000000 fftw_mpi_dtensor_canonical │ │ │ │ │ -00000558 00004a1c R_ARM_CALL 00000000 fftw_mpi_dtensor_destroy │ │ │ │ │ -00000570 00004c1c R_ARM_CALL 00000000 fftw_mpi_default_block │ │ │ │ │ -00000580 00004d1c R_ARM_CALL 00000000 fftw_mpi_num_blocks │ │ │ │ │ -00000590 0000491c R_ARM_CALL 00000000 __aeabi_idiv │ │ │ │ │ -000005b0 00004c1c R_ARM_CALL 00000000 fftw_mpi_default_block │ │ │ │ │ -000005c0 00004d1c R_ARM_CALL 00000000 fftw_mpi_num_blocks │ │ │ │ │ -000005cc 0000491c R_ARM_CALL 00000000 __aeabi_idiv │ │ │ │ │ -000005ec 00004c1c R_ARM_CALL 00000000 fftw_mpi_default_block │ │ │ │ │ -000005fc 00004d1c R_ARM_CALL 00000000 fftw_mpi_num_blocks │ │ │ │ │ -00000658 00004e1c R_ARM_CALL 00000000 fftw_malloc_plain │ │ │ │ │ -00000694 00004e1c R_ARM_CALL 00000000 fftw_malloc_plain │ │ │ │ │ -000006c8 00004f1c R_ARM_CALL 00000000 MPI_Comm_rank │ │ │ │ │ -000006d4 0000501c R_ARM_CALL 00000000 MPI_Comm_size │ │ │ │ │ -000006f0 0000511c R_ARM_CALL 00000000 fftw_mpi_is_block1d │ │ │ │ │ -00000754 0000521c R_ARM_CALL 00000000 fftw_imax │ │ │ │ │ -00000760 0000521c R_ARM_CALL 00000000 fftw_imax │ │ │ │ │ -0000076c 00004a1c R_ARM_CALL 00000000 fftw_mpi_dtensor_destroy │ │ │ │ │ -000007a0 0000531c R_ARM_CALL 00000000 fftw_ifree │ │ │ │ │ -000007a8 0000531c R_ARM_CALL 00000000 fftw_ifree │ │ │ │ │ -000007c0 0000511c R_ARM_CALL 00000000 fftw_mpi_is_block1d │ │ │ │ │ -000007fc 00004d1c R_ARM_CALL 00000000 fftw_mpi_num_blocks │ │ │ │ │ -0000086c 00004c1c R_ARM_CALL 00000000 fftw_mpi_default_block │ │ │ │ │ -00000880 0000471c R_ARM_CALL 00000000 fftw_mpi_block │ │ │ │ │ -0000088c 0000521c R_ARM_CALL 00000000 fftw_imax │ │ │ │ │ -000008d4 00004c1c R_ARM_CALL 00000000 fftw_mpi_default_block │ │ │ │ │ -000008e4 0000471c R_ARM_CALL 00000000 fftw_mpi_block │ │ │ │ │ -000008f4 0000521c R_ARM_CALL 00000000 fftw_imax │ │ │ │ │ -00000908 00004d1c R_ARM_CALL 00000000 fftw_mpi_num_blocks │ │ │ │ │ -00000938 00004c1c R_ARM_CALL 00000000 fftw_mpi_default_block │ │ │ │ │ -00000998 0000521c R_ARM_CALL 00000000 fftw_imax │ │ │ │ │ -00000a08 0000481c R_ARM_CALL 00000000 fftw_mpi_mkdtensor │ │ │ │ │ -00000a18 0000481c R_ARM_CALL 00000000 fftw_mpi_mkdtensor │ │ │ │ │ -00000aa8 0000451c R_ARM_CALL 00000000 fftw_mpi_num_blocks_total │ │ │ │ │ -00000ab8 0000491c R_ARM_CALL 00000000 __aeabi_idiv │ │ │ │ │ -00000b08 00004a1c R_ARM_CALL 00000000 fftw_mpi_dtensor_destroy │ │ │ │ │ -00000b14 00004b1c R_ARM_CALL 00000000 fftw_mpi_dtensor_canonical │ │ │ │ │ -00000b20 00004a1c R_ARM_CALL 00000000 fftw_mpi_dtensor_destroy │ │ │ │ │ -00000b38 00004c1c R_ARM_CALL 00000000 fftw_mpi_default_block │ │ │ │ │ -00000b48 00004d1c R_ARM_CALL 00000000 fftw_mpi_num_blocks │ │ │ │ │ -00000b54 0000491c R_ARM_CALL 00000000 __aeabi_idiv │ │ │ │ │ -00000b74 00004c1c R_ARM_CALL 00000000 fftw_mpi_default_block │ │ │ │ │ -00000b84 00004d1c R_ARM_CALL 00000000 fftw_mpi_num_blocks │ │ │ │ │ -00000ba8 00004e1c R_ARM_CALL 00000000 fftw_malloc_plain │ │ │ │ │ -00000bd4 00004e1c R_ARM_CALL 00000000 fftw_malloc_plain │ │ │ │ │ -00000c0c 00004f1c R_ARM_CALL 00000000 MPI_Comm_rank │ │ │ │ │ -00000c18 0000501c R_ARM_CALL 00000000 MPI_Comm_size │ │ │ │ │ -00000c34 0000511c R_ARM_CALL 00000000 fftw_mpi_is_block1d │ │ │ │ │ -00000c8c 0000521c R_ARM_CALL 00000000 fftw_imax │ │ │ │ │ -00000c98 0000521c R_ARM_CALL 00000000 fftw_imax │ │ │ │ │ -00000ca4 00004a1c R_ARM_CALL 00000000 fftw_mpi_dtensor_destroy │ │ │ │ │ -00000cd8 0000531c R_ARM_CALL 00000000 fftw_ifree │ │ │ │ │ -00000ce0 0000531c R_ARM_CALL 00000000 fftw_ifree │ │ │ │ │ -00000cf8 0000511c R_ARM_CALL 00000000 fftw_mpi_is_block1d │ │ │ │ │ -00000d44 00004d1c R_ARM_CALL 00000000 fftw_mpi_num_blocks │ │ │ │ │ -00000dbc 00004c1c R_ARM_CALL 00000000 fftw_mpi_default_block │ │ │ │ │ -00000dcc 0000471c R_ARM_CALL 00000000 fftw_mpi_block │ │ │ │ │ -00000dd8 0000521c R_ARM_CALL 00000000 fftw_imax │ │ │ │ │ -00000e1c 00004c1c R_ARM_CALL 00000000 fftw_mpi_default_block │ │ │ │ │ -00000e2c 0000471c R_ARM_CALL 00000000 fftw_mpi_block │ │ │ │ │ -00000e38 0000521c R_ARM_CALL 00000000 fftw_imax │ │ │ │ │ -00000e4c 00004d1c R_ARM_CALL 00000000 fftw_mpi_num_blocks │ │ │ │ │ -00000e8c 00004c1c R_ARM_CALL 00000000 fftw_mpi_default_block │ │ │ │ │ -00000edc 0000521c R_ARM_CALL 00000000 fftw_imax │ │ │ │ │ -00000f3c 0000481c R_ARM_CALL 00000000 fftw_mpi_mkdtensor │ │ │ │ │ -00000f4c 0000481c R_ARM_CALL 00000000 fftw_mpi_mkdtensor │ │ │ │ │ -00000f98 0000451c R_ARM_CALL 00000000 fftw_mpi_num_blocks_total │ │ │ │ │ -00000fa4 0000491c R_ARM_CALL 00000000 __aeabi_idiv │ │ │ │ │ -00000fdc 0000541c R_ARM_CALL 00000000 fftw_is_prime │ │ │ │ │ -00000ff4 00004a1c R_ARM_CALL 00000000 fftw_mpi_dtensor_destroy │ │ │ │ │ -00001000 00004b1c R_ARM_CALL 00000000 fftw_mpi_dtensor_canonical │ │ │ │ │ -0000100c 00004a1c R_ARM_CALL 00000000 fftw_mpi_dtensor_destroy │ │ │ │ │ -0000101c 00004c1c R_ARM_CALL 00000000 fftw_mpi_default_block │ │ │ │ │ -0000102c 00004d1c R_ARM_CALL 00000000 fftw_mpi_num_blocks │ │ │ │ │ -00001060 00004f1c R_ARM_CALL 00000000 MPI_Comm_rank │ │ │ │ │ -0000106c 0000501c R_ARM_CALL 00000000 MPI_Comm_size │ │ │ │ │ -000010b8 0000551c R_ARM_CALL 00000000 fftw_mpi_choose_radix │ │ │ │ │ -000010d0 0000491c R_ARM_CALL 00000000 __aeabi_idiv │ │ │ │ │ -00001144 0000521c R_ARM_CALL 00000000 fftw_imax │ │ │ │ │ -00001150 0000521c R_ARM_CALL 00000000 fftw_imax │ │ │ │ │ -0000115c 00004a1c R_ARM_CALL 00000000 fftw_mpi_dtensor_destroy │ │ │ │ │ -00001180 0000561c R_ARM_CALL 00000000 fftw_assertion_failed │ │ │ │ │ -00001190 0000481c R_ARM_CALL 00000000 fftw_mpi_mkdtensor │ │ │ │ │ -000011b8 00004c1c R_ARM_CALL 00000000 fftw_mpi_default_block │ │ │ │ │ -000011e0 00004a1c R_ARM_CALL 00000000 fftw_mpi_dtensor_destroy │ │ │ │ │ -000011f8 0000491c R_ARM_CALL 00000000 __aeabi_idiv │ │ │ │ │ -00001204 0000521c R_ARM_CALL 00000000 fftw_imax │ │ │ │ │ -00001214 0000521c R_ARM_CALL 00000000 fftw_imax │ │ │ │ │ -0000123c 0000521c R_ARM_CALL 00000000 fftw_imax │ │ │ │ │ -00001248 00001703 R_ARM_REL32 00000000 .LC0 │ │ │ │ │ -0000124c 00001803 R_ARM_REL32 00000008 .LC1 │ │ │ │ │ -0000126c 0000481c R_ARM_CALL 00000000 fftw_mpi_mkdtensor │ │ │ │ │ -00001278 0000481c R_ARM_CALL 00000000 fftw_mpi_mkdtensor │ │ │ │ │ -000013e8 0000451c R_ARM_CALL 00000000 fftw_mpi_num_blocks_total │ │ │ │ │ -000013f8 0000491c R_ARM_CALL 00000000 __aeabi_idiv │ │ │ │ │ -00001454 00004c1c R_ARM_CALL 00000000 fftw_mpi_default_block │ │ │ │ │ -00001468 00004d1c R_ARM_CALL 00000000 fftw_mpi_num_blocks │ │ │ │ │ -00001478 0000491c R_ARM_CALL 00000000 __aeabi_idiv │ │ │ │ │ -000014e4 00004a1c R_ARM_CALL 00000000 fftw_mpi_dtensor_destroy │ │ │ │ │ -000014f0 00004b1c R_ARM_CALL 00000000 fftw_mpi_dtensor_canonical │ │ │ │ │ -000014fc 00004a1c R_ARM_CALL 00000000 fftw_mpi_dtensor_destroy │ │ │ │ │ -00001550 0000541c R_ARM_CALL 00000000 fftw_is_prime │ │ │ │ │ -000015c8 00004f1c R_ARM_CALL 00000000 MPI_Comm_rank │ │ │ │ │ -000015d4 0000501c R_ARM_CALL 00000000 MPI_Comm_size │ │ │ │ │ -00001618 0000481c R_ARM_CALL 00000000 fftw_mpi_mkdtensor │ │ │ │ │ -00001640 00004c1c R_ARM_CALL 00000000 fftw_mpi_default_block │ │ │ │ │ +00000164 0000421c R_ARM_CALL 00000000 fftw_mpi_any_true │ │ │ │ │ +0000019c 0000431c R_ARM_CALL 00000000 MPI_Bcast │ │ │ │ │ +000001d0 0000441c R_ARM_CALL 00000000 MPI_Allreduce │ │ │ │ │ +00000248 00000403 R_ARM_REL32 00000000 .rodata │ │ │ │ │ +000002bc 0000441c R_ARM_CALL 00000000 MPI_Allreduce │ │ │ │ │ +000002ec 00000403 R_ARM_REL32 00000000 .rodata │ │ │ │ │ +00000324 0000451c R_ARM_CALL 00000000 fftw_mpi_num_blocks_total │ │ │ │ │ +0000038c 0000461c R_ARM_CALL 00000000 fftw_mpi_block_coords │ │ │ │ │ +000003c8 0000471c R_ARM_CALL 00000000 fftw_mpi_block │ │ │ │ │ +00000418 0000481c R_ARM_CALL 00000000 fftw_mpi_mkdtensor │ │ │ │ │ +00000424 0000481c R_ARM_CALL 00000000 fftw_mpi_mkdtensor │ │ │ │ │ +00000530 0000451c R_ARM_CALL 00000000 fftw_mpi_num_blocks_total │ │ │ │ │ +00000540 0000491c R_ARM_CALL 00000000 __aeabi_idiv │ │ │ │ │ +0000059c 00004a1c R_ARM_CALL 00000000 fftw_mpi_dtensor_destroy │ │ │ │ │ +000005a8 00004b1c R_ARM_CALL 00000000 fftw_mpi_dtensor_canonical │ │ │ │ │ +000005b4 00004a1c R_ARM_CALL 00000000 fftw_mpi_dtensor_destroy │ │ │ │ │ +000005e0 00004c1c R_ARM_CALL 00000000 fftw_mpi_default_block │ │ │ │ │ +000005f0 00004d1c R_ARM_CALL 00000000 fftw_mpi_num_blocks │ │ │ │ │ +00000600 0000491c R_ARM_CALL 00000000 __aeabi_idiv │ │ │ │ │ +00000620 00004c1c R_ARM_CALL 00000000 fftw_mpi_default_block │ │ │ │ │ +00000630 00004d1c R_ARM_CALL 00000000 fftw_mpi_num_blocks │ │ │ │ │ +0000063c 0000491c R_ARM_CALL 00000000 __aeabi_idiv │ │ │ │ │ +0000065c 00004c1c R_ARM_CALL 00000000 fftw_mpi_default_block │ │ │ │ │ +0000066c 00004d1c R_ARM_CALL 00000000 fftw_mpi_num_blocks │ │ │ │ │ +000006d8 00004e1c R_ARM_CALL 00000000 fftw_malloc_plain │ │ │ │ │ +00000714 00004e1c R_ARM_CALL 00000000 fftw_malloc_plain │ │ │ │ │ +00000748 00004f1c R_ARM_CALL 00000000 MPI_Comm_rank │ │ │ │ │ +00000754 0000501c R_ARM_CALL 00000000 MPI_Comm_size │ │ │ │ │ +00000770 0000511c R_ARM_CALL 00000000 fftw_mpi_is_block1d │ │ │ │ │ +000007d4 0000521c R_ARM_CALL 00000000 fftw_imax │ │ │ │ │ +000007e0 0000521c R_ARM_CALL 00000000 fftw_imax │ │ │ │ │ +000007ec 00004a1c R_ARM_CALL 00000000 fftw_mpi_dtensor_destroy │ │ │ │ │ +00000820 0000531c R_ARM_CALL 00000000 fftw_ifree │ │ │ │ │ +00000828 0000531c R_ARM_CALL 00000000 fftw_ifree │ │ │ │ │ +00000854 0000511c R_ARM_CALL 00000000 fftw_mpi_is_block1d │ │ │ │ │ +00000898 00004d1c R_ARM_CALL 00000000 fftw_mpi_num_blocks │ │ │ │ │ +00000908 00004c1c R_ARM_CALL 00000000 fftw_mpi_default_block │ │ │ │ │ +0000091c 0000471c R_ARM_CALL 00000000 fftw_mpi_block │ │ │ │ │ +00000928 0000521c R_ARM_CALL 00000000 fftw_imax │ │ │ │ │ +00000970 00004c1c R_ARM_CALL 00000000 fftw_mpi_default_block │ │ │ │ │ +00000980 0000471c R_ARM_CALL 00000000 fftw_mpi_block │ │ │ │ │ +00000990 0000521c R_ARM_CALL 00000000 fftw_imax │ │ │ │ │ +000009a4 00004d1c R_ARM_CALL 00000000 fftw_mpi_num_blocks │ │ │ │ │ +000009d4 00004c1c R_ARM_CALL 00000000 fftw_mpi_default_block │ │ │ │ │ +00000a34 0000521c R_ARM_CALL 00000000 fftw_imax │ │ │ │ │ +00000abc 0000481c R_ARM_CALL 00000000 fftw_mpi_mkdtensor │ │ │ │ │ +00000ac8 0000481c R_ARM_CALL 00000000 fftw_mpi_mkdtensor │ │ │ │ │ +00000b60 0000451c R_ARM_CALL 00000000 fftw_mpi_num_blocks_total │ │ │ │ │ +00000b70 0000491c R_ARM_CALL 00000000 __aeabi_idiv │ │ │ │ │ +00000bc0 00004a1c R_ARM_CALL 00000000 fftw_mpi_dtensor_destroy │ │ │ │ │ +00000bcc 00004b1c R_ARM_CALL 00000000 fftw_mpi_dtensor_canonical │ │ │ │ │ +00000bd8 00004a1c R_ARM_CALL 00000000 fftw_mpi_dtensor_destroy │ │ │ │ │ +00000c04 00004c1c R_ARM_CALL 00000000 fftw_mpi_default_block │ │ │ │ │ +00000c14 00004d1c R_ARM_CALL 00000000 fftw_mpi_num_blocks │ │ │ │ │ +00000c20 0000491c R_ARM_CALL 00000000 __aeabi_idiv │ │ │ │ │ +00000c40 00004c1c R_ARM_CALL 00000000 fftw_mpi_default_block │ │ │ │ │ +00000c50 00004d1c R_ARM_CALL 00000000 fftw_mpi_num_blocks │ │ │ │ │ +00000c84 00004e1c R_ARM_CALL 00000000 fftw_malloc_plain │ │ │ │ │ +00000cb0 00004e1c R_ARM_CALL 00000000 fftw_malloc_plain │ │ │ │ │ +00000ce8 00004f1c R_ARM_CALL 00000000 MPI_Comm_rank │ │ │ │ │ +00000cf4 0000501c R_ARM_CALL 00000000 MPI_Comm_size │ │ │ │ │ +00000d10 0000511c R_ARM_CALL 00000000 fftw_mpi_is_block1d │ │ │ │ │ +00000d68 0000521c R_ARM_CALL 00000000 fftw_imax │ │ │ │ │ +00000d74 0000521c R_ARM_CALL 00000000 fftw_imax │ │ │ │ │ +00000d80 00004a1c R_ARM_CALL 00000000 fftw_mpi_dtensor_destroy │ │ │ │ │ +00000db4 0000531c R_ARM_CALL 00000000 fftw_ifree │ │ │ │ │ +00000dbc 0000531c R_ARM_CALL 00000000 fftw_ifree │ │ │ │ │ +00000de8 0000511c R_ARM_CALL 00000000 fftw_mpi_is_block1d │ │ │ │ │ +00000e3c 00004d1c R_ARM_CALL 00000000 fftw_mpi_num_blocks │ │ │ │ │ +00000eb4 00004c1c R_ARM_CALL 00000000 fftw_mpi_default_block │ │ │ │ │ +00000ec4 0000471c R_ARM_CALL 00000000 fftw_mpi_block │ │ │ │ │ +00000ed0 0000521c R_ARM_CALL 00000000 fftw_imax │ │ │ │ │ +00000f14 00004c1c R_ARM_CALL 00000000 fftw_mpi_default_block │ │ │ │ │ +00000f24 0000471c R_ARM_CALL 00000000 fftw_mpi_block │ │ │ │ │ +00000f30 0000521c R_ARM_CALL 00000000 fftw_imax │ │ │ │ │ +00000f44 00004d1c R_ARM_CALL 00000000 fftw_mpi_num_blocks │ │ │ │ │ +00000f84 00004c1c R_ARM_CALL 00000000 fftw_mpi_default_block │ │ │ │ │ +00000fd4 0000521c R_ARM_CALL 00000000 fftw_imax │ │ │ │ │ +00001050 0000481c R_ARM_CALL 00000000 fftw_mpi_mkdtensor │ │ │ │ │ +0000105c 0000481c R_ARM_CALL 00000000 fftw_mpi_mkdtensor │ │ │ │ │ +000010a8 0000451c R_ARM_CALL 00000000 fftw_mpi_num_blocks_total │ │ │ │ │ +000010b4 0000491c R_ARM_CALL 00000000 __aeabi_idiv │ │ │ │ │ +000010ec 0000541c R_ARM_CALL 00000000 fftw_is_prime │ │ │ │ │ +00001108 00004a1c R_ARM_CALL 00000000 fftw_mpi_dtensor_destroy │ │ │ │ │ +00001114 00004b1c R_ARM_CALL 00000000 fftw_mpi_dtensor_canonical │ │ │ │ │ +00001120 00004a1c R_ARM_CALL 00000000 fftw_mpi_dtensor_destroy │ │ │ │ │ +00001144 00004c1c R_ARM_CALL 00000000 fftw_mpi_default_block │ │ │ │ │ +00001154 00004d1c R_ARM_CALL 00000000 fftw_mpi_num_blocks │ │ │ │ │ +00001198 00004f1c R_ARM_CALL 00000000 MPI_Comm_rank │ │ │ │ │ +000011a4 0000501c R_ARM_CALL 00000000 MPI_Comm_size │ │ │ │ │ +000011f0 0000551c R_ARM_CALL 00000000 fftw_mpi_choose_radix │ │ │ │ │ +00001208 0000491c R_ARM_CALL 00000000 __aeabi_idiv │ │ │ │ │ +0000127c 0000521c R_ARM_CALL 00000000 fftw_imax │ │ │ │ │ +00001288 0000521c R_ARM_CALL 00000000 fftw_imax │ │ │ │ │ +00001294 00004a1c R_ARM_CALL 00000000 fftw_mpi_dtensor_destroy │ │ │ │ │ +000012cc 0000561c R_ARM_CALL 00000000 fftw_assertion_failed │ │ │ │ │ +000012dc 0000481c R_ARM_CALL 00000000 fftw_mpi_mkdtensor │ │ │ │ │ +0000130c 00004c1c R_ARM_CALL 00000000 fftw_mpi_default_block │ │ │ │ │ +00001334 00004a1c R_ARM_CALL 00000000 fftw_mpi_dtensor_destroy │ │ │ │ │ +0000134c 0000491c R_ARM_CALL 00000000 __aeabi_idiv │ │ │ │ │ +00001358 0000521c R_ARM_CALL 00000000 fftw_imax │ │ │ │ │ +00001368 0000521c R_ARM_CALL 00000000 fftw_imax │ │ │ │ │ +00001390 0000521c R_ARM_CALL 00000000 fftw_imax │ │ │ │ │ +0000139c 00001703 R_ARM_REL32 00000000 .LC0 │ │ │ │ │ +000013a0 00001803 R_ARM_REL32 00000008 .LC1 │ │ │ │ │ +000013d0 0000481c R_ARM_CALL 00000000 fftw_mpi_mkdtensor │ │ │ │ │ +000013dc 0000481c R_ARM_CALL 00000000 fftw_mpi_mkdtensor │ │ │ │ │ +00001554 0000451c R_ARM_CALL 00000000 fftw_mpi_num_blocks_total │ │ │ │ │ +00001564 0000491c R_ARM_CALL 00000000 __aeabi_idiv │ │ │ │ │ +000015c0 00004c1c R_ARM_CALL 00000000 fftw_mpi_default_block │ │ │ │ │ +000015d4 00004d1c R_ARM_CALL 00000000 fftw_mpi_num_blocks │ │ │ │ │ +000015e4 0000491c R_ARM_CALL 00000000 __aeabi_idiv │ │ │ │ │ +00001654 00004a1c R_ARM_CALL 00000000 fftw_mpi_dtensor_destroy │ │ │ │ │ +00001660 00004b1c R_ARM_CALL 00000000 fftw_mpi_dtensor_canonical │ │ │ │ │ 0000166c 00004a1c R_ARM_CALL 00000000 fftw_mpi_dtensor_destroy │ │ │ │ │ -00001688 0000491c R_ARM_CALL 00000000 __aeabi_idiv │ │ │ │ │ -00001694 0000521c R_ARM_CALL 00000000 fftw_imax │ │ │ │ │ -000016d4 0000551c R_ARM_CALL 00000000 fftw_mpi_choose_radix │ │ │ │ │ -000016e8 0000491c R_ARM_CALL 00000000 __aeabi_idiv │ │ │ │ │ -00001734 0000511c R_ARM_CALL 00000000 fftw_mpi_is_block1d │ │ │ │ │ -000017b8 0000521c R_ARM_CALL 00000000 fftw_imax │ │ │ │ │ -000017c4 0000521c R_ARM_CALL 00000000 fftw_imax │ │ │ │ │ -000017d0 00004a1c R_ARM_CALL 00000000 fftw_mpi_dtensor_destroy │ │ │ │ │ -0000184c 0000561c R_ARM_CALL 00000000 fftw_assertion_failed │ │ │ │ │ -00001860 0000511c R_ARM_CALL 00000000 fftw_mpi_is_block1d │ │ │ │ │ -00001894 00004d1c R_ARM_CALL 00000000 fftw_mpi_num_blocks │ │ │ │ │ -000018fc 00004c1c R_ARM_CALL 00000000 fftw_mpi_default_block │ │ │ │ │ -0000190c 0000471c R_ARM_CALL 00000000 fftw_mpi_block │ │ │ │ │ -0000191c 0000491c R_ARM_CALL 00000000 __aeabi_idiv │ │ │ │ │ -00001928 0000521c R_ARM_CALL 00000000 fftw_imax │ │ │ │ │ -00001974 00004c1c R_ARM_CALL 00000000 fftw_mpi_default_block │ │ │ │ │ -00001984 0000471c R_ARM_CALL 00000000 fftw_mpi_block │ │ │ │ │ -00001994 0000491c R_ARM_CALL 00000000 __aeabi_idiv │ │ │ │ │ -000019a0 0000521c R_ARM_CALL 00000000 fftw_imax │ │ │ │ │ -000019bc 0000521c R_ARM_CALL 00000000 fftw_imax │ │ │ │ │ -000019cc 0000521c R_ARM_CALL 00000000 fftw_imax │ │ │ │ │ -000019f4 00004d1c R_ARM_CALL 00000000 fftw_mpi_num_blocks │ │ │ │ │ -00001a24 00004c1c R_ARM_CALL 00000000 fftw_mpi_default_block │ │ │ │ │ -00001a94 0000521c R_ARM_CALL 00000000 fftw_imax │ │ │ │ │ -00001ae8 00001703 R_ARM_REL32 00000000 .LC0 │ │ │ │ │ -00001aec 00001803 R_ARM_REL32 00000008 .LC1 │ │ │ │ │ -00001b18 00004e1c R_ARM_CALL 00000000 fftw_malloc_plain │ │ │ │ │ -00001b54 00004e1c R_ARM_CALL 00000000 fftw_malloc_plain │ │ │ │ │ -00001bf8 0000531c R_ARM_CALL 00000000 fftw_ifree │ │ │ │ │ -00001c00 0000531c R_ARM_CALL 00000000 fftw_ifree │ │ │ │ │ -00001c10 00004e1c R_ARM_CALL 00000000 fftw_malloc_plain │ │ │ │ │ -00001d34 0000501c R_ARM_CALL 00000000 MPI_Comm_size │ │ │ │ │ -00001d64 0000451c R_ARM_CALL 00000000 fftw_mpi_num_blocks_total │ │ │ │ │ -00001d7c 0000451c R_ARM_CALL 00000000 fftw_mpi_num_blocks_total │ │ │ │ │ -00001dd8 0000571c R_ARM_CALL 00000000 fftw_mpi_mkproblem_rdft2_d │ │ │ │ │ -00001de8 0000581c R_ARM_CALL 00000000 fftw_mkapiplan │ │ │ │ │ -00001df8 00004a1c R_ARM_CALL 00000000 fftw_mpi_dtensor_destroy │ │ │ │ │ -00001e08 0000591c R_ARM_CALL 00000000 fftw_the_planner │ │ │ │ │ -00001e3c 00005a1c R_ARM_CALL 00000000 fftw_mpi_conf_standard │ │ │ │ │ -00001e4c 00000103 R_ARM_REL32 00000000 .bss │ │ │ │ │ -00001edc 0000501c R_ARM_CALL 00000000 MPI_Comm_size │ │ │ │ │ -00001f0c 0000451c R_ARM_CALL 00000000 fftw_mpi_num_blocks_total │ │ │ │ │ -00001f24 0000451c R_ARM_CALL 00000000 fftw_mpi_num_blocks_total │ │ │ │ │ -00001f80 0000571c R_ARM_CALL 00000000 fftw_mpi_mkproblem_rdft2_d │ │ │ │ │ -00001f90 0000581c R_ARM_CALL 00000000 fftw_mkapiplan │ │ │ │ │ -00001f9c 0000591c R_ARM_CALL 00000000 fftw_the_planner │ │ │ │ │ -00001fd0 00005a1c R_ARM_CALL 00000000 fftw_mpi_conf_standard │ │ │ │ │ -00001fe4 00004a1c R_ARM_CALL 00000000 fftw_mpi_dtensor_destroy │ │ │ │ │ -00001ff4 00000103 R_ARM_REL32 00000000 .bss │ │ │ │ │ -00002088 0000501c R_ARM_CALL 00000000 MPI_Comm_size │ │ │ │ │ -000020cc 0000451c R_ARM_CALL 00000000 fftw_mpi_num_blocks_total │ │ │ │ │ -000020e4 0000451c R_ARM_CALL 00000000 fftw_mpi_num_blocks_total │ │ │ │ │ -00002130 0000571c R_ARM_CALL 00000000 fftw_mpi_mkproblem_rdft2_d │ │ │ │ │ -00002140 0000581c R_ARM_CALL 00000000 fftw_mkapiplan │ │ │ │ │ -00002150 00004a1c R_ARM_CALL 00000000 fftw_mpi_dtensor_destroy │ │ │ │ │ -00002160 0000591c R_ARM_CALL 00000000 fftw_the_planner │ │ │ │ │ -00002194 00005a1c R_ARM_CALL 00000000 fftw_mpi_conf_standard │ │ │ │ │ -000021c0 00000103 R_ARM_REL32 00000000 .bss │ │ │ │ │ -000021ec 0000591c R_ARM_CALL 00000000 fftw_the_planner │ │ │ │ │ -00002220 00005a1c R_ARM_CALL 00000000 fftw_mpi_conf_standard │ │ │ │ │ -00002230 00000103 R_ARM_REL32 00000000 .bss │ │ │ │ │ -00002248 00005d1c R_ARM_CALL 00000000 fftw_cleanup │ │ │ │ │ -00002260 00000103 R_ARM_REL32 00000000 .bss │ │ │ │ │ -00002640 0000501c R_ARM_CALL 00000000 MPI_Comm_size │ │ │ │ │ -0000265c 00004d1c R_ARM_CALL 00000000 fftw_mpi_num_blocks │ │ │ │ │ -00002674 00004d1c R_ARM_CALL 00000000 fftw_mpi_num_blocks │ │ │ │ │ -000026b4 00006a1c R_ARM_CALL 00000000 fftw_mpi_mkproblem_transpose │ │ │ │ │ -000026c4 0000581c R_ARM_CALL 00000000 fftw_mkapiplan │ │ │ │ │ -000026dc 0000591c R_ARM_CALL 00000000 fftw_the_planner │ │ │ │ │ -00002710 00005a1c R_ARM_CALL 00000000 fftw_mpi_conf_standard │ │ │ │ │ -00002728 00004c1c R_ARM_CALL 00000000 fftw_mpi_default_block │ │ │ │ │ -0000273c 00004c1c R_ARM_CALL 00000000 fftw_mpi_default_block │ │ │ │ │ -00002750 00000103 R_ARM_REL32 00000000 .bss │ │ │ │ │ -000027a4 0000501c R_ARM_CALL 00000000 MPI_Comm_size │ │ │ │ │ -000027b0 00004c1c R_ARM_CALL 00000000 fftw_mpi_default_block │ │ │ │ │ -000027c0 00004c1c R_ARM_CALL 00000000 fftw_mpi_default_block │ │ │ │ │ -000027d0 00004d1c R_ARM_CALL 00000000 fftw_mpi_num_blocks │ │ │ │ │ -000027e8 00004d1c R_ARM_CALL 00000000 fftw_mpi_num_blocks │ │ │ │ │ -00002820 00006a1c R_ARM_CALL 00000000 fftw_mpi_mkproblem_transpose │ │ │ │ │ -00002830 0000581c R_ARM_CALL 00000000 fftw_mkapiplan │ │ │ │ │ -00002848 0000591c R_ARM_CALL 00000000 fftw_the_planner │ │ │ │ │ -0000287c 00005a1c R_ARM_CALL 00000000 fftw_mpi_conf_standard │ │ │ │ │ -0000288c 00000103 R_ARM_REL32 00000000 .bss │ │ │ │ │ -00002920 0000501c R_ARM_CALL 00000000 MPI_Comm_size │ │ │ │ │ -00002940 0000451c R_ARM_CALL 00000000 fftw_mpi_num_blocks_total │ │ │ │ │ -00002958 0000451c R_ARM_CALL 00000000 fftw_mpi_num_blocks_total │ │ │ │ │ -00002994 00006d1c R_ARM_CALL 00000000 fftw_mpi_mkproblem_dft_d │ │ │ │ │ -000029a0 0000581c R_ARM_CALL 00000000 fftw_mkapiplan │ │ │ │ │ -000029b0 00004a1c R_ARM_CALL 00000000 fftw_mpi_dtensor_destroy │ │ │ │ │ -000029c0 0000591c R_ARM_CALL 00000000 fftw_the_planner │ │ │ │ │ -000029f4 00005a1c R_ARM_CALL 00000000 fftw_mpi_conf_standard │ │ │ │ │ -00002a04 00000103 R_ARM_REL32 00000000 .bss │ │ │ │ │ -00002a3c 00004e1c R_ARM_CALL 00000000 fftw_malloc_plain │ │ │ │ │ -00002ac8 00006c1c R_ARM_CALL 000028a0 fftw_mpi_plan_guru_dft │ │ │ │ │ -00002ad4 0000531c R_ARM_CALL 00000000 fftw_ifree │ │ │ │ │ -00002b18 00004e1c R_ARM_CALL 00000000 fftw_malloc_plain │ │ │ │ │ -00002ba4 00006c1c R_ARM_CALL 000028a0 fftw_mpi_plan_guru_dft │ │ │ │ │ -00002bb0 0000531c R_ARM_CALL 00000000 fftw_ifree │ │ │ │ │ -00002bec 00004e1c R_ARM_CALL 00000000 fftw_malloc_plain │ │ │ │ │ -00002c28 0000501c R_ARM_CALL 00000000 MPI_Comm_size │ │ │ │ │ -00002c40 0000451c R_ARM_CALL 00000000 fftw_mpi_num_blocks_total │ │ │ │ │ -00002c58 0000451c R_ARM_CALL 00000000 fftw_mpi_num_blocks_total │ │ │ │ │ -00002c90 00006d1c R_ARM_CALL 00000000 fftw_mpi_mkproblem_dft_d │ │ │ │ │ -00002c9c 0000581c R_ARM_CALL 00000000 fftw_mkapiplan │ │ │ │ │ -00002cac 00004a1c R_ARM_CALL 00000000 fftw_mpi_dtensor_destroy │ │ │ │ │ -00002cb8 0000531c R_ARM_CALL 00000000 fftw_ifree │ │ │ │ │ -00002cc8 0000591c R_ARM_CALL 00000000 fftw_the_planner │ │ │ │ │ -00002cfc 00005a1c R_ARM_CALL 00000000 fftw_mpi_conf_standard │ │ │ │ │ -00002d30 00000103 R_ARM_REL32 00000000 .bss │ │ │ │ │ -00002d64 00004e1c R_ARM_CALL 00000000 fftw_malloc_plain │ │ │ │ │ -00002e04 0000501c R_ARM_CALL 00000000 MPI_Comm_size │ │ │ │ │ -00002e20 0000451c R_ARM_CALL 00000000 fftw_mpi_num_blocks_total │ │ │ │ │ -00002e38 0000451c R_ARM_CALL 00000000 fftw_mpi_num_blocks_total │ │ │ │ │ -00002e70 00006d1c R_ARM_CALL 00000000 fftw_mpi_mkproblem_dft_d │ │ │ │ │ -00002e80 0000581c R_ARM_CALL 00000000 fftw_mkapiplan │ │ │ │ │ -00002e90 00004a1c R_ARM_CALL 00000000 fftw_mpi_dtensor_destroy │ │ │ │ │ -00002e9c 0000531c R_ARM_CALL 00000000 fftw_ifree │ │ │ │ │ -00002eac 0000591c R_ARM_CALL 00000000 fftw_the_planner │ │ │ │ │ -00002ee0 00005a1c R_ARM_CALL 00000000 fftw_mpi_conf_standard │ │ │ │ │ -00002ef4 00000103 R_ARM_REL32 00000000 .bss │ │ │ │ │ -00002f28 00004e1c R_ARM_CALL 00000000 fftw_malloc_plain │ │ │ │ │ -00003000 0000501c R_ARM_CALL 00000000 MPI_Comm_size │ │ │ │ │ -0000301c 0000451c R_ARM_CALL 00000000 fftw_mpi_num_blocks_total │ │ │ │ │ -00003034 0000451c R_ARM_CALL 00000000 fftw_mpi_num_blocks_total │ │ │ │ │ -0000306c 00006d1c R_ARM_CALL 00000000 fftw_mpi_mkproblem_dft_d │ │ │ │ │ -0000307c 0000581c R_ARM_CALL 00000000 fftw_mkapiplan │ │ │ │ │ -0000308c 00004a1c R_ARM_CALL 00000000 fftw_mpi_dtensor_destroy │ │ │ │ │ -00003098 0000531c R_ARM_CALL 00000000 fftw_ifree │ │ │ │ │ -000030a8 0000591c R_ARM_CALL 00000000 fftw_the_planner │ │ │ │ │ -000030dc 00005a1c R_ARM_CALL 00000000 fftw_mpi_conf_standard │ │ │ │ │ -000030ec 00000103 R_ARM_REL32 00000000 .bss │ │ │ │ │ -00003180 0000741c R_ARM_CALL 00000000 fftw_map_r2r_kind │ │ │ │ │ -00003190 0000501c R_ARM_CALL 00000000 MPI_Comm_size │ │ │ │ │ -000031b0 0000451c R_ARM_CALL 00000000 fftw_mpi_num_blocks_total │ │ │ │ │ -000031c8 0000451c R_ARM_CALL 00000000 fftw_mpi_num_blocks_total │ │ │ │ │ -00003200 0000751c R_ARM_CALL 00000000 fftw_mpi_mkproblem_rdft_d │ │ │ │ │ -00003210 0000581c R_ARM_CALL 00000000 fftw_mkapiplan │ │ │ │ │ -0000321c 0000761c R_ARM_CALL 00000000 fftw_ifree0 │ │ │ │ │ -00003230 00004a1c R_ARM_CALL 00000000 fftw_mpi_dtensor_destroy │ │ │ │ │ -00003244 0000591c R_ARM_CALL 00000000 fftw_the_planner │ │ │ │ │ -00003278 00005a1c R_ARM_CALL 00000000 fftw_mpi_conf_standard │ │ │ │ │ -00003288 00000103 R_ARM_REL32 00000000 .bss │ │ │ │ │ -000032c0 00004e1c R_ARM_CALL 00000000 fftw_malloc_plain │ │ │ │ │ -0000334c 0000731c R_ARM_CALL 00003100 fftw_mpi_plan_guru_r2r │ │ │ │ │ -00003358 0000531c R_ARM_CALL 00000000 fftw_ifree │ │ │ │ │ -0000339c 00004e1c R_ARM_CALL 00000000 fftw_malloc_plain │ │ │ │ │ -00003428 0000731c R_ARM_CALL 00003100 fftw_mpi_plan_guru_r2r │ │ │ │ │ -00003434 0000531c R_ARM_CALL 00000000 fftw_ifree │ │ │ │ │ -00003484 00004e1c R_ARM_CALL 00000000 fftw_malloc_plain │ │ │ │ │ -00003524 0000741c R_ARM_CALL 00000000 fftw_map_r2r_kind │ │ │ │ │ -00003534 0000501c R_ARM_CALL 00000000 MPI_Comm_size │ │ │ │ │ -00003550 0000451c R_ARM_CALL 00000000 fftw_mpi_num_blocks_total │ │ │ │ │ -00003568 0000451c R_ARM_CALL 00000000 fftw_mpi_num_blocks_total │ │ │ │ │ -0000359c 0000751c R_ARM_CALL 00000000 fftw_mpi_mkproblem_rdft_d │ │ │ │ │ -000035ac 0000581c R_ARM_CALL 00000000 fftw_mkapiplan │ │ │ │ │ -000035b8 0000761c R_ARM_CALL 00000000 fftw_ifree0 │ │ │ │ │ -000035c4 00004a1c R_ARM_CALL 00000000 fftw_mpi_dtensor_destroy │ │ │ │ │ -000035d0 0000531c R_ARM_CALL 00000000 fftw_ifree │ │ │ │ │ -000035e0 0000591c R_ARM_CALL 00000000 fftw_the_planner │ │ │ │ │ -00003614 00005a1c R_ARM_CALL 00000000 fftw_mpi_conf_standard │ │ │ │ │ -00003628 00000103 R_ARM_REL32 00000000 .bss │ │ │ │ │ -00003674 00004e1c R_ARM_CALL 00000000 fftw_malloc_plain │ │ │ │ │ -0000374c 0000741c R_ARM_CALL 00000000 fftw_map_r2r_kind │ │ │ │ │ -0000375c 0000501c R_ARM_CALL 00000000 MPI_Comm_size │ │ │ │ │ -00003778 0000451c R_ARM_CALL 00000000 fftw_mpi_num_blocks_total │ │ │ │ │ -00003790 0000451c R_ARM_CALL 00000000 fftw_mpi_num_blocks_total │ │ │ │ │ -000037c4 0000751c R_ARM_CALL 00000000 fftw_mpi_mkproblem_rdft_d │ │ │ │ │ -000037d4 0000581c R_ARM_CALL 00000000 fftw_mkapiplan │ │ │ │ │ -000037e0 0000761c R_ARM_CALL 00000000 fftw_ifree0 │ │ │ │ │ -000037ec 00004a1c R_ARM_CALL 00000000 fftw_mpi_dtensor_destroy │ │ │ │ │ -000037f8 0000531c R_ARM_CALL 00000000 fftw_ifree │ │ │ │ │ -00003808 0000591c R_ARM_CALL 00000000 fftw_the_planner │ │ │ │ │ -0000383c 00005a1c R_ARM_CALL 00000000 fftw_mpi_conf_standard │ │ │ │ │ -0000384c 00000103 R_ARM_REL32 00000000 .bss │ │ │ │ │ -00003884 00004e1c R_ARM_CALL 00000000 fftw_malloc_plain │ │ │ │ │ -0000391c 0000531c R_ARM_CALL 00000000 fftw_ifree │ │ │ │ │ -00003960 00004e1c R_ARM_CALL 00000000 fftw_malloc_plain │ │ │ │ │ -000039f8 0000531c R_ARM_CALL 00000000 fftw_ifree │ │ │ │ │ -00003a3c 00004e1c R_ARM_CALL 00000000 fftw_malloc_plain │ │ │ │ │ -00003ad4 0000531c R_ARM_CALL 00000000 fftw_ifree │ │ │ │ │ -00003b14 00004e1c R_ARM_CALL 00000000 fftw_malloc_plain │ │ │ │ │ -00003b74 0000531c R_ARM_CALL 00000000 fftw_ifree │ │ │ │ │ -00003ba4 00004e1c R_ARM_CALL 00000000 fftw_malloc_plain │ │ │ │ │ -00003c0c 0000531c R_ARM_CALL 00000000 fftw_ifree │ │ │ │ │ -00003c40 00004e1c R_ARM_CALL 00000000 fftw_malloc_plain │ │ │ │ │ -00003cd8 0000531c R_ARM_CALL 00000000 fftw_ifree │ │ │ │ │ -00003d18 00004e1c R_ARM_CALL 00000000 fftw_malloc_plain │ │ │ │ │ -00003d80 0000531c R_ARM_CALL 00000000 fftw_ifree │ │ │ │ │ -00003db0 00004e1c R_ARM_CALL 00000000 fftw_malloc_plain │ │ │ │ │ -00003e24 0000531c R_ARM_CALL 00000000 fftw_ifree │ │ │ │ │ -00003e34 0000841d R_ARM_JUMP24 00000000 fftw_execute_r2r │ │ │ │ │ -00003e38 0000841d R_ARM_JUMP24 00000000 fftw_execute_r2r │ │ │ │ │ -00003e3c 0000841d R_ARM_JUMP24 00000000 fftw_execute_r2r │ │ │ │ │ -00003e40 0000841d R_ARM_JUMP24 00000000 fftw_execute_r2r │ │ │ │ │ +000016d4 0000541c R_ARM_CALL 00000000 fftw_is_prime │ │ │ │ │ +00001754 00004f1c R_ARM_CALL 00000000 MPI_Comm_rank │ │ │ │ │ +00001760 0000501c R_ARM_CALL 00000000 MPI_Comm_size │ │ │ │ │ +000017a4 0000481c R_ARM_CALL 00000000 fftw_mpi_mkdtensor │ │ │ │ │ +000017d4 00004c1c R_ARM_CALL 00000000 fftw_mpi_default_block │ │ │ │ │ +000017fc 00004a1c R_ARM_CALL 00000000 fftw_mpi_dtensor_destroy │ │ │ │ │ +00001814 0000491c R_ARM_CALL 00000000 __aeabi_idiv │ │ │ │ │ +00001820 0000521c R_ARM_CALL 00000000 fftw_imax │ │ │ │ │ +0000189c 0000521c R_ARM_CALL 00000000 fftw_imax │ │ │ │ │ +000018a8 0000521c R_ARM_CALL 00000000 fftw_imax │ │ │ │ │ +000018b4 00004a1c R_ARM_CALL 00000000 fftw_mpi_dtensor_destroy │ │ │ │ │ +0000190c 0000551c R_ARM_CALL 00000000 fftw_mpi_choose_radix │ │ │ │ │ +00001928 0000491c R_ARM_CALL 00000000 __aeabi_idiv │ │ │ │ │ +00001970 0000511c R_ARM_CALL 00000000 fftw_mpi_is_block1d │ │ │ │ │ +000019e4 0000561c R_ARM_CALL 00000000 fftw_assertion_failed │ │ │ │ │ +000019f8 0000511c R_ARM_CALL 00000000 fftw_mpi_is_block1d │ │ │ │ │ +00001a34 00004d1c R_ARM_CALL 00000000 fftw_mpi_num_blocks │ │ │ │ │ +00001a98 00004c1c R_ARM_CALL 00000000 fftw_mpi_default_block │ │ │ │ │ +00001aa8 0000471c R_ARM_CALL 00000000 fftw_mpi_block │ │ │ │ │ +00001ab8 0000491c R_ARM_CALL 00000000 __aeabi_idiv │ │ │ │ │ +00001ac4 0000521c R_ARM_CALL 00000000 fftw_imax │ │ │ │ │ +00001b10 00004c1c R_ARM_CALL 00000000 fftw_mpi_default_block │ │ │ │ │ +00001b20 0000471c R_ARM_CALL 00000000 fftw_mpi_block │ │ │ │ │ +00001b30 0000491c R_ARM_CALL 00000000 __aeabi_idiv │ │ │ │ │ +00001b3c 0000521c R_ARM_CALL 00000000 fftw_imax │ │ │ │ │ +00001b58 0000521c R_ARM_CALL 00000000 fftw_imax │ │ │ │ │ +00001b6c 0000521c R_ARM_CALL 00000000 fftw_imax │ │ │ │ │ +00001b8c 00004d1c R_ARM_CALL 00000000 fftw_mpi_num_blocks │ │ │ │ │ +00001bc0 00004c1c R_ARM_CALL 00000000 fftw_mpi_default_block │ │ │ │ │ +00001c18 0000521c R_ARM_CALL 00000000 fftw_imax │ │ │ │ │ +00001c64 00001703 R_ARM_REL32 00000000 .LC0 │ │ │ │ │ +00001c68 00001803 R_ARM_REL32 00000008 .LC1 │ │ │ │ │ +00001ca4 00004e1c R_ARM_CALL 00000000 fftw_malloc_plain │ │ │ │ │ +00001ce0 00004e1c R_ARM_CALL 00000000 fftw_malloc_plain │ │ │ │ │ +00001d88 0000531c R_ARM_CALL 00000000 fftw_ifree │ │ │ │ │ +00001d90 0000531c R_ARM_CALL 00000000 fftw_ifree │ │ │ │ │ +00001db4 00004e1c R_ARM_CALL 00000000 fftw_malloc_plain │ │ │ │ │ +00001ee8 0000501c R_ARM_CALL 00000000 MPI_Comm_size │ │ │ │ │ +00001f18 0000451c R_ARM_CALL 00000000 fftw_mpi_num_blocks_total │ │ │ │ │ +00001f30 0000451c R_ARM_CALL 00000000 fftw_mpi_num_blocks_total │ │ │ │ │ +00001f78 0000571c R_ARM_CALL 00000000 fftw_mpi_mkproblem_rdft2_d │ │ │ │ │ +00001f88 0000581c R_ARM_CALL 00000000 fftw_mkapiplan │ │ │ │ │ +00001f94 00004a1c R_ARM_CALL 00000000 fftw_mpi_dtensor_destroy │ │ │ │ │ +00001fb4 0000591c R_ARM_CALL 00000000 fftw_the_planner │ │ │ │ │ +00001fe8 00005a1c R_ARM_CALL 00000000 fftw_mpi_conf_standard │ │ │ │ │ +00002010 00000103 R_ARM_REL32 00000000 .bss │ │ │ │ │ +000020ac 0000501c R_ARM_CALL 00000000 MPI_Comm_size │ │ │ │ │ +000020dc 0000451c R_ARM_CALL 00000000 fftw_mpi_num_blocks_total │ │ │ │ │ +000020f4 0000451c R_ARM_CALL 00000000 fftw_mpi_num_blocks_total │ │ │ │ │ +0000213c 0000571c R_ARM_CALL 00000000 fftw_mpi_mkproblem_rdft2_d │ │ │ │ │ +0000214c 0000581c R_ARM_CALL 00000000 fftw_mkapiplan │ │ │ │ │ +00002154 0000591c R_ARM_CALL 00000000 fftw_the_planner │ │ │ │ │ +00002188 00005a1c R_ARM_CALL 00000000 fftw_mpi_conf_standard │ │ │ │ │ +0000219c 00004a1c R_ARM_CALL 00000000 fftw_mpi_dtensor_destroy │ │ │ │ │ +000021d4 00000103 R_ARM_REL32 00000000 .bss │ │ │ │ │ +00002274 0000501c R_ARM_CALL 00000000 MPI_Comm_size │ │ │ │ │ +000022b8 0000451c R_ARM_CALL 00000000 fftw_mpi_num_blocks_total │ │ │ │ │ +000022d0 0000451c R_ARM_CALL 00000000 fftw_mpi_num_blocks_total │ │ │ │ │ +0000231c 0000571c R_ARM_CALL 00000000 fftw_mpi_mkproblem_rdft2_d │ │ │ │ │ +0000232c 0000581c R_ARM_CALL 00000000 fftw_mkapiplan │ │ │ │ │ +00002338 00004a1c R_ARM_CALL 00000000 fftw_mpi_dtensor_destroy │ │ │ │ │ +00002358 0000591c R_ARM_CALL 00000000 fftw_the_planner │ │ │ │ │ +0000238c 00005a1c R_ARM_CALL 00000000 fftw_mpi_conf_standard │ │ │ │ │ +000023b8 00000103 R_ARM_REL32 00000000 .bss │ │ │ │ │ +000023f4 0000591c R_ARM_CALL 00000000 fftw_the_planner │ │ │ │ │ +00002428 00005a1c R_ARM_CALL 00000000 fftw_mpi_conf_standard │ │ │ │ │ +00002440 00000103 R_ARM_REL32 00000000 .bss │ │ │ │ │ +0000245c 00005d1c R_ARM_CALL 00000000 fftw_cleanup │ │ │ │ │ +0000247c 00000103 R_ARM_REL32 00000000 .bss │ │ │ │ │ +000028c0 0000501c R_ARM_CALL 00000000 MPI_Comm_size │ │ │ │ │ +000028dc 00004d1c R_ARM_CALL 00000000 fftw_mpi_num_blocks │ │ │ │ │ +000028f4 00004d1c R_ARM_CALL 00000000 fftw_mpi_num_blocks │ │ │ │ │ +00002934 00006a1c R_ARM_CALL 00000000 fftw_mpi_mkproblem_transpose │ │ │ │ │ +00002944 0000581c R_ARM_CALL 00000000 fftw_mkapiplan │ │ │ │ │ +00002968 0000591c R_ARM_CALL 00000000 fftw_the_planner │ │ │ │ │ +0000299c 00005a1c R_ARM_CALL 00000000 fftw_mpi_conf_standard │ │ │ │ │ +000029b4 00004c1c R_ARM_CALL 00000000 fftw_mpi_default_block │ │ │ │ │ +000029c8 00004c1c R_ARM_CALL 00000000 fftw_mpi_default_block │ │ │ │ │ +000029dc 00000103 R_ARM_REL32 00000000 .bss │ │ │ │ │ +00002a3c 0000501c R_ARM_CALL 00000000 MPI_Comm_size │ │ │ │ │ +00002a48 00004c1c R_ARM_CALL 00000000 fftw_mpi_default_block │ │ │ │ │ +00002a58 00004c1c R_ARM_CALL 00000000 fftw_mpi_default_block │ │ │ │ │ +00002a68 00004d1c R_ARM_CALL 00000000 fftw_mpi_num_blocks │ │ │ │ │ +00002a80 00004d1c R_ARM_CALL 00000000 fftw_mpi_num_blocks │ │ │ │ │ +00002ab8 00006a1c R_ARM_CALL 00000000 fftw_mpi_mkproblem_transpose │ │ │ │ │ +00002ac8 0000581c R_ARM_CALL 00000000 fftw_mkapiplan │ │ │ │ │ +00002aec 0000591c R_ARM_CALL 00000000 fftw_the_planner │ │ │ │ │ +00002b20 00005a1c R_ARM_CALL 00000000 fftw_mpi_conf_standard │ │ │ │ │ +00002b30 00000103 R_ARM_REL32 00000000 .bss │ │ │ │ │ +00002bd0 0000501c R_ARM_CALL 00000000 MPI_Comm_size │ │ │ │ │ +00002bf0 0000451c R_ARM_CALL 00000000 fftw_mpi_num_blocks_total │ │ │ │ │ +00002c08 0000451c R_ARM_CALL 00000000 fftw_mpi_num_blocks_total │ │ │ │ │ +00002c44 00006d1c R_ARM_CALL 00000000 fftw_mpi_mkproblem_dft_d │ │ │ │ │ +00002c50 0000581c R_ARM_CALL 00000000 fftw_mkapiplan │ │ │ │ │ +00002c5c 00004a1c R_ARM_CALL 00000000 fftw_mpi_dtensor_destroy │ │ │ │ │ +00002c7c 0000591c R_ARM_CALL 00000000 fftw_the_planner │ │ │ │ │ +00002cb0 00005a1c R_ARM_CALL 00000000 fftw_mpi_conf_standard │ │ │ │ │ +00002cc0 00000103 R_ARM_REL32 00000000 .bss │ │ │ │ │ +00002d04 00004e1c R_ARM_CALL 00000000 fftw_malloc_plain │ │ │ │ │ +00002d8c 00006c1c R_ARM_CALL 00002b44 fftw_mpi_plan_guru_dft │ │ │ │ │ +00002d98 0000531c R_ARM_CALL 00000000 fftw_ifree │ │ │ │ │ +00002dfc 00004e1c R_ARM_CALL 00000000 fftw_malloc_plain │ │ │ │ │ +00002e84 00006c1c R_ARM_CALL 00002b44 fftw_mpi_plan_guru_dft │ │ │ │ │ +00002e90 0000531c R_ARM_CALL 00000000 fftw_ifree │ │ │ │ │ +00002ef0 00004e1c R_ARM_CALL 00000000 fftw_malloc_plain │ │ │ │ │ +00002f28 0000501c R_ARM_CALL 00000000 MPI_Comm_size │ │ │ │ │ +00002f40 0000451c R_ARM_CALL 00000000 fftw_mpi_num_blocks_total │ │ │ │ │ +00002f58 0000451c R_ARM_CALL 00000000 fftw_mpi_num_blocks_total │ │ │ │ │ +00002f90 00006d1c R_ARM_CALL 00000000 fftw_mpi_mkproblem_dft_d │ │ │ │ │ +00002f9c 0000581c R_ARM_CALL 00000000 fftw_mkapiplan │ │ │ │ │ +00002fac 00004a1c R_ARM_CALL 00000000 fftw_mpi_dtensor_destroy │ │ │ │ │ +00002fb8 0000531c R_ARM_CALL 00000000 fftw_ifree │ │ │ │ │ +00002fd8 0000591c R_ARM_CALL 00000000 fftw_the_planner │ │ │ │ │ +0000300c 00005a1c R_ARM_CALL 00000000 fftw_mpi_conf_standard │ │ │ │ │ +00003040 00000103 R_ARM_REL32 00000000 .bss │ │ │ │ │ +00003080 00004e1c R_ARM_CALL 00000000 fftw_malloc_plain │ │ │ │ │ +00003120 0000501c R_ARM_CALL 00000000 MPI_Comm_size │ │ │ │ │ +0000313c 0000451c R_ARM_CALL 00000000 fftw_mpi_num_blocks_total │ │ │ │ │ +00003154 0000451c R_ARM_CALL 00000000 fftw_mpi_num_blocks_total │ │ │ │ │ +0000318c 00006d1c R_ARM_CALL 00000000 fftw_mpi_mkproblem_dft_d │ │ │ │ │ +0000319c 0000581c R_ARM_CALL 00000000 fftw_mkapiplan │ │ │ │ │ +000031ac 00004a1c R_ARM_CALL 00000000 fftw_mpi_dtensor_destroy │ │ │ │ │ +000031b8 0000531c R_ARM_CALL 00000000 fftw_ifree │ │ │ │ │ +000031d8 0000591c R_ARM_CALL 00000000 fftw_the_planner │ │ │ │ │ +0000320c 00005a1c R_ARM_CALL 00000000 fftw_mpi_conf_standard │ │ │ │ │ +00003220 00000103 R_ARM_REL32 00000000 .bss │ │ │ │ │ +00003260 00004e1c R_ARM_CALL 00000000 fftw_malloc_plain │ │ │ │ │ +00003338 0000501c R_ARM_CALL 00000000 MPI_Comm_size │ │ │ │ │ +00003354 0000451c R_ARM_CALL 00000000 fftw_mpi_num_blocks_total │ │ │ │ │ +0000336c 0000451c R_ARM_CALL 00000000 fftw_mpi_num_blocks_total │ │ │ │ │ +000033a4 00006d1c R_ARM_CALL 00000000 fftw_mpi_mkproblem_dft_d │ │ │ │ │ +000033b4 0000581c R_ARM_CALL 00000000 fftw_mkapiplan │ │ │ │ │ +000033c4 00004a1c R_ARM_CALL 00000000 fftw_mpi_dtensor_destroy │ │ │ │ │ +000033d0 0000531c R_ARM_CALL 00000000 fftw_ifree │ │ │ │ │ +000033f0 0000591c R_ARM_CALL 00000000 fftw_the_planner │ │ │ │ │ +00003424 00005a1c R_ARM_CALL 00000000 fftw_mpi_conf_standard │ │ │ │ │ +00003434 00000103 R_ARM_REL32 00000000 .bss │ │ │ │ │ +000034d4 0000741c R_ARM_CALL 00000000 fftw_map_r2r_kind │ │ │ │ │ +000034e4 0000501c R_ARM_CALL 00000000 MPI_Comm_size │ │ │ │ │ +00003504 0000451c R_ARM_CALL 00000000 fftw_mpi_num_blocks_total │ │ │ │ │ +0000351c 0000451c R_ARM_CALL 00000000 fftw_mpi_num_blocks_total │ │ │ │ │ +00003554 0000751c R_ARM_CALL 00000000 fftw_mpi_mkproblem_rdft_d │ │ │ │ │ +00003564 0000581c R_ARM_CALL 00000000 fftw_mkapiplan │ │ │ │ │ +00003570 0000761c R_ARM_CALL 00000000 fftw_ifree0 │ │ │ │ │ +0000357c 00004a1c R_ARM_CALL 00000000 fftw_mpi_dtensor_destroy │ │ │ │ │ +000035a0 0000591c R_ARM_CALL 00000000 fftw_the_planner │ │ │ │ │ +000035d4 00005a1c R_ARM_CALL 00000000 fftw_mpi_conf_standard │ │ │ │ │ +000035e4 00000103 R_ARM_REL32 00000000 .bss │ │ │ │ │ +00003628 00004e1c R_ARM_CALL 00000000 fftw_malloc_plain │ │ │ │ │ +000036b0 0000731c R_ARM_CALL 00003448 fftw_mpi_plan_guru_r2r │ │ │ │ │ +000036bc 0000531c R_ARM_CALL 00000000 fftw_ifree │ │ │ │ │ +00003720 00004e1c R_ARM_CALL 00000000 fftw_malloc_plain │ │ │ │ │ +000037a8 0000731c R_ARM_CALL 00003448 fftw_mpi_plan_guru_r2r │ │ │ │ │ +000037b4 0000531c R_ARM_CALL 00000000 fftw_ifree │ │ │ │ │ +00003824 00004e1c R_ARM_CALL 00000000 fftw_malloc_plain │ │ │ │ │ +000038c4 0000741c R_ARM_CALL 00000000 fftw_map_r2r_kind │ │ │ │ │ +000038d4 0000501c R_ARM_CALL 00000000 MPI_Comm_size │ │ │ │ │ +000038f0 0000451c R_ARM_CALL 00000000 fftw_mpi_num_blocks_total │ │ │ │ │ +00003908 0000451c R_ARM_CALL 00000000 fftw_mpi_num_blocks_total │ │ │ │ │ +0000393c 0000751c R_ARM_CALL 00000000 fftw_mpi_mkproblem_rdft_d │ │ │ │ │ +0000394c 0000581c R_ARM_CALL 00000000 fftw_mkapiplan │ │ │ │ │ +00003958 0000761c R_ARM_CALL 00000000 fftw_ifree0 │ │ │ │ │ +00003964 00004a1c R_ARM_CALL 00000000 fftw_mpi_dtensor_destroy │ │ │ │ │ +00003970 0000531c R_ARM_CALL 00000000 fftw_ifree │ │ │ │ │ +00003990 0000591c R_ARM_CALL 00000000 fftw_the_planner │ │ │ │ │ +000039c4 00005a1c R_ARM_CALL 00000000 fftw_mpi_conf_standard │ │ │ │ │ +000039d8 00000103 R_ARM_REL32 00000000 .bss │ │ │ │ │ +00003a30 00004e1c R_ARM_CALL 00000000 fftw_malloc_plain │ │ │ │ │ +00003b08 0000741c R_ARM_CALL 00000000 fftw_map_r2r_kind │ │ │ │ │ +00003b18 0000501c R_ARM_CALL 00000000 MPI_Comm_size │ │ │ │ │ +00003b34 0000451c R_ARM_CALL 00000000 fftw_mpi_num_blocks_total │ │ │ │ │ +00003b4c 0000451c R_ARM_CALL 00000000 fftw_mpi_num_blocks_total │ │ │ │ │ +00003b80 0000751c R_ARM_CALL 00000000 fftw_mpi_mkproblem_rdft_d │ │ │ │ │ +00003b90 0000581c R_ARM_CALL 00000000 fftw_mkapiplan │ │ │ │ │ +00003b9c 0000761c R_ARM_CALL 00000000 fftw_ifree0 │ │ │ │ │ +00003ba8 00004a1c R_ARM_CALL 00000000 fftw_mpi_dtensor_destroy │ │ │ │ │ +00003bb4 0000531c R_ARM_CALL 00000000 fftw_ifree │ │ │ │ │ +00003bd4 0000591c R_ARM_CALL 00000000 fftw_the_planner │ │ │ │ │ +00003c08 00005a1c R_ARM_CALL 00000000 fftw_mpi_conf_standard │ │ │ │ │ +00003c18 00000103 R_ARM_REL32 00000000 .bss │ │ │ │ │ +00003c5c 00004e1c R_ARM_CALL 00000000 fftw_malloc_plain │ │ │ │ │ +00003cf0 0000531c R_ARM_CALL 00000000 fftw_ifree │ │ │ │ │ +00003d50 00004e1c R_ARM_CALL 00000000 fftw_malloc_plain │ │ │ │ │ +00003de4 0000531c R_ARM_CALL 00000000 fftw_ifree │ │ │ │ │ +00003e48 00004e1c R_ARM_CALL 00000000 fftw_malloc_plain │ │ │ │ │ +00003edc 0000531c R_ARM_CALL 00000000 fftw_ifree │ │ │ │ │ +00003f3c 00004e1c R_ARM_CALL 00000000 fftw_malloc_plain │ │ │ │ │ +00003f9c 0000531c R_ARM_CALL 00000000 fftw_ifree │ │ │ │ │ +00003fe8 00004e1c R_ARM_CALL 00000000 fftw_malloc_plain │ │ │ │ │ +00004050 0000531c R_ARM_CALL 00000000 fftw_ifree │ │ │ │ │ +000040a4 00004e1c R_ARM_CALL 00000000 fftw_malloc_plain │ │ │ │ │ +00004138 0000531c R_ARM_CALL 00000000 fftw_ifree │ │ │ │ │ +00004198 00004e1c R_ARM_CALL 00000000 fftw_malloc_plain │ │ │ │ │ +00004200 0000531c R_ARM_CALL 00000000 fftw_ifree │ │ │ │ │ +0000424c 00004e1c R_ARM_CALL 00000000 fftw_malloc_plain │ │ │ │ │ +000042c0 0000531c R_ARM_CALL 00000000 fftw_ifree │ │ │ │ │ +000042e0 0000841d R_ARM_JUMP24 00000000 fftw_execute_r2r │ │ │ │ │ +000042e4 0000841d R_ARM_JUMP24 00000000 fftw_execute_r2r │ │ │ │ │ +000042e8 0000841d R_ARM_JUMP24 00000000 fftw_execute_r2r │ │ │ │ │ +000042ec 0000841d R_ARM_JUMP24 00000000 fftw_execute_r2r │ │ │ │ ├── objdump --line-numbers --disassemble --demangle --reloc --no-show-raw-insn --section=.text {} │ │ │ │ │ @@ -2,376 +2,399 @@ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ Disassembly of section .text: │ │ │ │ │ │ │ │ │ │ 00000000 : │ │ │ │ │ bogosity_hook(): │ │ │ │ │ ldr r3, [r1] │ │ │ │ │ - ldr r2, [pc, #104] @ 74 │ │ │ │ │ + str r4, [sp, #-8]! │ │ │ │ │ + mov r4, r0 │ │ │ │ │ + ldr r2, [pc, #108] @ 80 │ │ │ │ │ + str lr, [sp, #4] │ │ │ │ │ ldr r3, [r3] │ │ │ │ │ add r2, pc, r2 │ │ │ │ │ sub r3, r3, #4 │ │ │ │ │ - push {r4, lr} │ │ │ │ │ - mov r4, r0 │ │ │ │ │ cmp r3, #3 │ │ │ │ │ - bhi 54 │ │ │ │ │ + bhi 58 │ │ │ │ │ ldrb r3, [r2, r3] │ │ │ │ │ add pc, pc, r3, lsl #2 │ │ │ │ │ nop @ (mov r0, r0) │ │ │ │ │ ldr r1, [r1, #28] │ │ │ │ │ cmp r1, #67108864 @ 0x4000000 │ │ │ │ │ - beq 54 │ │ │ │ │ + beq 58 │ │ │ │ │ sub r0, r4, #2 │ │ │ │ │ clz r0, r0 │ │ │ │ │ lsr r0, r0, #5 │ │ │ │ │ bl 0 │ │ │ │ │ R_ARM_CALL fftw_mpi_any_true │ │ │ │ │ cmp r0, #0 │ │ │ │ │ - bne 6c │ │ │ │ │ + bne 78 │ │ │ │ │ mov r0, r4 │ │ │ │ │ - pop {r4, pc} │ │ │ │ │ + ldr r4, [sp] │ │ │ │ │ + add sp, sp, #4 │ │ │ │ │ + pop {pc} @ (ldr pc, [sp], #4) │ │ │ │ │ ldr r1, [r1, #24] │ │ │ │ │ - b 34 │ │ │ │ │ + b 38 │ │ │ │ │ ldr r1, [r1, #36] @ 0x24 │ │ │ │ │ - b 34 │ │ │ │ │ + b 38 │ │ │ │ │ mov r0, #2 │ │ │ │ │ - pop {r4, pc} │ │ │ │ │ + b 5c │ │ │ │ │ .word 0x00000060 │ │ │ │ │ R_ARM_REL32 .rodata │ │ │ │ │ │ │ │ │ │ -00000078 : │ │ │ │ │ +00000084 : │ │ │ │ │ nowisdom_hook(): │ │ │ │ │ ldr r3, [r0] │ │ │ │ │ - ldr r2, [pc, #84] @ d8 │ │ │ │ │ + ldr r2, [pc, #72] @ d8 │ │ │ │ │ ldr r3, [r3] │ │ │ │ │ add r2, pc, r2 │ │ │ │ │ sub r3, r3, #4 │ │ │ │ │ cmp r3, #3 │ │ │ │ │ - bhi d4 │ │ │ │ │ + bhi cc │ │ │ │ │ ldrb r3, [r2, r3] │ │ │ │ │ add pc, pc, r3, lsl #2 │ │ │ │ │ nop @ (mov r0, r0) │ │ │ │ │ ldr r1, [r0, #28] │ │ │ │ │ cmp r1, #67108864 @ 0x4000000 │ │ │ │ │ - bxeq lr │ │ │ │ │ + beq cc │ │ │ │ │ mov r0, #1 │ │ │ │ │ b 0 │ │ │ │ │ R_ARM_JUMP24 fftw_mpi_any_true │ │ │ │ │ ldr r1, [r0, #24] │ │ │ │ │ cmp r1, #67108864 @ 0x4000000 │ │ │ │ │ - bne ac │ │ │ │ │ + bne b8 │ │ │ │ │ bx lr │ │ │ │ │ ldr r1, [r0, #36] @ 0x24 │ │ │ │ │ - cmp r1, #67108864 @ 0x4000000 │ │ │ │ │ - bne ac │ │ │ │ │ - bx lr │ │ │ │ │ - bx lr │ │ │ │ │ - .word 0x00000050 │ │ │ │ │ + b b0 │ │ │ │ │ + .word 0x00000044 │ │ │ │ │ R_ARM_REL32 .rodata │ │ │ │ │ │ │ │ │ │ 000000dc : │ │ │ │ │ wisdom_ok_hook(): │ │ │ │ │ - push {r4, r5, r6, r7, r8, r9, sl, lr} │ │ │ │ │ + strd r4, [sp, #-32]! @ 0xffffffe0 │ │ │ │ │ + strd r6, [sp, #8] │ │ │ │ │ + strd r8, [sp, #16] │ │ │ │ │ + str sl, [sp, #24] │ │ │ │ │ + str lr, [sp, #28] │ │ │ │ │ sub sp, sp, #48 @ 0x30 │ │ │ │ │ add r3, sp, #8 │ │ │ │ │ stm r3, {r1, r2} │ │ │ │ │ ldr r3, [r0] │ │ │ │ │ - ldr r2, [pc, #300] @ 224 │ │ │ │ │ + ldr r2, [pc, #320] @ 248 │ │ │ │ │ ldr r3, [r3] │ │ │ │ │ add r2, pc, r2 │ │ │ │ │ sub r3, r3, #4 │ │ │ │ │ cmp r3, #3 │ │ │ │ │ - bhi 1dc │ │ │ │ │ + bhi 200 │ │ │ │ │ ldrb r3, [r2, r3] │ │ │ │ │ add pc, pc, r3, lsl #2 │ │ │ │ │ nop @ (mov r0, r0) │ │ │ │ │ ldr r5, [r0, #28] │ │ │ │ │ cmp r5, #67108864 @ 0x4000000 │ │ │ │ │ - beq 1dc │ │ │ │ │ + beq 200 │ │ │ │ │ ldrb r3, [sp, #10] │ │ │ │ │ - ldr r2, [pc, #252] @ 228 │ │ │ │ │ - lsr r3, r3, #4 │ │ │ │ │ + mov r1, r5 │ │ │ │ │ + mov r0, #0 │ │ │ │ │ ldr r7, [sp, #8] │ │ │ │ │ ldr r9, [sp, #12] │ │ │ │ │ + lsr r3, r3, #4 │ │ │ │ │ + ldr r2, [pc, #252] @ 24c │ │ │ │ │ and r4, r3, #7 │ │ │ │ │ ldrh r3, [sp, #14] │ │ │ │ │ - mov r1, r5 │ │ │ │ │ - mov r0, #0 │ │ │ │ │ ldrh r8, [sp, #10] │ │ │ │ │ and r7, r7, r2 │ │ │ │ │ and r9, r9, r2 │ │ │ │ │ lsr sl, r3, #4 │ │ │ │ │ bl 0 │ │ │ │ │ R_ARM_CALL fftw_mpi_any_true │ │ │ │ │ - lsr r8, r8, #7 │ │ │ │ │ subs r6, r0, #0 │ │ │ │ │ + lsr r8, r8, #7 │ │ │ │ │ movne r0, #0 │ │ │ │ │ - bne 1c8 │ │ │ │ │ + bne 1d8 │ │ │ │ │ mov r3, r6 │ │ │ │ │ - ldr r2, [pc, #184] @ 22c │ │ │ │ │ + ldr r2, [pc, #204] @ 250 │ │ │ │ │ mov r1, #5 │ │ │ │ │ add r0, sp, #24 │ │ │ │ │ str r5, [sp] │ │ │ │ │ str r7, [sp, #24] │ │ │ │ │ str r4, [sp, #28] │ │ │ │ │ strd r8, [sp, #32] │ │ │ │ │ str sl, [sp, #40] @ 0x28 │ │ │ │ │ bl 0 │ │ │ │ │ R_ARM_CALL MPI_Bcast │ │ │ │ │ ldr r3, [sp, #24] │ │ │ │ │ cmp r7, r3 │ │ │ │ │ - beq 1f0 │ │ │ │ │ - ldr r3, [pc, #140] @ 230 │ │ │ │ │ - str r3, [sp] │ │ │ │ │ - add r3, r3, #-201326592 @ 0xf4000000 │ │ │ │ │ - add r3, r3, #1024 @ 0x400 │ │ │ │ │ + beq 210 │ │ │ │ │ + ldr r3, [pc, #160] @ 254 │ │ │ │ │ mov r2, #1 │ │ │ │ │ add r1, sp, #20 │ │ │ │ │ add r0, sp, #16 │ │ │ │ │ + str r3, [sp] │ │ │ │ │ + add r3, r3, #-201326592 @ 0xf4000000 │ │ │ │ │ + add r3, r3, #1024 @ 0x400 │ │ │ │ │ str r5, [sp, #4] │ │ │ │ │ str r6, [sp, #16] │ │ │ │ │ bl 0 │ │ │ │ │ R_ARM_CALL MPI_Allreduce │ │ │ │ │ ldr r0, [sp, #20] │ │ │ │ │ add sp, sp, #48 @ 0x30 │ │ │ │ │ - pop {r4, r5, r6, r7, r8, r9, sl, pc} │ │ │ │ │ + ldrd r4, [sp] │ │ │ │ │ + ldrd r6, [sp, #8] │ │ │ │ │ + ldrd r8, [sp, #16] │ │ │ │ │ + ldr sl, [sp, #24] │ │ │ │ │ + add sp, sp, #28 │ │ │ │ │ + pop {pc} @ (ldr pc, [sp], #4) │ │ │ │ │ ldr r5, [r0, #24] │ │ │ │ │ cmp r5, #67108864 @ 0x4000000 │ │ │ │ │ - bne 120 │ │ │ │ │ + bne 130 │ │ │ │ │ mov r0, #1 │ │ │ │ │ - add sp, sp, #48 @ 0x30 │ │ │ │ │ - pop {r4, r5, r6, r7, r8, r9, sl, pc} │ │ │ │ │ + b 1d8 │ │ │ │ │ ldr r5, [r0, #36] @ 0x24 │ │ │ │ │ - b 118 │ │ │ │ │ + b 128 │ │ │ │ │ ldr r3, [sp, #28] │ │ │ │ │ cmp r4, r3 │ │ │ │ │ - bne 19c │ │ │ │ │ + bne 1ac │ │ │ │ │ ldr r3, [sp, #32] │ │ │ │ │ cmp r8, r3 │ │ │ │ │ - bne 19c │ │ │ │ │ + bne 1ac │ │ │ │ │ ldr r3, [sp, #36] @ 0x24 │ │ │ │ │ cmp r9, r3 │ │ │ │ │ - ldreq r0, [sp, #40] @ 0x28 │ │ │ │ │ - subeq r6, r0, sl │ │ │ │ │ - clzeq r6, r6 │ │ │ │ │ - lsreq r6, r6, #5 │ │ │ │ │ - b 19c │ │ │ │ │ - .word 0x0000012c │ │ │ │ │ + bne 1ac │ │ │ │ │ + ldr r0, [sp, #40] @ 0x28 │ │ │ │ │ + sub r6, r0, sl │ │ │ │ │ + clz r6, r6 │ │ │ │ │ + lsr r6, r6, #5 │ │ │ │ │ + b 1ac │ │ │ │ │ + .word 0x00000140 │ │ │ │ │ R_ARM_REL32 .rodata │ │ │ │ │ .word 0x000fffff │ │ │ │ │ .word 0x4c000406 │ │ │ │ │ .word 0x58000005 │ │ │ │ │ │ │ │ │ │ -00000234 : │ │ │ │ │ +00000258 : │ │ │ │ │ cost_hook(): │ │ │ │ │ push {lr} @ (str lr, [sp, #-4]!) │ │ │ │ │ sub sp, sp, #28 │ │ │ │ │ strd r2, [sp, #8] │ │ │ │ │ ldr r3, [r0] │ │ │ │ │ - ldr r2, [pc, #124] @ 2c8 │ │ │ │ │ + ldr r2, [pc, #124] @ 2ec │ │ │ │ │ ldr r3, [r3] │ │ │ │ │ add r2, pc, r2 │ │ │ │ │ sub r3, r3, #4 │ │ │ │ │ cmp r3, #3 │ │ │ │ │ - bhi 2b4 │ │ │ │ │ + bhi 2d8 │ │ │ │ │ ldrb r3, [r2, r3] │ │ │ │ │ add pc, pc, r3, lsl #2 │ │ │ │ │ nop @ (mov r0, r0) │ │ │ │ │ ldr r3, [r0, #28] │ │ │ │ │ cmp r3, #67108864 @ 0x4000000 │ │ │ │ │ - beq 2b4 │ │ │ │ │ + beq 2d8 │ │ │ │ │ ldr r2, [sp, #32] │ │ │ │ │ add r1, sp, #16 │ │ │ │ │ + add r0, sp, #8 │ │ │ │ │ cmp r2, #0 │ │ │ │ │ movne r2, #1476395009 @ 0x58000001 │ │ │ │ │ moveq r2, #1476395011 @ 0x58000003 │ │ │ │ │ stm sp, {r2, r3} │ │ │ │ │ - add r0, sp, #8 │ │ │ │ │ - ldr r3, [pc, #52] @ 2cc │ │ │ │ │ mov r2, #1 │ │ │ │ │ + ldr r3, [pc, #48] @ 2f0 │ │ │ │ │ bl 0 │ │ │ │ │ R_ARM_CALL MPI_Allreduce │ │ │ │ │ ldrd r0, [sp, #16] │ │ │ │ │ add sp, sp, #28 │ │ │ │ │ pop {pc} @ (ldr pc, [sp], #4) │ │ │ │ │ ldr r3, [r0, #24] │ │ │ │ │ cmp r3, #67108864 @ 0x4000000 │ │ │ │ │ - bne 274 │ │ │ │ │ + bne 298 │ │ │ │ │ ldrd r0, [sp, #8] │ │ │ │ │ add sp, sp, #28 │ │ │ │ │ pop {pc} @ (ldr pc, [sp], #4) │ │ │ │ │ ldr r3, [r0, #36] @ 0x24 │ │ │ │ │ - b 26c │ │ │ │ │ + b 290 │ │ │ │ │ .word 0x00000080 │ │ │ │ │ R_ARM_REL32 .rodata │ │ │ │ │ .word 0x4c00080b │ │ │ │ │ │ │ │ │ │ -000002d0 : │ │ │ │ │ +000002f4 : │ │ │ │ │ local_size(): │ │ │ │ │ - push {r4, r5, r6, r7, r8, r9, sl, lr} │ │ │ │ │ + strd r4, [sp, #-32]! @ 0xffffffe0 │ │ │ │ │ + mov r4, r3 │ │ │ │ │ + strd r6, [sp, #8] │ │ │ │ │ mov r6, r1 │ │ │ │ │ - mov r8, r0 │ │ │ │ │ + mov r7, r0 │ │ │ │ │ mov r1, r2 │ │ │ │ │ mov r0, r6 │ │ │ │ │ ldr r5, [sp, #32] │ │ │ │ │ - mov r7, r2 │ │ │ │ │ - mov r4, r3 │ │ │ │ │ + strd r8, [sp, #16] │ │ │ │ │ + mov r8, r2 │ │ │ │ │ + str sl, [sp, #24] │ │ │ │ │ + str lr, [sp, #28] │ │ │ │ │ bl 0 │ │ │ │ │ R_ARM_CALL fftw_mpi_num_blocks_total │ │ │ │ │ - cmp r0, r8 │ │ │ │ │ - bgt 334 │ │ │ │ │ + cmp r0, r7 │ │ │ │ │ + bgt 37c │ │ │ │ │ ldr r3, [r6] │ │ │ │ │ cmp r3, #0 │ │ │ │ │ - pople {r4, r5, r6, r7, r8, r9, sl, pc} │ │ │ │ │ + ble 364 │ │ │ │ │ mov r2, #0 │ │ │ │ │ sub lr, r5, #4 │ │ │ │ │ sub r3, r4, #4 │ │ │ │ │ mov ip, r2 │ │ │ │ │ str ip, [lr, #4]! │ │ │ │ │ + add r2, r2, #1 │ │ │ │ │ str ip, [r3, #4]! │ │ │ │ │ ldr r1, [r6] │ │ │ │ │ - add r2, r2, #1 │ │ │ │ │ cmp r1, r2 │ │ │ │ │ - bgt 318 │ │ │ │ │ - pop {r4, r5, r6, r7, r8, r9, sl, pc} │ │ │ │ │ + bgt 34c │ │ │ │ │ + ldrd r4, [sp] │ │ │ │ │ + ldrd r6, [sp, #8] │ │ │ │ │ + ldrd r8, [sp, #16] │ │ │ │ │ + ldr sl, [sp, #24] │ │ │ │ │ + add sp, sp, #28 │ │ │ │ │ + pop {pc} @ (ldr pc, [sp], #4) │ │ │ │ │ mov r3, r5 │ │ │ │ │ - mov r2, r8 │ │ │ │ │ - mov r1, r7 │ │ │ │ │ + mov r2, r7 │ │ │ │ │ + mov r1, r8 │ │ │ │ │ mov r0, r6 │ │ │ │ │ bl 0 │ │ │ │ │ R_ARM_CALL fftw_mpi_block_coords │ │ │ │ │ ldr r3, [r6] │ │ │ │ │ cmp r3, #0 │ │ │ │ │ - pople {r4, r5, r6, r7, r8, r9, sl, pc} │ │ │ │ │ - lsl r9, r7, #2 │ │ │ │ │ + ble 364 │ │ │ │ │ + lsl r8, r8, #2 │ │ │ │ │ sub r5, r5, #4 │ │ │ │ │ - add r7, r6, r7, lsl #2 │ │ │ │ │ sub r4, r4, #4 │ │ │ │ │ - rsb r9, r9, #4 │ │ │ │ │ - mov r8, #0 │ │ │ │ │ + mov r9, #0 │ │ │ │ │ + add r7, r6, r8 │ │ │ │ │ + rsb r8, r8, #4 │ │ │ │ │ ldr r2, [r5, #4]! │ │ │ │ │ - ldr r1, [r7, #8] │ │ │ │ │ - ldr r0, [r7, r9] │ │ │ │ │ + add r9, r9, #1 │ │ │ │ │ + ldr r0, [r7, r8] │ │ │ │ │ + add r7, r7, #12 │ │ │ │ │ + ldr r1, [r7, #-4] │ │ │ │ │ bl 0 │ │ │ │ │ R_ARM_CALL fftw_mpi_block │ │ │ │ │ - add r8, r8, #1 │ │ │ │ │ - add r7, r7, #12 │ │ │ │ │ str r0, [r4, #4]! │ │ │ │ │ ldr r2, [r7, #-4] │ │ │ │ │ ldr r3, [r5] │ │ │ │ │ mul r3, r2, r3 │ │ │ │ │ str r3, [r5] │ │ │ │ │ ldr r3, [r6] │ │ │ │ │ - cmp r8, r3 │ │ │ │ │ - blt 36c │ │ │ │ │ - pop {r4, r5, r6, r7, r8, r9, sl, pc} │ │ │ │ │ + cmp r9, r3 │ │ │ │ │ + blt 3b4 │ │ │ │ │ + b 364 │ │ │ │ │ │ │ │ │ │ -000003a8 : │ │ │ │ │ +000003f0 : │ │ │ │ │ default_sz.constprop.0(): │ │ │ │ │ - push {r4, r5, r6, r7, r8, r9, sl, fp, lr} │ │ │ │ │ + strd r4, [sp, #-36]! @ 0xffffffdc │ │ │ │ │ mov r4, r0 │ │ │ │ │ - sub sp, sp, #12 │ │ │ │ │ mov r0, #3 │ │ │ │ │ + strd r6, [sp, #8] │ │ │ │ │ mov r6, r1 │ │ │ │ │ + strd r8, [sp, #16] │ │ │ │ │ + strd sl, [sp, #24] │ │ │ │ │ + str lr, [sp, #32] │ │ │ │ │ + sub sp, sp, #12 │ │ │ │ │ str r2, [sp, #4] │ │ │ │ │ bl 0 │ │ │ │ │ R_ARM_CALL fftw_mpi_mkdtensor │ │ │ │ │ mov r5, r0 │ │ │ │ │ mov r0, #3 │ │ │ │ │ bl 0 │ │ │ │ │ R_ARM_CALL fftw_mpi_mkdtensor │ │ │ │ │ - add r1, r4, #24 │ │ │ │ │ add r3, r0, #28 │ │ │ │ │ add r2, r0, #4 │ │ │ │ │ + add r1, r4, #24 │ │ │ │ │ + mov sl, r0 │ │ │ │ │ cmp r2, r1 │ │ │ │ │ cmpcc r4, r3 │ │ │ │ │ orr r2, r2, r4 │ │ │ │ │ movcs r3, #1 │ │ │ │ │ movcc r3, #0 │ │ │ │ │ tst r2, #7 │ │ │ │ │ movne r3, #0 │ │ │ │ │ andeq r3, r3, #1 │ │ │ │ │ cmp r3, #0 │ │ │ │ │ - mov sl, r0 │ │ │ │ │ - beq 604 │ │ │ │ │ + beq 674 │ │ │ │ │ ldrd r0, [r4] │ │ │ │ │ - ldrd r2, [r4, #16] │ │ │ │ │ ldrd r8, [r4, #8] │ │ │ │ │ + ldrd r2, [r4, #16] │ │ │ │ │ strd r0, [sl, #4] │ │ │ │ │ add r1, r4, #24 │ │ │ │ │ strd r8, [sl, #12] │ │ │ │ │ strd r2, [sl, #20] │ │ │ │ │ ldm r1, {r1, r2, r3} │ │ │ │ │ + str r1, [sl, #28] │ │ │ │ │ str r2, [sl, #32] │ │ │ │ │ ldr r2, [sp, #4] │ │ │ │ │ - str r1, [sl, #28] │ │ │ │ │ str r3, [sl, #36] @ 0x24 │ │ │ │ │ - ldr r3, [r4, #24] │ │ │ │ │ + ldr r0, [r4] │ │ │ │ │ + ldr r1, [r4, #12] │ │ │ │ │ cmp r2, #0 │ │ │ │ │ - addne r3, r3, r3, lsr #31 │ │ │ │ │ + ldr r3, [r4, #24] │ │ │ │ │ + str r0, [r5, #4] │ │ │ │ │ + str r1, [r5, #16] │ │ │ │ │ + beq 4b8 │ │ │ │ │ + add r3, r3, r3, lsr #31 │ │ │ │ │ + asr r3, r3, #1 │ │ │ │ │ + add r3, r3, #1 │ │ │ │ │ ldr r2, [r4, #4] │ │ │ │ │ - ldr r0, [r4] │ │ │ │ │ - asrne r3, r3, #1 │ │ │ │ │ - addne r3, r3, #1 │ │ │ │ │ + add r7, sl, #8 │ │ │ │ │ + add fp, r5, #8 │ │ │ │ │ + str r3, [r5, #28] │ │ │ │ │ + mov r9, #0 │ │ │ │ │ cmp r2, #0 │ │ │ │ │ moveq r2, r0 │ │ │ │ │ - ldr r1, [r4, #12] │ │ │ │ │ str r2, [r5, #8] │ │ │ │ │ ldr r2, [r4, #8] │ │ │ │ │ - str r3, [r5, #28] │ │ │ │ │ cmp r2, #0 │ │ │ │ │ moveq r2, r0 │ │ │ │ │ str r2, [r5, #12] │ │ │ │ │ ldr r2, [r4, #16] │ │ │ │ │ - add r7, sl, #8 │ │ │ │ │ cmp r2, #0 │ │ │ │ │ moveq r2, r1 │ │ │ │ │ str r2, [r5, #20] │ │ │ │ │ ldr r2, [r4, #20] │ │ │ │ │ - add fp, r5, #8 │ │ │ │ │ cmp r2, #0 │ │ │ │ │ moveq r2, r1 │ │ │ │ │ str r2, [r5, #24] │ │ │ │ │ ldr r2, [r4, #28] │ │ │ │ │ - mov r9, #0 │ │ │ │ │ cmp r2, #0 │ │ │ │ │ moveq r2, r3 │ │ │ │ │ ldr r3, [r4, #32] │ │ │ │ │ - str r0, [r5, #4] │ │ │ │ │ + str r2, [r5, #32] │ │ │ │ │ cmp r3, #0 │ │ │ │ │ ldreq r3, [r5, #28] │ │ │ │ │ - str r1, [r5, #16] │ │ │ │ │ - str r2, [r5, #32] │ │ │ │ │ str r3, [r5, #36] @ 0x24 │ │ │ │ │ mov r1, r9 │ │ │ │ │ mov r0, r5 │ │ │ │ │ bl 0 │ │ │ │ │ R_ARM_CALL fftw_mpi_num_blocks_total │ │ │ │ │ mov r1, r0 │ │ │ │ │ mov r8, r0 │ │ │ │ │ mov r0, r6 │ │ │ │ │ bl 0 <__aeabi_idiv> │ │ │ │ │ R_ARM_CALL __aeabi_idiv │ │ │ │ │ cmp r0, #1 │ │ │ │ │ - ble 514 │ │ │ │ │ + ble 570 │ │ │ │ │ ldr r2, [r7] │ │ │ │ │ cmp r2, #0 │ │ │ │ │ - beq 568 │ │ │ │ │ + beq 5d8 │ │ │ │ │ ldr r2, [r7, #12] │ │ │ │ │ cmp r2, #0 │ │ │ │ │ - beq 5a8 │ │ │ │ │ + beq 618 │ │ │ │ │ ldr r2, [r7, #24] │ │ │ │ │ cmp r2, #0 │ │ │ │ │ - beq 5e4 │ │ │ │ │ + beq 654 │ │ │ │ │ add r2, r9, #1 │ │ │ │ │ - cmp r2, #2 │ │ │ │ │ add r7, r7, #4 │ │ │ │ │ + cmp r2, #2 │ │ │ │ │ add fp, fp, #4 │ │ │ │ │ mov r9, #1 │ │ │ │ │ - bne 4cc │ │ │ │ │ + bne 528 │ │ │ │ │ ldr r3, [sp, #4] │ │ │ │ │ mov r0, sl │ │ │ │ │ cmp r3, #0 │ │ │ │ │ ldrne r3, [r4, #24] │ │ │ │ │ strne r3, [r5, #28] │ │ │ │ │ bl 0 │ │ │ │ │ R_ARM_CALL fftw_mpi_dtensor_destroy │ │ │ │ │ @@ -381,15 +404,20 @@ │ │ │ │ │ R_ARM_CALL fftw_mpi_dtensor_canonical │ │ │ │ │ mov r4, r0 │ │ │ │ │ mov r0, r5 │ │ │ │ │ bl 0 │ │ │ │ │ R_ARM_CALL fftw_mpi_dtensor_destroy │ │ │ │ │ mov r0, r4 │ │ │ │ │ add sp, sp, #12 │ │ │ │ │ - pop {r4, r5, r6, r7, r8, r9, sl, fp, pc} │ │ │ │ │ + ldrd r4, [sp] │ │ │ │ │ + ldrd r6, [sp, #8] │ │ │ │ │ + ldrd r8, [sp, #16] │ │ │ │ │ + ldrd sl, [sp, #24] │ │ │ │ │ + add sp, sp, #32 │ │ │ │ │ + pop {pc} @ (ldr pc, [sp], #4) │ │ │ │ │ mov r1, r0 │ │ │ │ │ ldr r0, [r5, #4] │ │ │ │ │ bl 0 │ │ │ │ │ R_ARM_CALL fftw_mpi_default_block │ │ │ │ │ mov r1, r0 │ │ │ │ │ str r0, [fp] │ │ │ │ │ ldr r0, [r5, #4] │ │ │ │ │ @@ -397,393 +425,411 @@ │ │ │ │ │ R_ARM_CALL fftw_mpi_num_blocks │ │ │ │ │ mul r8, r0, r8 │ │ │ │ │ mov r0, r6 │ │ │ │ │ mov r1, r8 │ │ │ │ │ bl 0 <__aeabi_idiv> │ │ │ │ │ R_ARM_CALL __aeabi_idiv │ │ │ │ │ cmp r0, #1 │ │ │ │ │ - ble 514 │ │ │ │ │ + ble 570 │ │ │ │ │ ldr r2, [r7, #12] │ │ │ │ │ cmp r2, #0 │ │ │ │ │ - bne 508 │ │ │ │ │ + bne 564 │ │ │ │ │ mov r1, r0 │ │ │ │ │ ldr r0, [r5, #16] │ │ │ │ │ bl 0 │ │ │ │ │ R_ARM_CALL fftw_mpi_default_block │ │ │ │ │ mov r1, r0 │ │ │ │ │ str r0, [fp, #12] │ │ │ │ │ ldr r0, [r5, #16] │ │ │ │ │ bl 0 │ │ │ │ │ R_ARM_CALL fftw_mpi_num_blocks │ │ │ │ │ mul r1, r0, r8 │ │ │ │ │ mov r0, r6 │ │ │ │ │ bl 0 <__aeabi_idiv> │ │ │ │ │ R_ARM_CALL __aeabi_idiv │ │ │ │ │ cmp r0, #1 │ │ │ │ │ - ble 514 │ │ │ │ │ + ble 570 │ │ │ │ │ ldr r2, [r7, #24] │ │ │ │ │ cmp r2, #0 │ │ │ │ │ - bne 514 │ │ │ │ │ + bne 570 │ │ │ │ │ mov r1, r0 │ │ │ │ │ ldr r0, [r5, #28] │ │ │ │ │ bl 0 │ │ │ │ │ R_ARM_CALL fftw_mpi_default_block │ │ │ │ │ mov r1, r0 │ │ │ │ │ str r0, [fp, #24] │ │ │ │ │ ldr r0, [r5, #28] │ │ │ │ │ bl 0 │ │ │ │ │ R_ARM_CALL fftw_mpi_num_blocks │ │ │ │ │ - b 514 │ │ │ │ │ + b 570 │ │ │ │ │ add r0, r4, #20 │ │ │ │ │ - ldm r0, {r0, r1, r2, r3} │ │ │ │ │ ldr fp, [r4] │ │ │ │ │ + ldm r0, {r0, r1, r2, r3} │ │ │ │ │ ldr r9, [r4, #4] │ │ │ │ │ ldr r8, [r4, #8] │ │ │ │ │ ldr lr, [r4, #12] │ │ │ │ │ ldr ip, [r4, #16] │ │ │ │ │ - str ip, [sl, #20] │ │ │ │ │ str fp, [sl, #4] │ │ │ │ │ str r9, [sl, #8] │ │ │ │ │ str r8, [sl, #12] │ │ │ │ │ str lr, [sl, #16] │ │ │ │ │ + str ip, [sl, #20] │ │ │ │ │ str r0, [sl, #24] │ │ │ │ │ - b 428 │ │ │ │ │ + b 480 │ │ │ │ │ │ │ │ │ │ -0000063c : │ │ │ │ │ +000006ac : │ │ │ │ │ fftw_mpi_local_size_many_transposed.part.0.constprop.0(): │ │ │ │ │ - push {r4, r5, r6, r7, r8, r9, sl, fp, lr} │ │ │ │ │ + strd r4, [sp, #-36]! @ 0xffffffdc │ │ │ │ │ + strd r6, [sp, #8] │ │ │ │ │ mov r6, r0 │ │ │ │ │ - sub sp, sp, #68 @ 0x44 │ │ │ │ │ mov r0, #36 @ 0x24 │ │ │ │ │ - mov r8, r1 │ │ │ │ │ + strd r8, [sp, #16] │ │ │ │ │ mov r7, r2 │ │ │ │ │ + mov r8, r1 │ │ │ │ │ + strd sl, [sp, #24] │ │ │ │ │ mov fp, r3 │ │ │ │ │ + str lr, [sp, #32] │ │ │ │ │ + sub sp, sp, #68 @ 0x44 │ │ │ │ │ bl 0 │ │ │ │ │ R_ARM_CALL fftw_malloc_plain │ │ │ │ │ ldr r3, [r6] │ │ │ │ │ - str r3, [r0, #8] │ │ │ │ │ - str r3, [r0, #4] │ │ │ │ │ + mov r5, r0 │ │ │ │ │ str r3, [r0] │ │ │ │ │ + str r3, [r0, #4] │ │ │ │ │ + str r3, [r0, #8] │ │ │ │ │ ldr r3, [r6, #4] │ │ │ │ │ - str r3, [r0, #20] │ │ │ │ │ - str r3, [r0, #16] │ │ │ │ │ str r3, [r0, #12] │ │ │ │ │ + str r3, [r0, #16] │ │ │ │ │ + str r3, [r0, #20] │ │ │ │ │ ldr r3, [r6, #8] │ │ │ │ │ - mov r5, r0 │ │ │ │ │ - str r3, [r0, #32] │ │ │ │ │ - str r3, [r0, #28] │ │ │ │ │ str r3, [r0, #24] │ │ │ │ │ + str r3, [r0, #28] │ │ │ │ │ + str r3, [r0, #32] │ │ │ │ │ mov r0, #48 @ 0x30 │ │ │ │ │ bl 0 │ │ │ │ │ R_ARM_CALL fftw_malloc_plain │ │ │ │ │ mov r3, #0 │ │ │ │ │ + add r1, sp, #32 │ │ │ │ │ + mov r4, r0 │ │ │ │ │ + add r9, r0, #24 │ │ │ │ │ str r3, [r5, #4] │ │ │ │ │ + add sl, r0, #36 @ 0x24 │ │ │ │ │ ldr r2, [r6, #4] │ │ │ │ │ - add r1, sp, #32 │ │ │ │ │ cmp r2, r8 │ │ │ │ │ strgt r8, [r5, #20] │ │ │ │ │ - strle r3, [r5, #8] │ │ │ │ │ - mov r4, r0 │ │ │ │ │ add r8, r0, #12 │ │ │ │ │ - add r9, r0, #24 │ │ │ │ │ - add sl, r0, #36 @ 0x24 │ │ │ │ │ mov r0, r7 │ │ │ │ │ + strle r3, [r5, #8] │ │ │ │ │ bl 0 │ │ │ │ │ R_ARM_CALL MPI_Comm_rank │ │ │ │ │ add r1, sp, #36 @ 0x24 │ │ │ │ │ mov r0, r7 │ │ │ │ │ bl 0 │ │ │ │ │ R_ARM_CALL MPI_Comm_size │ │ │ │ │ ldr r1, [sp, #36] @ 0x24 │ │ │ │ │ mov r2, #0 │ │ │ │ │ mov r0, r5 │ │ │ │ │ - bl 3a8 │ │ │ │ │ + bl 3f0 │ │ │ │ │ mov r1, #0 │ │ │ │ │ mov r6, r0 │ │ │ │ │ bl 0 │ │ │ │ │ R_ARM_CALL fftw_mpi_is_block1d │ │ │ │ │ cmp r0, #0 │ │ │ │ │ - bne 7b8 │ │ │ │ │ + bne 84c │ │ │ │ │ mov r7, #1 │ │ │ │ │ ldr r0, [sp, #32] │ │ │ │ │ mov r3, r4 │ │ │ │ │ mov r1, r6 │ │ │ │ │ mov r2, #0 │ │ │ │ │ str r8, [sp] │ │ │ │ │ - bl 2d0 │ │ │ │ │ + bl 2f4 │ │ │ │ │ ldr r0, [sp, #32] │ │ │ │ │ mov r3, r9 │ │ │ │ │ mov r1, r6 │ │ │ │ │ mov r2, #1 │ │ │ │ │ str sl, [sp] │ │ │ │ │ - bl 2d0 │ │ │ │ │ + bl 2f4 │ │ │ │ │ ldm r4, {r2, r3} │ │ │ │ │ + ldr r0, [r4, #8] │ │ │ │ │ ldr r1, [r4, #24] │ │ │ │ │ mul r3, r2, r3 │ │ │ │ │ ldr r2, [r4, #28] │ │ │ │ │ - ldr r0, [r4, #8] │ │ │ │ │ + mul r0, r3, r0 │ │ │ │ │ mul r2, r1, r2 │ │ │ │ │ ldr r1, [r4, #32] │ │ │ │ │ - mul r0, r3, r0 │ │ │ │ │ mul r1, r2, r1 │ │ │ │ │ bl 0 │ │ │ │ │ R_ARM_CALL fftw_imax │ │ │ │ │ mov r1, r0 │ │ │ │ │ mov r0, r7 │ │ │ │ │ bl 0 │ │ │ │ │ R_ARM_CALL fftw_imax │ │ │ │ │ mov r7, r0 │ │ │ │ │ mov r0, r6 │ │ │ │ │ bl 0 │ │ │ │ │ R_ARM_CALL fftw_mpi_dtensor_destroy │ │ │ │ │ ldr r3, [r4] │ │ │ │ │ + mov r0, r4 │ │ │ │ │ str r3, [fp] │ │ │ │ │ - ldr r3, [sp, #104] @ 0x68 │ │ │ │ │ ldr r2, [r4, #12] │ │ │ │ │ + ldr r3, [sp, #104] @ 0x68 │ │ │ │ │ str r2, [r3] │ │ │ │ │ - ldr r3, [sp, #108] @ 0x6c │ │ │ │ │ ldr r2, [r4, #28] │ │ │ │ │ + ldr r3, [sp, #108] @ 0x6c │ │ │ │ │ str r2, [r3] │ │ │ │ │ - ldr r3, [sp, #112] @ 0x70 │ │ │ │ │ ldr r2, [r4, #40] @ 0x28 │ │ │ │ │ - mov r0, r4 │ │ │ │ │ + ldr r3, [sp, #112] @ 0x70 │ │ │ │ │ str r2, [r3] │ │ │ │ │ bl 0 │ │ │ │ │ R_ARM_CALL fftw_ifree │ │ │ │ │ mov r0, r5 │ │ │ │ │ bl 0 │ │ │ │ │ R_ARM_CALL fftw_ifree │ │ │ │ │ mov r0, r7 │ │ │ │ │ add sp, sp, #68 @ 0x44 │ │ │ │ │ - pop {r4, r5, r6, r7, r8, r9, sl, fp, pc} │ │ │ │ │ + ldrd r4, [sp] │ │ │ │ │ + ldrd r6, [sp, #8] │ │ │ │ │ + ldrd r8, [sp, #16] │ │ │ │ │ + ldrd sl, [sp, #24] │ │ │ │ │ + add sp, sp, #32 │ │ │ │ │ + pop {pc} @ (ldr pc, [sp], #4) │ │ │ │ │ mov r1, #1 │ │ │ │ │ mov r0, r6 │ │ │ │ │ bl 0 │ │ │ │ │ R_ARM_CALL fftw_mpi_is_block1d │ │ │ │ │ cmp r0, #0 │ │ │ │ │ - beq 6fc │ │ │ │ │ - ldmib r6, {r0, r1, r2} │ │ │ │ │ - add r3, sp, #40 @ 0x28 │ │ │ │ │ + beq 77c │ │ │ │ │ + ldrd r2, [r6, #4] │ │ │ │ │ add r7, r6, #16 │ │ │ │ │ - stm r3, {r0, r1, r2} │ │ │ │ │ - ldm r7, {r0, r1, r2} │ │ │ │ │ - add r3, sp, #64 @ 0x40 │ │ │ │ │ - stmdb r3, {r0, r1, r2} │ │ │ │ │ str r4, [sp, #16] │ │ │ │ │ - mov r2, #0 │ │ │ │ │ mov r4, r6 │ │ │ │ │ + strd r2, [sp, #40] @ 0x28 │ │ │ │ │ + ldr r3, [r6, #12] │ │ │ │ │ + str r3, [sp, #48] @ 0x30 │ │ │ │ │ + ldrd r2, [r6, #16] │ │ │ │ │ + strd r2, [sp, #52] @ 0x34 │ │ │ │ │ + mov r2, #0 │ │ │ │ │ + ldr r3, [r7, #8] │ │ │ │ │ str r2, [sp, #12] │ │ │ │ │ + str r3, [sp, #60] @ 0x3c │ │ │ │ │ ldmib r4, {r0, r1} │ │ │ │ │ bl 0 │ │ │ │ │ R_ARM_CALL fftw_mpi_num_blocks │ │ │ │ │ cmp r0, #1 │ │ │ │ │ - beq 900 │ │ │ │ │ + beq 99c │ │ │ │ │ ldr r3, [sp, #12] │ │ │ │ │ add r4, r4, #12 │ │ │ │ │ add r2, r3, #1 │ │ │ │ │ - cmp r2, #2 │ │ │ │ │ mov r3, #1 │ │ │ │ │ + cmp r2, #2 │ │ │ │ │ str r3, [sp, #12] │ │ │ │ │ - bne 7f8 │ │ │ │ │ + bne 894 │ │ │ │ │ ldr r4, [sp, #16] │ │ │ │ │ str r3, [sp, #16] │ │ │ │ │ ldr r0, [r6] │ │ │ │ │ cmp r0, #1 │ │ │ │ │ - ble 9e4 │ │ │ │ │ + ble a88 │ │ │ │ │ add r0, r0, r0, lsl #1 │ │ │ │ │ - sub r0, r0, #3 │ │ │ │ │ mov r2, #0 │ │ │ │ │ mov r3, #1 │ │ │ │ │ + sub r0, r0, #3 │ │ │ │ │ ldr r1, [r7, r2, lsl #2] │ │ │ │ │ add r2, r2, #3 │ │ │ │ │ cmp r0, r2 │ │ │ │ │ mul r3, r1, r3 │ │ │ │ │ - bne 848 │ │ │ │ │ + bne 8e4 │ │ │ │ │ ldr r1, [sp, #36] @ 0x24 │ │ │ │ │ mov r0, r3 │ │ │ │ │ - ldr r7, [r6, #4] │ │ │ │ │ str r3, [sp, #12] │ │ │ │ │ + ldr r7, [r6, #4] │ │ │ │ │ bl 0 │ │ │ │ │ R_ARM_CALL fftw_mpi_default_block │ │ │ │ │ ldr r3, [sp, #12] │ │ │ │ │ - ldr r2, [sp, #32] │ │ │ │ │ mov r1, r0 │ │ │ │ │ + ldr r2, [sp, #32] │ │ │ │ │ mov r0, r3 │ │ │ │ │ bl 0 │ │ │ │ │ R_ARM_CALL fftw_mpi_block │ │ │ │ │ mul r1, r0, r7 │ │ │ │ │ ldr r0, [sp, #16] │ │ │ │ │ bl 0 │ │ │ │ │ R_ARM_CALL fftw_imax │ │ │ │ │ ldm r6, {r1, r7} │ │ │ │ │ - cmp r1, #2 │ │ │ │ │ str r0, [sp, #12] │ │ │ │ │ - ble 8c4 │ │ │ │ │ + cmp r1, #2 │ │ │ │ │ + ble 960 │ │ │ │ │ add r1, r1, r1, lsl #1 │ │ │ │ │ - sub r1, r1, #6 │ │ │ │ │ mov r3, #0 │ │ │ │ │ add r0, r6, #28 │ │ │ │ │ + sub r1, r1, #6 │ │ │ │ │ ldr r2, [r0, r3, lsl #2] │ │ │ │ │ add r3, r3, #3 │ │ │ │ │ cmp r3, r1 │ │ │ │ │ mul r7, r2, r7 │ │ │ │ │ - bne 8b0 │ │ │ │ │ + bne 94c │ │ │ │ │ ldr r3, [r6, #16] │ │ │ │ │ - ldr r1, [sp, #36] @ 0x24 │ │ │ │ │ mov r0, r7 │ │ │ │ │ + ldr r1, [sp, #36] @ 0x24 │ │ │ │ │ str r3, [sp, #16] │ │ │ │ │ bl 0 │ │ │ │ │ R_ARM_CALL fftw_mpi_default_block │ │ │ │ │ ldr r2, [sp, #32] │ │ │ │ │ mov r1, r0 │ │ │ │ │ mov r0, r7 │ │ │ │ │ bl 0 │ │ │ │ │ R_ARM_CALL fftw_mpi_block │ │ │ │ │ ldr r3, [sp, #16] │ │ │ │ │ mul r1, r0, r3 │ │ │ │ │ ldr r0, [sp, #12] │ │ │ │ │ bl 0 │ │ │ │ │ R_ARM_CALL fftw_imax │ │ │ │ │ mov r7, r0 │ │ │ │ │ - b 700 │ │ │ │ │ - ldr r1, [r4, #12] │ │ │ │ │ + b 780 │ │ │ │ │ ldr r0, [r4, #4] │ │ │ │ │ + ldr r1, [r4, #12] │ │ │ │ │ bl 0 │ │ │ │ │ R_ARM_CALL fftw_mpi_num_blocks │ │ │ │ │ cmp r0, #1 │ │ │ │ │ - bne 808 │ │ │ │ │ + bne 8a4 │ │ │ │ │ ldr r3, [sp, #12] │ │ │ │ │ ldr r4, [sp, #16] │ │ │ │ │ + str r0, [sp, #16] │ │ │ │ │ + ldr r1, [sp, #36] @ 0x24 │ │ │ │ │ rsb r3, r3, #0 │ │ │ │ │ and r3, r3, #12 │ │ │ │ │ add r2, r6, r3 │ │ │ │ │ - ldr r1, [sp, #36] @ 0x24 │ │ │ │ │ - str r0, [sp, #16] │ │ │ │ │ ldr r0, [r2, #4] │ │ │ │ │ str r2, [sp, #20] │ │ │ │ │ bl 0 │ │ │ │ │ R_ARM_CALL fftw_mpi_default_block │ │ │ │ │ ldr r3, [sp, #12] │ │ │ │ │ ldr r2, [sp, #20] │ │ │ │ │ eor r1, r3, #1 │ │ │ │ │ sub r3, r3, #1 │ │ │ │ │ and r3, r3, #12 │ │ │ │ │ str r1, [sp, #28] │ │ │ │ │ add r1, r6, r3 │ │ │ │ │ - str r1, [sp, #24] │ │ │ │ │ str r0, [r2, #8] │ │ │ │ │ + mov r2, #0 │ │ │ │ │ ldr r3, [r1, #4] │ │ │ │ │ - str r3, [r1, #8] │ │ │ │ │ + str r1, [sp, #24] │ │ │ │ │ ldr r0, [sp, #32] │ │ │ │ │ + str r3, [r1, #8] │ │ │ │ │ mov r3, r4 │ │ │ │ │ - mov r2, #0 │ │ │ │ │ mov r1, r6 │ │ │ │ │ str r8, [sp] │ │ │ │ │ - bl 2d0 │ │ │ │ │ + bl 2f4 │ │ │ │ │ ldm r4, {r2, r3} │ │ │ │ │ ldr r1, [r4, #8] │ │ │ │ │ + ldr r0, [sp, #16] │ │ │ │ │ mov ip, r3 │ │ │ │ │ mul ip, r2, ip │ │ │ │ │ - ldr r0, [sp, #16] │ │ │ │ │ mul r1, ip, r1 │ │ │ │ │ bl 0 │ │ │ │ │ R_ARM_CALL fftw_imax │ │ │ │ │ ldr r3, [sp, #12] │ │ │ │ │ - add r3, r3, r3, lsl #1 │ │ │ │ │ str r0, [sp, #16] │ │ │ │ │ add r0, sp, #64 @ 0x40 │ │ │ │ │ + ldr r2, [sp, #20] │ │ │ │ │ + add r3, r3, r3, lsl #1 │ │ │ │ │ add r3, r0, r3, lsl #2 │ │ │ │ │ - sub r3, r3, #24 │ │ │ │ │ - ldm r3, {r0, r1, r2} │ │ │ │ │ - ldr r3, [sp, #20] │ │ │ │ │ - stmib r3, {r0, r1, r2} │ │ │ │ │ - ldr r2, [sp, #28] │ │ │ │ │ - add r3, r2, r2, lsl #1 │ │ │ │ │ - add r2, sp, #64 @ 0x40 │ │ │ │ │ - add r3, r2, r3, lsl #2 │ │ │ │ │ - sub r3, r3, #24 │ │ │ │ │ - ldm r3, {r0, r1, r2} │ │ │ │ │ - ldr r3, [sp, #24] │ │ │ │ │ - stmib r3, {r0, r1, r2} │ │ │ │ │ - b 82c │ │ │ │ │ + ldrd r0, [r3, #-24] @ 0xffffffe8 │ │ │ │ │ + ldr r3, [r3, #-16] │ │ │ │ │ + strd r0, [r2, #4] │ │ │ │ │ + add r0, sp, #64 @ 0x40 │ │ │ │ │ + str r3, [r2, #12] │ │ │ │ │ + ldr r2, [sp, #24] │ │ │ │ │ + ldr r3, [sp, #28] │ │ │ │ │ + add r3, r3, r3, lsl #1 │ │ │ │ │ + add r3, r0, r3, lsl #2 │ │ │ │ │ + ldrd r0, [r3, #-24] @ 0xffffffe8 │ │ │ │ │ + ldr r3, [r3, #-16] │ │ │ │ │ + strd r0, [r2, #4] │ │ │ │ │ + str r3, [r2, #12] │ │ │ │ │ + b 8c8 │ │ │ │ │ mov r3, #1 │ │ │ │ │ - b 85c │ │ │ │ │ + b 8f8 │ │ │ │ │ │ │ │ │ │ -000009ec : │ │ │ │ │ +00000a90 : │ │ │ │ │ default_sz.constprop.1(): │ │ │ │ │ - push {r4, r5, r6, r7, r8, r9, sl, fp, lr} │ │ │ │ │ + strd r4, [sp, #-36]! @ 0xffffffdc │ │ │ │ │ + strd r6, [sp, #8] │ │ │ │ │ mov r6, r0 │ │ │ │ │ - sub sp, sp, #12 │ │ │ │ │ mov r0, #2 │ │ │ │ │ + strd r8, [sp, #16] │ │ │ │ │ mov r7, r2 │ │ │ │ │ mov r9, r1 │ │ │ │ │ + strd sl, [sp, #24] │ │ │ │ │ + str lr, [sp, #32] │ │ │ │ │ + sub sp, sp, #12 │ │ │ │ │ str r2, [sp, #4] │ │ │ │ │ bl 0 │ │ │ │ │ R_ARM_CALL fftw_mpi_mkdtensor │ │ │ │ │ - mov sl, #0 │ │ │ │ │ mov r4, r0 │ │ │ │ │ mov r0, #2 │ │ │ │ │ bl 0 │ │ │ │ │ R_ARM_CALL fftw_mpi_mkdtensor │ │ │ │ │ - ldr r3, [r6, #12] │ │ │ │ │ ldr r1, [r6] │ │ │ │ │ + mov r5, r0 │ │ │ │ │ cmp r7, #0 │ │ │ │ │ ldr lr, [r6, #8] │ │ │ │ │ - ldr r2, [r6, #16] │ │ │ │ │ - ldr ip, [r6, #20] │ │ │ │ │ - add r8, r4, #8 │ │ │ │ │ - mov r5, r0 │ │ │ │ │ + ldr r3, [r6, #12] │ │ │ │ │ str r1, [r0, #4] │ │ │ │ │ ldr r0, [r6, #4] │ │ │ │ │ + ldr r2, [r6, #16] │ │ │ │ │ + ldr ip, [r6, #20] │ │ │ │ │ + str r0, [r5, #8] │ │ │ │ │ + str lr, [r5, #12] │ │ │ │ │ str r3, [r5, #16] │ │ │ │ │ - addne r3, r3, r3, lsr #31 │ │ │ │ │ - asrne r3, r3, #1 │ │ │ │ │ - addne r3, r3, #1 │ │ │ │ │ + str r2, [r5, #20] │ │ │ │ │ + beq b10 │ │ │ │ │ + add r3, r3, r3, lsr #31 │ │ │ │ │ + asr r3, r3, #1 │ │ │ │ │ + add r3, r3, #1 │ │ │ │ │ cmp r0, #0 │ │ │ │ │ - str r0, [r5, #8] │ │ │ │ │ + str ip, [r5, #24] │ │ │ │ │ + add fp, r5, #8 │ │ │ │ │ moveq r0, r1 │ │ │ │ │ cmp lr, #0 │ │ │ │ │ - str r2, [r5, #20] │ │ │ │ │ - str ip, [r5, #24] │ │ │ │ │ - str lr, [r5, #12] │ │ │ │ │ str r1, [r4, #4] │ │ │ │ │ movne r1, lr │ │ │ │ │ cmp r2, #0 │ │ │ │ │ moveq r2, r3 │ │ │ │ │ cmp ip, #0 │ │ │ │ │ - moveq ip, r3 │ │ │ │ │ - add fp, r5, #8 │ │ │ │ │ - str r3, [r4, #16] │ │ │ │ │ str r0, [r4, #8] │ │ │ │ │ + moveq ip, r3 │ │ │ │ │ + add r8, r4, #8 │ │ │ │ │ str r1, [r4, #12] │ │ │ │ │ + mov sl, #0 │ │ │ │ │ + str r3, [r4, #16] │ │ │ │ │ str r2, [r4, #20] │ │ │ │ │ str ip, [r4, #24] │ │ │ │ │ mov r1, sl │ │ │ │ │ mov r0, r4 │ │ │ │ │ bl 0 │ │ │ │ │ R_ARM_CALL fftw_mpi_num_blocks_total │ │ │ │ │ mov r1, r0 │ │ │ │ │ mov r7, r0 │ │ │ │ │ mov r0, r9 │ │ │ │ │ bl 0 <__aeabi_idiv> │ │ │ │ │ R_ARM_CALL __aeabi_idiv │ │ │ │ │ cmp r0, #1 │ │ │ │ │ - ble adc │ │ │ │ │ + ble b94 │ │ │ │ │ ldr r2, [fp] │ │ │ │ │ cmp r2, #0 │ │ │ │ │ - beq b30 │ │ │ │ │ + beq bfc │ │ │ │ │ ldr r2, [fp, #12] │ │ │ │ │ cmp r2, #0 │ │ │ │ │ - beq b6c │ │ │ │ │ + beq c38 │ │ │ │ │ add r2, sl, #1 │ │ │ │ │ - cmp r2, #2 │ │ │ │ │ add fp, fp, #4 │ │ │ │ │ + cmp r2, #2 │ │ │ │ │ add r8, r8, #4 │ │ │ │ │ mov sl, #1 │ │ │ │ │ - bne aa0 │ │ │ │ │ + bne b58 │ │ │ │ │ ldr r3, [sp, #4] │ │ │ │ │ mov r0, r5 │ │ │ │ │ cmp r3, #0 │ │ │ │ │ ldrne r3, [r6, #12] │ │ │ │ │ strne r3, [r4, #16] │ │ │ │ │ bl 0 │ │ │ │ │ R_ARM_CALL fftw_mpi_dtensor_destroy │ │ │ │ │ @@ -793,1751 +839,1862 @@ │ │ │ │ │ R_ARM_CALL fftw_mpi_dtensor_canonical │ │ │ │ │ mov r5, r0 │ │ │ │ │ mov r0, r4 │ │ │ │ │ bl 0 │ │ │ │ │ R_ARM_CALL fftw_mpi_dtensor_destroy │ │ │ │ │ mov r0, r5 │ │ │ │ │ add sp, sp, #12 │ │ │ │ │ - pop {r4, r5, r6, r7, r8, r9, sl, fp, pc} │ │ │ │ │ + ldrd r4, [sp] │ │ │ │ │ + ldrd r6, [sp, #8] │ │ │ │ │ + ldrd r8, [sp, #16] │ │ │ │ │ + ldrd sl, [sp, #24] │ │ │ │ │ + add sp, sp, #32 │ │ │ │ │ + pop {pc} @ (ldr pc, [sp], #4) │ │ │ │ │ mov r1, r0 │ │ │ │ │ ldr r0, [r4, #4] │ │ │ │ │ bl 0 │ │ │ │ │ R_ARM_CALL fftw_mpi_default_block │ │ │ │ │ mov r1, r0 │ │ │ │ │ str r0, [r8] │ │ │ │ │ ldr r0, [r4, #4] │ │ │ │ │ bl 0 │ │ │ │ │ R_ARM_CALL fftw_mpi_num_blocks │ │ │ │ │ mul r1, r7, r0 │ │ │ │ │ mov r0, r9 │ │ │ │ │ bl 0 <__aeabi_idiv> │ │ │ │ │ R_ARM_CALL __aeabi_idiv │ │ │ │ │ cmp r0, #1 │ │ │ │ │ - ble adc │ │ │ │ │ + ble b94 │ │ │ │ │ ldr r2, [fp, #12] │ │ │ │ │ cmp r2, #0 │ │ │ │ │ - bne adc │ │ │ │ │ + bne b94 │ │ │ │ │ mov r1, r0 │ │ │ │ │ ldr r0, [r4, #16] │ │ │ │ │ bl 0 │ │ │ │ │ R_ARM_CALL fftw_mpi_default_block │ │ │ │ │ mov r1, r0 │ │ │ │ │ str r0, [r8, #12] │ │ │ │ │ ldr r0, [r4, #16] │ │ │ │ │ bl 0 │ │ │ │ │ R_ARM_CALL fftw_mpi_num_blocks │ │ │ │ │ - b adc │ │ │ │ │ + b b94 │ │ │ │ │ │ │ │ │ │ -00000b8c : │ │ │ │ │ +00000c58 : │ │ │ │ │ fftw_mpi_local_size_many_transposed.part.0.constprop.1(): │ │ │ │ │ - push {r4, r5, r6, r7, r8, r9, sl, fp, lr} │ │ │ │ │ + strd r4, [sp, #-36]! @ 0xffffffdc │ │ │ │ │ + strd r6, [sp, #8] │ │ │ │ │ mov r6, r0 │ │ │ │ │ - sub sp, sp, #68 @ 0x44 │ │ │ │ │ mov r0, #24 │ │ │ │ │ - mov r8, r1 │ │ │ │ │ + strd r8, [sp, #16] │ │ │ │ │ mov r7, r2 │ │ │ │ │ + mov r8, r1 │ │ │ │ │ + strd sl, [sp, #24] │ │ │ │ │ mov r9, r3 │ │ │ │ │ + str lr, [sp, #32] │ │ │ │ │ + sub sp, sp, #68 @ 0x44 │ │ │ │ │ bl 0 │ │ │ │ │ R_ARM_CALL fftw_malloc_plain │ │ │ │ │ ldr r3, [r6] │ │ │ │ │ - str r3, [r0, #8] │ │ │ │ │ - str r3, [r0, #4] │ │ │ │ │ + mov r5, r0 │ │ │ │ │ str r3, [r0] │ │ │ │ │ + str r3, [r0, #4] │ │ │ │ │ + str r3, [r0, #8] │ │ │ │ │ ldr r3, [r6, #4] │ │ │ │ │ - mov r5, r0 │ │ │ │ │ - str r3, [r0, #20] │ │ │ │ │ - str r3, [r0, #16] │ │ │ │ │ str r3, [r0, #12] │ │ │ │ │ + str r3, [r0, #16] │ │ │ │ │ + str r3, [r0, #20] │ │ │ │ │ mov r0, #32 │ │ │ │ │ bl 0 │ │ │ │ │ R_ARM_CALL fftw_malloc_plain │ │ │ │ │ mov r3, #0 │ │ │ │ │ + add r1, sp, #32 │ │ │ │ │ + mov r4, r0 │ │ │ │ │ + add sl, r0, #24 │ │ │ │ │ str r3, [r5, #4] │ │ │ │ │ ldr r2, [r6, #4] │ │ │ │ │ - add r1, sp, #32 │ │ │ │ │ cmp r2, r8 │ │ │ │ │ - strgt r8, [r5, #20] │ │ │ │ │ strle r3, [r5, #8] │ │ │ │ │ - mov r4, r0 │ │ │ │ │ add r3, r0, #16 │ │ │ │ │ + strgt r8, [r5, #20] │ │ │ │ │ add r8, r0, #8 │ │ │ │ │ - add sl, r0, #24 │ │ │ │ │ mov r0, r7 │ │ │ │ │ str r3, [sp, #12] │ │ │ │ │ bl 0 │ │ │ │ │ R_ARM_CALL MPI_Comm_rank │ │ │ │ │ add r1, sp, #36 @ 0x24 │ │ │ │ │ mov r0, r7 │ │ │ │ │ bl 0 │ │ │ │ │ R_ARM_CALL MPI_Comm_size │ │ │ │ │ ldr r1, [sp, #36] @ 0x24 │ │ │ │ │ mov r2, #0 │ │ │ │ │ mov r0, r5 │ │ │ │ │ - bl 9ec │ │ │ │ │ + bl a90 │ │ │ │ │ mov r1, #0 │ │ │ │ │ mov r6, r0 │ │ │ │ │ bl 0 │ │ │ │ │ R_ARM_CALL fftw_mpi_is_block1d │ │ │ │ │ cmp r0, #0 │ │ │ │ │ - bne cf0 │ │ │ │ │ + bne de0 │ │ │ │ │ mov r7, #1 │ │ │ │ │ ldr r0, [sp, #32] │ │ │ │ │ mov r3, r4 │ │ │ │ │ mov r1, r6 │ │ │ │ │ mov r2, #0 │ │ │ │ │ str r8, [sp] │ │ │ │ │ - bl 2d0 │ │ │ │ │ + bl 2f4 │ │ │ │ │ ldr r3, [sp, #12] │ │ │ │ │ - ldr r0, [sp, #32] │ │ │ │ │ mov r1, r6 │ │ │ │ │ mov r2, #1 │ │ │ │ │ str sl, [sp] │ │ │ │ │ - bl 2d0 │ │ │ │ │ - ldr r2, [r4, #20] │ │ │ │ │ + ldr r0, [sp, #32] │ │ │ │ │ + bl 2f4 │ │ │ │ │ ldr r3, [r4] │ │ │ │ │ - ldr r1, [r4, #16] │ │ │ │ │ ldr r0, [r4, #4] │ │ │ │ │ - mul r1, r2, r1 │ │ │ │ │ + ldr r1, [r4, #16] │ │ │ │ │ + ldr r2, [r4, #20] │ │ │ │ │ mul r0, r3, r0 │ │ │ │ │ + mul r1, r2, r1 │ │ │ │ │ bl 0 │ │ │ │ │ R_ARM_CALL fftw_imax │ │ │ │ │ mov r1, r0 │ │ │ │ │ mov r0, r7 │ │ │ │ │ bl 0 │ │ │ │ │ R_ARM_CALL fftw_imax │ │ │ │ │ mov r7, r0 │ │ │ │ │ mov r0, r6 │ │ │ │ │ bl 0 │ │ │ │ │ R_ARM_CALL fftw_mpi_dtensor_destroy │ │ │ │ │ ldr r3, [r4] │ │ │ │ │ + mov r0, r4 │ │ │ │ │ str r3, [r9] │ │ │ │ │ - ldr r3, [sp, #104] @ 0x68 │ │ │ │ │ ldr r2, [r4, #8] │ │ │ │ │ + ldr r3, [sp, #104] @ 0x68 │ │ │ │ │ str r2, [r3] │ │ │ │ │ - ldr r3, [sp, #108] @ 0x6c │ │ │ │ │ ldr r2, [r4, #20] │ │ │ │ │ + ldr r3, [sp, #108] @ 0x6c │ │ │ │ │ str r2, [r3] │ │ │ │ │ - ldr r3, [sp, #112] @ 0x70 │ │ │ │ │ ldr r2, [r4, #28] │ │ │ │ │ - mov r0, r4 │ │ │ │ │ + ldr r3, [sp, #112] @ 0x70 │ │ │ │ │ str r2, [r3] │ │ │ │ │ bl 0 │ │ │ │ │ R_ARM_CALL fftw_ifree │ │ │ │ │ mov r0, r5 │ │ │ │ │ bl 0 │ │ │ │ │ R_ARM_CALL fftw_ifree │ │ │ │ │ mov r0, r7 │ │ │ │ │ add sp, sp, #68 @ 0x44 │ │ │ │ │ - pop {r4, r5, r6, r7, r8, r9, sl, fp, pc} │ │ │ │ │ + ldrd r4, [sp] │ │ │ │ │ + ldrd r6, [sp, #8] │ │ │ │ │ + ldrd r8, [sp, #16] │ │ │ │ │ + ldrd sl, [sp, #24] │ │ │ │ │ + add sp, sp, #32 │ │ │ │ │ + pop {pc} @ (ldr pc, [sp], #4) │ │ │ │ │ mov r1, #1 │ │ │ │ │ mov r0, r6 │ │ │ │ │ bl 0 │ │ │ │ │ R_ARM_CALL fftw_mpi_is_block1d │ │ │ │ │ cmp r0, #0 │ │ │ │ │ - beq c40 │ │ │ │ │ - ldmib r6, {r0, r1, r2} │ │ │ │ │ + beq d1c │ │ │ │ │ + ldrd r2, [r6, #4] │ │ │ │ │ add r7, r6, #16 │ │ │ │ │ - add r3, sp, #40 @ 0x28 │ │ │ │ │ - stm r3, {r0, r1, r2} │ │ │ │ │ - ldm r7, {r0, r1, r2} │ │ │ │ │ - add r3, sp, #64 @ 0x40 │ │ │ │ │ mov fp, #0 │ │ │ │ │ - stmdb r3, {r0, r1, r2} │ │ │ │ │ - mov r3, r7 │ │ │ │ │ str r4, [sp, #16] │ │ │ │ │ - mov r7, r6 │ │ │ │ │ mov r4, r6 │ │ │ │ │ + strd r2, [sp, #40] @ 0x28 │ │ │ │ │ + ldr r3, [r6, #12] │ │ │ │ │ + str r3, [sp, #48] @ 0x30 │ │ │ │ │ + ldrd r2, [r6, #16] │ │ │ │ │ + strd r2, [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 │ │ │ │ │ ldmib r4, {r0, r1} │ │ │ │ │ bl 0 │ │ │ │ │ R_ARM_CALL fftw_mpi_num_blocks │ │ │ │ │ cmp r0, #1 │ │ │ │ │ - beq e44 │ │ │ │ │ + beq f3c │ │ │ │ │ add r2, r5, #1 │ │ │ │ │ - cmp r2, #2 │ │ │ │ │ add r4, r4, #12 │ │ │ │ │ + cmp r2, #2 │ │ │ │ │ mov r5, #1 │ │ │ │ │ - bne d40 │ │ │ │ │ + bne e38 │ │ │ │ │ mov r3, fp │ │ │ │ │ mov fp, r5 │ │ │ │ │ + ldr r4, [sp, #16] │ │ │ │ │ mov r5, r6 │ │ │ │ │ mov r6, r7 │ │ │ │ │ mov r7, r3 │ │ │ │ │ - ldr r4, [sp, #16] │ │ │ │ │ str fp, [sp, #16] │ │ │ │ │ ldr r1, [r6] │ │ │ │ │ cmp r1, #1 │ │ │ │ │ - ble f24 │ │ │ │ │ + ble 1024 │ │ │ │ │ add r1, r1, r1, lsl #1 │ │ │ │ │ - sub r1, r1, #3 │ │ │ │ │ mov r3, #0 │ │ │ │ │ mov fp, #1 │ │ │ │ │ + sub r1, r1, #3 │ │ │ │ │ ldr r2, [r7, r3, lsl #2] │ │ │ │ │ add r3, r3, #3 │ │ │ │ │ cmp r1, r3 │ │ │ │ │ mul fp, r2, fp │ │ │ │ │ - bne d9c │ │ │ │ │ - ldr r1, [sp, #36] @ 0x24 │ │ │ │ │ - mov r0, fp │ │ │ │ │ + bne e94 │ │ │ │ │ ldr r7, [r6, #4] │ │ │ │ │ + mov r0, fp │ │ │ │ │ + ldr r1, [sp, #36] @ 0x24 │ │ │ │ │ bl 0 │ │ │ │ │ R_ARM_CALL fftw_mpi_default_block │ │ │ │ │ ldr r2, [sp, #32] │ │ │ │ │ mov r1, r0 │ │ │ │ │ mov r0, fp │ │ │ │ │ bl 0 │ │ │ │ │ R_ARM_CALL fftw_mpi_block │ │ │ │ │ mul r1, r0, r7 │ │ │ │ │ ldr r0, [sp, #16] │ │ │ │ │ bl 0 │ │ │ │ │ R_ARM_CALL fftw_imax │ │ │ │ │ ldm r6, {r1, r7} │ │ │ │ │ - cmp r1, #2 │ │ │ │ │ str r0, [sp, #16] │ │ │ │ │ - ble e10 │ │ │ │ │ + cmp r1, #2 │ │ │ │ │ + ble f08 │ │ │ │ │ add r1, r1, r1, lsl #1 │ │ │ │ │ - sub r1, r1, #6 │ │ │ │ │ mov r3, #0 │ │ │ │ │ add r0, r6, #28 │ │ │ │ │ + sub r1, r1, #6 │ │ │ │ │ ldr r2, [r0, r3, lsl #2] │ │ │ │ │ add r3, r3, #3 │ │ │ │ │ cmp r1, r3 │ │ │ │ │ mul r7, r2, r7 │ │ │ │ │ - bne dfc │ │ │ │ │ - ldr r1, [sp, #36] @ 0x24 │ │ │ │ │ - mov r0, r7 │ │ │ │ │ + bne ef4 │ │ │ │ │ ldr fp, [r6, #16] │ │ │ │ │ + mov r0, r7 │ │ │ │ │ + ldr r1, [sp, #36] @ 0x24 │ │ │ │ │ bl 0 │ │ │ │ │ R_ARM_CALL fftw_mpi_default_block │ │ │ │ │ ldr r2, [sp, #32] │ │ │ │ │ mov r1, r0 │ │ │ │ │ mov r0, r7 │ │ │ │ │ bl 0 │ │ │ │ │ R_ARM_CALL fftw_mpi_block │ │ │ │ │ mul r1, r0, fp │ │ │ │ │ ldr r0, [sp, #16] │ │ │ │ │ bl 0 │ │ │ │ │ R_ARM_CALL fftw_imax │ │ │ │ │ mov r7, r0 │ │ │ │ │ - b c44 │ │ │ │ │ - ldr r1, [r4, #12] │ │ │ │ │ + b d20 │ │ │ │ │ ldr r0, [r4, #4] │ │ │ │ │ + ldr r1, [r4, #12] │ │ │ │ │ bl 0 │ │ │ │ │ R_ARM_CALL fftw_mpi_num_blocks │ │ │ │ │ cmp r0, #1 │ │ │ │ │ - bne d50 │ │ │ │ │ + bne e48 │ │ │ │ │ mov r3, fp │ │ │ │ │ mov fp, r5 │ │ │ │ │ + ldr r4, [sp, #16] │ │ │ │ │ mov r5, r6 │ │ │ │ │ mov r6, r7 │ │ │ │ │ + str r0, [sp, #16] │ │ │ │ │ mov r7, r3 │ │ │ │ │ rsb r3, fp, #0 │ │ │ │ │ - and r3, r3, #12 │ │ │ │ │ - add r3, r6, r3 │ │ │ │ │ - ldr r4, [sp, #16] │ │ │ │ │ ldr r1, [sp, #36] @ 0x24 │ │ │ │ │ - str r0, [sp, #16] │ │ │ │ │ - ldr r0, [r3, #4] │ │ │ │ │ - str r3, [sp, #20] │ │ │ │ │ + and r3, r3, #12 │ │ │ │ │ + add r2, r6, r3 │ │ │ │ │ + ldr r0, [r2, #4] │ │ │ │ │ + str r2, [sp, #20] │ │ │ │ │ bl 0 │ │ │ │ │ R_ARM_CALL fftw_mpi_default_block │ │ │ │ │ - ldr r3, [sp, #20] │ │ │ │ │ - eor r2, fp, #1 │ │ │ │ │ - str r2, [sp, #28] │ │ │ │ │ - mov r1, r6 │ │ │ │ │ - str r0, [r3, #8] │ │ │ │ │ + ldr r2, [sp, #20] │ │ │ │ │ + eor r3, fp, #1 │ │ │ │ │ + str r3, [sp, #28] │ │ │ │ │ sub r3, fp, #1 │ │ │ │ │ and r3, r3, #12 │ │ │ │ │ - add r2, r6, r3 │ │ │ │ │ - ldr r3, [r2, #4] │ │ │ │ │ - str r3, [r2, #8] │ │ │ │ │ + add r1, r6, r3 │ │ │ │ │ + str r0, [r2, #8] │ │ │ │ │ + mov r2, #0 │ │ │ │ │ + ldr r3, [r1, #4] │ │ │ │ │ + str r1, [sp, #24] │ │ │ │ │ ldr r0, [sp, #32] │ │ │ │ │ + str r3, [r1, #8] │ │ │ │ │ mov r3, r4 │ │ │ │ │ - str r2, [sp, #24] │ │ │ │ │ + mov r1, r6 │ │ │ │ │ str r8, [sp] │ │ │ │ │ - mov r2, #0 │ │ │ │ │ - bl 2d0 │ │ │ │ │ + bl 2f4 │ │ │ │ │ ldm r4, {r1, r3} │ │ │ │ │ ldr r0, [sp, #16] │ │ │ │ │ mul r1, r3, r1 │ │ │ │ │ bl 0 │ │ │ │ │ R_ARM_CALL fftw_imax │ │ │ │ │ add r3, fp, fp, lsl #1 │ │ │ │ │ str r0, [sp, #16] │ │ │ │ │ add r0, sp, #64 @ 0x40 │ │ │ │ │ + ldr r2, [sp, #20] │ │ │ │ │ add r3, r0, r3, lsl #2 │ │ │ │ │ - sub r3, r3, #24 │ │ │ │ │ - ldm r3, {r0, r1, r2} │ │ │ │ │ - ldr r3, [sp, #20] │ │ │ │ │ - stmib r3, {r0, r1, r2} │ │ │ │ │ - ldr r1, [sp, #28] │ │ │ │ │ - add r3, r1, r1, lsl #1 │ │ │ │ │ - add r1, sp, #64 @ 0x40 │ │ │ │ │ - add r3, r1, r3, lsl #2 │ │ │ │ │ - sub r3, r3, #24 │ │ │ │ │ - ldm r3, {r0, r1, r2} │ │ │ │ │ - ldr r3, [sp, #24] │ │ │ │ │ - stmib r3, {r0, r1, r2} │ │ │ │ │ - b d80 │ │ │ │ │ + ldrd r0, [r3, #-24] @ 0xffffffe8 │ │ │ │ │ + ldr r3, [r3, #-16] │ │ │ │ │ + strd r0, [r2, #4] │ │ │ │ │ + add r0, sp, #64 @ 0x40 │ │ │ │ │ + str r3, [r2, #12] │ │ │ │ │ + ldr r2, [sp, #24] │ │ │ │ │ + ldr r3, [sp, #28] │ │ │ │ │ + add r3, r3, r3, lsl #1 │ │ │ │ │ + add r3, r0, r3, lsl #2 │ │ │ │ │ + ldrd r0, [r3, #-24] @ 0xffffffe8 │ │ │ │ │ + ldr r3, [r3, #-16] │ │ │ │ │ + strd r0, [r2, #4] │ │ │ │ │ + str r3, [r2, #12] │ │ │ │ │ + b e78 │ │ │ │ │ mov fp, #1 │ │ │ │ │ - b db0 │ │ │ │ │ + b ea8 │ │ │ │ │ │ │ │ │ │ -00000f2c : │ │ │ │ │ +0000102c : │ │ │ │ │ default_sz.constprop.2(): │ │ │ │ │ - push {r4, r5, r6, r7, r8, r9, sl, lr} │ │ │ │ │ + strd r4, [sp, #-32]! @ 0xffffffe0 │ │ │ │ │ mov r5, r0 │ │ │ │ │ mov r0, #1 │ │ │ │ │ + strd r6, [sp, #8] │ │ │ │ │ + mov r7, #0 │ │ │ │ │ + strd r8, [sp, #16] │ │ │ │ │ mov r8, r1 │ │ │ │ │ + str sl, [sp, #24] │ │ │ │ │ + str lr, [sp, #28] │ │ │ │ │ bl 0 │ │ │ │ │ R_ARM_CALL fftw_mpi_mkdtensor │ │ │ │ │ - mov r7, #0 │ │ │ │ │ mov r4, r0 │ │ │ │ │ mov r0, #1 │ │ │ │ │ bl 0 │ │ │ │ │ R_ARM_CALL fftw_mpi_mkdtensor │ │ │ │ │ - ldr r2, [r5, #4] │ │ │ │ │ ldr r3, [r5] │ │ │ │ │ + mov r6, r0 │ │ │ │ │ + add r9, r0, #8 │ │ │ │ │ + ldr r2, [r5, #4] │ │ │ │ │ ldr r1, [r5, #8] │ │ │ │ │ - cmp r2, #0 │ │ │ │ │ add r5, r4, #8 │ │ │ │ │ + str r3, [r0, #4] │ │ │ │ │ + cmp r2, #0 │ │ │ │ │ str r2, [r0, #8] │ │ │ │ │ moveq r2, r3 │ │ │ │ │ cmp r1, #0 │ │ │ │ │ - str r3, [r0, #4] │ │ │ │ │ str r1, [r0, #12] │ │ │ │ │ - mov r6, r0 │ │ │ │ │ str r3, [r4, #4] │ │ │ │ │ - add r9, r0, #8 │ │ │ │ │ movne r3, r1 │ │ │ │ │ str r2, [r4, #8] │ │ │ │ │ str r3, [r4, #12] │ │ │ │ │ mov r1, r7 │ │ │ │ │ mov r0, r4 │ │ │ │ │ bl 0 │ │ │ │ │ R_ARM_CALL fftw_mpi_num_blocks_total │ │ │ │ │ mov r1, r0 │ │ │ │ │ mov r0, r8 │ │ │ │ │ bl 0 <__aeabi_idiv> │ │ │ │ │ R_ARM_CALL __aeabi_idiv │ │ │ │ │ cmp r0, #1 │ │ │ │ │ mov r1, r0 │ │ │ │ │ - ble fc0 │ │ │ │ │ + ble 10d0 │ │ │ │ │ ldr r3, [r9] │ │ │ │ │ cmp r3, #0 │ │ │ │ │ - beq 1018 │ │ │ │ │ + beq 1140 │ │ │ │ │ add r3, r7, #1 │ │ │ │ │ - cmp r3, #2 │ │ │ │ │ add r5, r5, #4 │ │ │ │ │ + cmp r3, #2 │ │ │ │ │ add r9, r9, #4 │ │ │ │ │ mov r7, #1 │ │ │ │ │ - bne f90 │ │ │ │ │ + bne 10a0 │ │ │ │ │ ldr r0, [r4, #4] │ │ │ │ │ bl 0 │ │ │ │ │ R_ARM_CALL fftw_is_prime │ │ │ │ │ cmp r0, #0 │ │ │ │ │ - ldrne r3, [r4, #4] │ │ │ │ │ - strne r3, [r4, #12] │ │ │ │ │ - strne r3, [r4, #8] │ │ │ │ │ + beq 1104 │ │ │ │ │ + ldr r3, [r4, #4] │ │ │ │ │ + str r3, [r4, #8] │ │ │ │ │ + str r3, [r4, #12] │ │ │ │ │ mov r0, r6 │ │ │ │ │ bl 0 │ │ │ │ │ R_ARM_CALL fftw_mpi_dtensor_destroy │ │ │ │ │ mov r1, #0 │ │ │ │ │ mov r0, r4 │ │ │ │ │ bl 0 │ │ │ │ │ R_ARM_CALL fftw_mpi_dtensor_canonical │ │ │ │ │ mov r5, r0 │ │ │ │ │ mov r0, r4 │ │ │ │ │ bl 0 │ │ │ │ │ R_ARM_CALL fftw_mpi_dtensor_destroy │ │ │ │ │ + ldrd r6, [sp, #8] │ │ │ │ │ mov r0, r5 │ │ │ │ │ - pop {r4, r5, r6, r7, r8, r9, sl, pc} │ │ │ │ │ + ldrd r4, [sp] │ │ │ │ │ + ldrd r8, [sp, #16] │ │ │ │ │ + ldr sl, [sp, #24] │ │ │ │ │ + add sp, sp, #28 │ │ │ │ │ + pop {pc} @ (ldr pc, [sp], #4) │ │ │ │ │ ldr r0, [r4, #4] │ │ │ │ │ bl 0 │ │ │ │ │ R_ARM_CALL fftw_mpi_default_block │ │ │ │ │ mov r1, r0 │ │ │ │ │ str r0, [r5] │ │ │ │ │ ldr r0, [r4, #4] │ │ │ │ │ bl 0 │ │ │ │ │ R_ARM_CALL fftw_mpi_num_blocks │ │ │ │ │ - b fc0 │ │ │ │ │ + b 10d0 │ │ │ │ │ │ │ │ │ │ -00001034 : │ │ │ │ │ +0000115c : │ │ │ │ │ fftw_mpi_local_size_guru.part.0.constprop.0(): │ │ │ │ │ - push {r4, r5, r6, r7, r8, r9, sl, fp, lr} │ │ │ │ │ - sub sp, sp, #44 @ 0x2c │ │ │ │ │ + strd r4, [sp, #-36]! @ 0xffffffdc │ │ │ │ │ mov r4, r2 │ │ │ │ │ - mov sl, r0 │ │ │ │ │ mov r5, r1 │ │ │ │ │ + strd r6, [sp, #8] │ │ │ │ │ + mov r6, r3 │ │ │ │ │ + strd r8, [sp, #16] │ │ │ │ │ + strd sl, [sp, #24] │ │ │ │ │ + mov sl, r0 │ │ │ │ │ mov r0, r2 │ │ │ │ │ + str lr, [sp, #32] │ │ │ │ │ + sub sp, sp, #44 @ 0x2c │ │ │ │ │ add r1, sp, #16 │ │ │ │ │ - mov r6, r3 │ │ │ │ │ ldr r8, [sp, #84] @ 0x54 │ │ │ │ │ ldr r9, [sp, #92] @ 0x5c │ │ │ │ │ ldr r7, [sp, #96] @ 0x60 │ │ │ │ │ bl 0 │ │ │ │ │ R_ARM_CALL MPI_Comm_rank │ │ │ │ │ add r1, sp, #20 │ │ │ │ │ mov r0, r4 │ │ │ │ │ bl 0 │ │ │ │ │ R_ARM_CALL MPI_Comm_size │ │ │ │ │ ldr r1, [sp, #20] │ │ │ │ │ mov r0, sl │ │ │ │ │ - bl f2c │ │ │ │ │ + bl 102c │ │ │ │ │ ldr r3, [sp, #20] │ │ │ │ │ - cmp r5, r3 │ │ │ │ │ mov r4, r0 │ │ │ │ │ - blt 1094 │ │ │ │ │ + cmp r5, r3 │ │ │ │ │ + blt 11cc │ │ │ │ │ lsrs sl, r7, #27 │ │ │ │ │ - beq 118c │ │ │ │ │ + beq 12d8 │ │ │ │ │ add r2, r9, #1 │ │ │ │ │ bics r2, r2, #2 │ │ │ │ │ - bne 116c │ │ │ │ │ + bne 12b8 │ │ │ │ │ add r2, sp, #32 │ │ │ │ │ + stm sp, {r7, r9} │ │ │ │ │ str r2, [sp, #12] │ │ │ │ │ add r2, sp, #24 │ │ │ │ │ - stm sp, {r7, r9} │ │ │ │ │ str r2, [sp, #8] │ │ │ │ │ ldmib r4, {r0, r1, r2} │ │ │ │ │ bl 0 │ │ │ │ │ R_ARM_CALL fftw_mpi_choose_radix │ │ │ │ │ subs r9, r0, #0 │ │ │ │ │ moveq sl, #1 │ │ │ │ │ - beq 1104 │ │ │ │ │ - mov r1, r9 │ │ │ │ │ + beq 123c │ │ │ │ │ ldr r0, [r4, #4] │ │ │ │ │ + mov r1, r9 │ │ │ │ │ bl 0 <__aeabi_idiv> │ │ │ │ │ R_ARM_CALL __aeabi_idiv │ │ │ │ │ ldr r1, [sp, #24] │ │ │ │ │ tst r7, #134217728 @ 0x8000000 │ │ │ │ │ - mul r1, r0, r1 │ │ │ │ │ mov fp, r0 │ │ │ │ │ - beq 122c │ │ │ │ │ + mul r1, r0, r1 │ │ │ │ │ + beq 1380 │ │ │ │ │ mov sl, #1 │ │ │ │ │ str r1, [r4, #8] │ │ │ │ │ ldr r3, [sp, #36] @ 0x24 │ │ │ │ │ tst r7, #268435456 @ 0x10000000 │ │ │ │ │ mul r1, r3, r9 │ │ │ │ │ strne r1, [r4, #12] │ │ │ │ │ - beq 1210 │ │ │ │ │ - ldr r3, [sp, #80] @ 0x50 │ │ │ │ │ + beq 1364 │ │ │ │ │ ldr r0, [sp, #16] │ │ │ │ │ mov r1, r4 │ │ │ │ │ - str r3, [sp] │ │ │ │ │ mov r2, #0 │ │ │ │ │ + ldr r3, [sp, #80] @ 0x50 │ │ │ │ │ + str r3, [sp] │ │ │ │ │ mov r3, r6 │ │ │ │ │ - bl 2d0 │ │ │ │ │ - ldr r3, [sp, #88] @ 0x58 │ │ │ │ │ - mov r2, #1 │ │ │ │ │ + bl 2f4 │ │ │ │ │ ldr r0, [sp, #16] │ │ │ │ │ + mov r2, #1 │ │ │ │ │ mov r1, r4 │ │ │ │ │ + ldr r3, [sp, #88] @ 0x58 │ │ │ │ │ str r3, [sp] │ │ │ │ │ mov r3, r8 │ │ │ │ │ - bl 2d0 │ │ │ │ │ + bl 2f4 │ │ │ │ │ ldr r1, [r8] │ │ │ │ │ ldr r0, [r6] │ │ │ │ │ bl 0 │ │ │ │ │ R_ARM_CALL fftw_imax │ │ │ │ │ mov r1, r0 │ │ │ │ │ mov r0, sl │ │ │ │ │ bl 0 │ │ │ │ │ R_ARM_CALL fftw_imax │ │ │ │ │ mov r6, r0 │ │ │ │ │ mov r0, r4 │ │ │ │ │ bl 0 │ │ │ │ │ R_ARM_CALL fftw_mpi_dtensor_destroy │ │ │ │ │ mul r0, r6, r5 │ │ │ │ │ add sp, sp, #44 @ 0x2c │ │ │ │ │ - pop {r4, r5, r6, r7, r8, r9, sl, fp, pc} │ │ │ │ │ - ldr r2, [pc, #212] @ 1248 │ │ │ │ │ - ldr r0, [pc, #212] @ 124c │ │ │ │ │ - ldr r1, [pc, #212] @ 1250 │ │ │ │ │ + ldrd r4, [sp] │ │ │ │ │ + ldrd r6, [sp, #8] │ │ │ │ │ + ldrd r8, [sp, #16] │ │ │ │ │ + ldrd sl, [sp, #24] │ │ │ │ │ + add sp, sp, #32 │ │ │ │ │ + pop {pc} @ (ldr pc, [sp], #4) │ │ │ │ │ + ldr r2, [pc, #220] @ 139c │ │ │ │ │ + ldr r0, [pc, #220] @ 13a0 │ │ │ │ │ + ldr r1, [pc, #220] @ 13a4 │ │ │ │ │ add r2, pc, r2 │ │ │ │ │ add r0, pc, r0 │ │ │ │ │ bl 0 │ │ │ │ │ R_ARM_CALL fftw_assertion_failed │ │ │ │ │ ldr r3, [sp, #20] │ │ │ │ │ - b 10a0 │ │ │ │ │ + b 11d8 │ │ │ │ │ mov r0, #2 │ │ │ │ │ bl 0 │ │ │ │ │ R_ARM_CALL fftw_mpi_mkdtensor │ │ │ │ │ + ldrd r2, [r4, #4] │ │ │ │ │ mov r7, r0 │ │ │ │ │ - ldmib r4, {r0, r1, r2} │ │ │ │ │ - stmib r7, {r0, r1, r2} │ │ │ │ │ - ldr r3, [r4, #4] │ │ │ │ │ ldr r1, [sp, #20] │ │ │ │ │ - str r3, [r7, #8] │ │ │ │ │ + strd r2, [r0, #4] │ │ │ │ │ + ldr r3, [r4, #12] │ │ │ │ │ + str r3, [r0, #12] │ │ │ │ │ + ldr r3, [r4, #4] │ │ │ │ │ + str r3, [r0, #8] │ │ │ │ │ + str r5, [r0, #16] │ │ │ │ │ + str r5, [r0, #24] │ │ │ │ │ mov r0, r5 │ │ │ │ │ - str r5, [r7, #24] │ │ │ │ │ - str r5, [r7, #16] │ │ │ │ │ bl 0 │ │ │ │ │ R_ARM_CALL fftw_mpi_default_block │ │ │ │ │ add r3, sp, #32 │ │ │ │ │ mov r2, sl │ │ │ │ │ - mov r1, r7 │ │ │ │ │ str r0, [r7, #20] │ │ │ │ │ ldr r0, [sp, #16] │ │ │ │ │ + mov r1, r7 │ │ │ │ │ str r3, [sp] │ │ │ │ │ add r3, sp, #24 │ │ │ │ │ - bl 2d0 │ │ │ │ │ + bl 2f4 │ │ │ │ │ mov r0, r7 │ │ │ │ │ bl 0 │ │ │ │ │ R_ARM_CALL fftw_mpi_dtensor_destroy │ │ │ │ │ - ldr r3, [sp, #28] │ │ │ │ │ ldr r0, [sp, #24] │ │ │ │ │ mov r1, r5 │ │ │ │ │ + ldr r3, [sp, #28] │ │ │ │ │ mla r0, r3, r0, r5 │ │ │ │ │ sub r0, r0, #1 │ │ │ │ │ bl 0 <__aeabi_idiv> │ │ │ │ │ R_ARM_CALL __aeabi_idiv │ │ │ │ │ mov r1, r0 │ │ │ │ │ mov r0, #1 │ │ │ │ │ bl 0 │ │ │ │ │ R_ARM_CALL fftw_imax │ │ │ │ │ mov sl, r0 │ │ │ │ │ - b 1104 │ │ │ │ │ + b 123c │ │ │ │ │ mov r0, sl │ │ │ │ │ bl 0 │ │ │ │ │ R_ARM_CALL fftw_imax │ │ │ │ │ ldr r3, [sp, #28] │ │ │ │ │ + mov sl, r0 │ │ │ │ │ mul r3, fp, r3 │ │ │ │ │ str r3, [r4, #12] │ │ │ │ │ - mov sl, r0 │ │ │ │ │ - b 1104 │ │ │ │ │ + b 123c │ │ │ │ │ ldr r3, [sp, #32] │ │ │ │ │ mov r0, #1 │ │ │ │ │ mul r3, r9, r3 │ │ │ │ │ str r3, [r4, #8] │ │ │ │ │ bl 0 │ │ │ │ │ R_ARM_CALL fftw_imax │ │ │ │ │ mov sl, r0 │ │ │ │ │ - b 10f0 │ │ │ │ │ - .word 0x000000c8 │ │ │ │ │ + b 1228 │ │ │ │ │ + .word 0x000000d0 │ │ │ │ │ R_ARM_REL32 .LC0 │ │ │ │ │ - .word 0x000000c8 │ │ │ │ │ + .word 0x000000d0 │ │ │ │ │ R_ARM_REL32 .LC1 │ │ │ │ │ .word 0x00000143 │ │ │ │ │ │ │ │ │ │ -00001254 : │ │ │ │ │ +000013a8 : │ │ │ │ │ default_sz(): │ │ │ │ │ - push {r4, r5, r6, r7, r8, r9, sl, fp, lr} │ │ │ │ │ - sub sp, sp, #20 │ │ │ │ │ - mov r6, r0 │ │ │ │ │ + strd r4, [sp, #-36]! @ 0xffffffdc │ │ │ │ │ mov r5, r1 │ │ │ │ │ - mov r8, r2 │ │ │ │ │ + strd r6, [sp, #8] │ │ │ │ │ + mov r6, r0 │ │ │ │ │ + strd r8, [sp, #16] │ │ │ │ │ + strd sl, [sp, #24] │ │ │ │ │ mov fp, r3 │ │ │ │ │ + str lr, [sp, #32] │ │ │ │ │ + sub sp, sp, #20 │ │ │ │ │ + str r2, [sp, #8] │ │ │ │ │ bl 0 │ │ │ │ │ R_ARM_CALL fftw_mpi_mkdtensor │ │ │ │ │ mov r7, r0 │ │ │ │ │ mov r0, r6 │ │ │ │ │ bl 0 │ │ │ │ │ R_ARM_CALL fftw_mpi_mkdtensor │ │ │ │ │ cmp r6, #0 │ │ │ │ │ - str r0, [sp] │ │ │ │ │ - ble 150c │ │ │ │ │ + mov r9, r0 │ │ │ │ │ + ble 1690 │ │ │ │ │ sub r2, r6, #1 │ │ │ │ │ cmp r2, #2 │ │ │ │ │ - bls 1568 │ │ │ │ │ + bls 16f0 │ │ │ │ │ add r3, r0, #4 │ │ │ │ │ - add r1, r5, #24 │ │ │ │ │ - add r0, r0, #28 │ │ │ │ │ - cmp r1, r3 │ │ │ │ │ - cmphi r0, r5 │ │ │ │ │ + add r0, r5, #24 │ │ │ │ │ + cmp r0, r3 │ │ │ │ │ + add ip, r9, #28 │ │ │ │ │ orr r3, r3, r5 │ │ │ │ │ - movls ip, #1 │ │ │ │ │ - movhi ip, #0 │ │ │ │ │ + movhi r1, #0 │ │ │ │ │ + movls r1, #1 │ │ │ │ │ + cmp r5, ip │ │ │ │ │ + orrcs r1, r1, #1 │ │ │ │ │ tst r3, #7 │ │ │ │ │ movne r3, #0 │ │ │ │ │ - andeq r3, ip, #1 │ │ │ │ │ + andeq r3, r1, #1 │ │ │ │ │ cmp r3, #0 │ │ │ │ │ - beq 1568 │ │ │ │ │ + beq 16f0 │ │ │ │ │ bic ip, r6, #1 │ │ │ │ │ + mov r1, r9 │ │ │ │ │ + str fp, [sp] │ │ │ │ │ add ip, ip, r6, lsr #1 │ │ │ │ │ - add ip, r1, ip, lsl #3 │ │ │ │ │ - mov r3, r5 │ │ │ │ │ - mov lr, fp │ │ │ │ │ - str r8, [sp, #4] │ │ │ │ │ - ldrd sl, [r1, #-16] │ │ │ │ │ - ldrd r4, [r1, #-8] │ │ │ │ │ - ldrd r8, [r1, #-24] @ 0xffffffe8 │ │ │ │ │ + mov r3, r9 │ │ │ │ │ + mov lr, r5 │ │ │ │ │ + add ip, r9, ip, lsl #3 │ │ │ │ │ + ldrd sl, [r0, #-24] @ 0xffffffe8 │ │ │ │ │ add r1, r1, #24 │ │ │ │ │ - cmp r1, ip │ │ │ │ │ - strd r8, [r0, #-24] @ 0xffffffe8 │ │ │ │ │ - strd sl, [r0, #-16] │ │ │ │ │ - strd r4, [r0, #-8] │ │ │ │ │ add r0, r0, #24 │ │ │ │ │ - bne 12e0 │ │ │ │ │ - mov r5, r3 │ │ │ │ │ + ldrd r8, [r0, #-40] @ 0xffffffd8 │ │ │ │ │ + ldrd r4, [r0, #-32] @ 0xffffffe0 │ │ │ │ │ + strd sl, [r1, #-20] @ 0xffffffec │ │ │ │ │ + strd r8, [r1, #-12] │ │ │ │ │ + strd r4, [r1, #-4] │ │ │ │ │ + cmp r1, ip │ │ │ │ │ + bne 144c │ │ │ │ │ + mov r9, r3 │ │ │ │ │ bic r3, r6, #1 │ │ │ │ │ + ldr fp, [sp] │ │ │ │ │ cmp r6, r3 │ │ │ │ │ - ldr r8, [sp, #4] │ │ │ │ │ - mov fp, lr │ │ │ │ │ - beq 134c │ │ │ │ │ + mov r5, lr │ │ │ │ │ + beq 14b4 │ │ │ │ │ add r3, r3, r3, lsl #1 │ │ │ │ │ - lsl r1, r3, #2 │ │ │ │ │ - add r3, r5, r3, lsl #2 │ │ │ │ │ - ldr ip, [r3, #4] │ │ │ │ │ - ldr r0, [r3, #8] │ │ │ │ │ - ldr r3, [sp] │ │ │ │ │ - ldr lr, [r5, r1] │ │ │ │ │ - add r3, r3, r1 │ │ │ │ │ + lsl r3, r3, #2 │ │ │ │ │ + add r1, lr, r3 │ │ │ │ │ + ldr lr, [lr, r3] │ │ │ │ │ + add r3, r9, r3 │ │ │ │ │ + ldr ip, [r1, #4] │ │ │ │ │ + ldr r0, [r1, #8] │ │ │ │ │ str lr, [r3, #4] │ │ │ │ │ str ip, [r3, #8] │ │ │ │ │ str r0, [r3, #12] │ │ │ │ │ lsl r0, r6, #1 │ │ │ │ │ add lr, r0, r6 │ │ │ │ │ mov r3, #0 │ │ │ │ │ add ip, r7, #4 │ │ │ │ │ ldr r1, [r5, r3, lsl #2] │ │ │ │ │ str r1, [ip, r3, lsl #2] │ │ │ │ │ add r3, r3, #3 │ │ │ │ │ cmp r3, lr │ │ │ │ │ - bne 135c │ │ │ │ │ + bne 14c4 │ │ │ │ │ cmp fp, #0 │ │ │ │ │ - bne 151c │ │ │ │ │ + bne 16a0 │ │ │ │ │ add r0, r0, r6 │ │ │ │ │ mov r2, r5 │ │ │ │ │ - mov r3, r7 │ │ │ │ │ add r0, r7, r0, lsl #2 │ │ │ │ │ + mov r3, r7 │ │ │ │ │ ldr r1, [r2, #4] │ │ │ │ │ cmp r1, #0 │ │ │ │ │ ldreq r1, [r3, #4] │ │ │ │ │ str r1, [r3, #8] │ │ │ │ │ ldr r1, [r2, #8] │ │ │ │ │ cmp r1, #0 │ │ │ │ │ - bne 1484 │ │ │ │ │ + bne 15f0 │ │ │ │ │ ldr r1, [r3, #4] │ │ │ │ │ + add r2, r2, #12 │ │ │ │ │ str r1, [r3, #12]! │ │ │ │ │ cmp r3, r0 │ │ │ │ │ - add r2, r2, #12 │ │ │ │ │ - bne 1388 │ │ │ │ │ + bne 14f0 │ │ │ │ │ cmp r6, #0 │ │ │ │ │ - mov r9, #0 │ │ │ │ │ + mov r8, #0 │ │ │ │ │ + str r9, [sp] │ │ │ │ │ + ldr r9, [sp, #8] │ │ │ │ │ movle r3, #0 │ │ │ │ │ movgt r3, #1 │ │ │ │ │ - str r5, [sp, #8] │ │ │ │ │ - str fp, [sp, #12] │ │ │ │ │ - mov r5, r8 │ │ │ │ │ + str fp, [sp, #8] │ │ │ │ │ mov fp, r6 │ │ │ │ │ - mov r6, r9 │ │ │ │ │ + mov r6, r8 │ │ │ │ │ str r3, [sp, #4] │ │ │ │ │ + str r5, [sp, #12] │ │ │ │ │ mov r1, r6 │ │ │ │ │ mov r0, r7 │ │ │ │ │ bl 0 │ │ │ │ │ R_ARM_CALL fftw_mpi_num_blocks_total │ │ │ │ │ mov r1, r0 │ │ │ │ │ - mov r9, r0 │ │ │ │ │ - mov r0, r5 │ │ │ │ │ + mov r5, r0 │ │ │ │ │ + mov r0, r9 │ │ │ │ │ bl 0 <__aeabi_idiv> │ │ │ │ │ R_ARM_CALL __aeabi_idiv │ │ │ │ │ mov r1, r0 │ │ │ │ │ ldr r0, [sp, #4] │ │ │ │ │ cmp r1, #1 │ │ │ │ │ movle r0, #0 │ │ │ │ │ andgt r0, r0, #1 │ │ │ │ │ cmp r0, #0 │ │ │ │ │ - beq 1498 │ │ │ │ │ + beq 1604 │ │ │ │ │ ldr r3, [sp] │ │ │ │ │ mov r8, r7 │ │ │ │ │ - add sl, r3, r6, lsl #2 │ │ │ │ │ mov r4, #0 │ │ │ │ │ - b 1444 │ │ │ │ │ + add sl, r3, r6, lsl #2 │ │ │ │ │ + b 15b0 │ │ │ │ │ add r4, r4, #1 │ │ │ │ │ + add sl, sl, #12 │ │ │ │ │ cmp fp, r4 │ │ │ │ │ cmpgt r1, #1 │ │ │ │ │ - add sl, sl, #12 │ │ │ │ │ add r8, r8, #12 │ │ │ │ │ - ble 1498 │ │ │ │ │ + ble 1604 │ │ │ │ │ ldr r3, [sl, #8] │ │ │ │ │ cmp r3, #0 │ │ │ │ │ - bne 142c │ │ │ │ │ + bne 1598 │ │ │ │ │ ldr r0, [r8, #4] │ │ │ │ │ bl 0 │ │ │ │ │ R_ARM_CALL fftw_mpi_default_block │ │ │ │ │ add r3, r8, #8 │ │ │ │ │ mov r1, r0 │ │ │ │ │ str r0, [r3, r6, lsl #2] │ │ │ │ │ ldr r0, [r8, #4] │ │ │ │ │ bl 0 │ │ │ │ │ R_ARM_CALL fftw_mpi_num_blocks │ │ │ │ │ - mul r9, r0, r9 │ │ │ │ │ - mov r0, r5 │ │ │ │ │ - mov r1, r9 │ │ │ │ │ + mul r5, r0, r5 │ │ │ │ │ + mov r0, r9 │ │ │ │ │ + mov r1, r5 │ │ │ │ │ bl 0 <__aeabi_idiv> │ │ │ │ │ R_ARM_CALL __aeabi_idiv │ │ │ │ │ mov r1, r0 │ │ │ │ │ - b 142c │ │ │ │ │ + b 1598 │ │ │ │ │ str r1, [r3, #12]! │ │ │ │ │ cmp r3, r0 │ │ │ │ │ add r2, r2, #12 │ │ │ │ │ - bne 1388 │ │ │ │ │ - b 13b8 │ │ │ │ │ + bne 14f0 │ │ │ │ │ + b 1520 │ │ │ │ │ add r1, r6, #1 │ │ │ │ │ - cmp r1, #2 │ │ │ │ │ mov r6, #1 │ │ │ │ │ - bne 13e0 │ │ │ │ │ + cmp r1, #2 │ │ │ │ │ + bne 154c │ │ │ │ │ mov r6, fp │ │ │ │ │ - ldr fp, [sp, #12] │ │ │ │ │ - ldr r5, [sp, #8] │ │ │ │ │ + ldr r9, [sp] │ │ │ │ │ + ldr fp, [sp, #8] │ │ │ │ │ + ldr r5, [sp, #12] │ │ │ │ │ cmp fp, #0 │ │ │ │ │ - beq 14d8 │ │ │ │ │ - sub r3, r6, #1 │ │ │ │ │ + beq 1648 │ │ │ │ │ add r2, r6, r6, lsl #1 │ │ │ │ │ + sub r3, r6, #1 │ │ │ │ │ add r3, r3, r3, lsl #1 │ │ │ │ │ add r2, r5, r2, lsl #2 │ │ │ │ │ - ldr r2, [r2, #-12] │ │ │ │ │ add r3, r7, r3, lsl #2 │ │ │ │ │ + ldr r2, [r2, #-12] │ │ │ │ │ str r2, [r3, #4] │ │ │ │ │ cmp r6, #1 │ │ │ │ │ - beq 154c │ │ │ │ │ - ldr r0, [sp] │ │ │ │ │ + beq 16d0 │ │ │ │ │ + mov r0, r9 │ │ │ │ │ bl 0 │ │ │ │ │ R_ARM_CALL fftw_mpi_dtensor_destroy │ │ │ │ │ mov r1, #0 │ │ │ │ │ mov r0, r7 │ │ │ │ │ bl 0 │ │ │ │ │ R_ARM_CALL fftw_mpi_dtensor_canonical │ │ │ │ │ mov r4, r0 │ │ │ │ │ mov r0, r7 │ │ │ │ │ bl 0 │ │ │ │ │ R_ARM_CALL fftw_mpi_dtensor_destroy │ │ │ │ │ mov r0, r4 │ │ │ │ │ add sp, sp, #20 │ │ │ │ │ - pop {r4, r5, r6, r7, r8, r9, sl, fp, pc} │ │ │ │ │ + ldrd r4, [sp] │ │ │ │ │ + ldrd r6, [sp, #8] │ │ │ │ │ + ldrd r8, [sp, #16] │ │ │ │ │ + ldrd sl, [sp, #24] │ │ │ │ │ + add sp, sp, #32 │ │ │ │ │ + pop {pc} @ (ldr pc, [sp], #4) │ │ │ │ │ cmp fp, #0 │ │ │ │ │ - subne r2, r6, #1 │ │ │ │ │ lslne r0, r6, #1 │ │ │ │ │ - beq 13b8 │ │ │ │ │ + subne r2, r6, #1 │ │ │ │ │ + beq 1520 │ │ │ │ │ add r3, r0, r6 │ │ │ │ │ + add r2, r2, r2, lsl #1 │ │ │ │ │ + cmp r6, #0 │ │ │ │ │ add r3, r5, r3, lsl #2 │ │ │ │ │ + add r2, r7, r2, lsl #2 │ │ │ │ │ ldr r3, [r3, #-12] │ │ │ │ │ - add r2, r2, r2, lsl #1 │ │ │ │ │ add r3, r3, r3, lsr #31 │ │ │ │ │ asr r3, r3, #1 │ │ │ │ │ - add r2, r7, r2, lsl #2 │ │ │ │ │ add r3, r3, #1 │ │ │ │ │ - cmp r6, #0 │ │ │ │ │ str r3, [r2, #4] │ │ │ │ │ - bgt 1378 │ │ │ │ │ - b 13b8 │ │ │ │ │ + bgt 14e0 │ │ │ │ │ + b 1520 │ │ │ │ │ ldr r0, [r7, #4] │ │ │ │ │ bl 0 │ │ │ │ │ R_ARM_CALL fftw_is_prime │ │ │ │ │ cmp r0, #0 │ │ │ │ │ - ldrne r3, [r7, #4] │ │ │ │ │ - strne r3, [r7, #12] │ │ │ │ │ - strne r3, [r7, #8] │ │ │ │ │ - b 14e0 │ │ │ │ │ - ldr ip, [sp] │ │ │ │ │ - add sl, r6, r6, lsl #1 │ │ │ │ │ - mov r1, r5 │ │ │ │ │ - mov r3, ip │ │ │ │ │ + beq 1650 │ │ │ │ │ + ldr r3, [r7, #4] │ │ │ │ │ + str r3, [r7, #8] │ │ │ │ │ + str r3, [r7, #12] │ │ │ │ │ + b 1650 │ │ │ │ │ lsl r0, r6, #1 │ │ │ │ │ - add sl, ip, sl, lsl #2 │ │ │ │ │ + mov r1, r5 │ │ │ │ │ + mov r3, r9 │ │ │ │ │ + add sl, r0, r6 │ │ │ │ │ + add sl, r9, sl, lsl #2 │ │ │ │ │ ldm r1, {r4, lr} │ │ │ │ │ - ldr ip, [r1, #8] │ │ │ │ │ + add r1, r1, #12 │ │ │ │ │ + ldr ip, [r1, #-4] │ │ │ │ │ stmib r3, {r4, lr} │ │ │ │ │ str ip, [r3, #12]! │ │ │ │ │ cmp r3, sl │ │ │ │ │ - add r1, r1, #12 │ │ │ │ │ - bne 1580 │ │ │ │ │ - b 1350 │ │ │ │ │ + bne 1704 │ │ │ │ │ + b 14b8 │ │ │ │ │ │ │ │ │ │ -000015a0 : │ │ │ │ │ +00001724 : │ │ │ │ │ fftw_mpi_local_size_guru.part.0(): │ │ │ │ │ - push {r4, r5, r6, r7, r8, r9, sl, fp, lr} │ │ │ │ │ - sub sp, sp, #84 @ 0x54 │ │ │ │ │ - mov r4, r3 │ │ │ │ │ - mov r8, r0 │ │ │ │ │ - mov r5, r1 │ │ │ │ │ + strd r4, [sp, #-36]! @ 0xffffffdc │ │ │ │ │ + mov r5, r3 │ │ │ │ │ + mov r4, r0 │ │ │ │ │ + strd r6, [sp, #8] │ │ │ │ │ mov r0, r3 │ │ │ │ │ - add r1, sp, #40 @ 0x28 │ │ │ │ │ - mov r7, r2 │ │ │ │ │ - ldr r9, [sp, #120] @ 0x78 │ │ │ │ │ - ldr fp, [sp, #128] @ 0x80 │ │ │ │ │ + mov r7, r1 │ │ │ │ │ + strd r8, [sp, #16] │ │ │ │ │ + mov r6, r2 │ │ │ │ │ + strd sl, [sp, #24] │ │ │ │ │ + str lr, [sp, #32] │ │ │ │ │ + sub sp, sp, #68 @ 0x44 │ │ │ │ │ + add r1, sp, #24 │ │ │ │ │ bl 0 │ │ │ │ │ R_ARM_CALL MPI_Comm_rank │ │ │ │ │ - add r1, sp, #44 @ 0x2c │ │ │ │ │ - mov r0, r4 │ │ │ │ │ + add r1, sp, #28 │ │ │ │ │ + mov r0, r5 │ │ │ │ │ bl 0 │ │ │ │ │ R_ARM_CALL MPI_Comm_size │ │ │ │ │ - ldr r2, [sp, #44] @ 0x2c │ │ │ │ │ + ldr r2, [sp, #28] │ │ │ │ │ mov r3, #0 │ │ │ │ │ - mov r1, r5 │ │ │ │ │ - mov r0, r8 │ │ │ │ │ - bl 1254 │ │ │ │ │ - cmp r8, #1 │ │ │ │ │ - mov r6, r0 │ │ │ │ │ - bgt 1730 │ │ │ │ │ - bne 17e0 │ │ │ │ │ - ldr r3, [sp, #44] @ 0x2c │ │ │ │ │ - cmp r7, r3 │ │ │ │ │ - blt 16a0 │ │ │ │ │ - ldr r2, [sp, #140] @ 0x8c │ │ │ │ │ - lsrs r4, r2, #27 │ │ │ │ │ - bne 16a0 │ │ │ │ │ + mov r1, r7 │ │ │ │ │ + mov r0, r4 │ │ │ │ │ + bl 13a8 │ │ │ │ │ + cmp r4, #1 │ │ │ │ │ + mov r5, r0 │ │ │ │ │ + bgt 196c │ │ │ │ │ + bne 1988 │ │ │ │ │ + ldr r3, [sp, #28] │ │ │ │ │ + cmp r6, r3 │ │ │ │ │ + blt 18d8 │ │ │ │ │ + ldr r2, [sp, #124] @ 0x7c │ │ │ │ │ + lsrs r8, r2, #27 │ │ │ │ │ + bne 18d8 │ │ │ │ │ mov r0, #2 │ │ │ │ │ bl 0 │ │ │ │ │ R_ARM_CALL fftw_mpi_mkdtensor │ │ │ │ │ - mov r5, r0 │ │ │ │ │ - ldmib r6, {r0, r1, r2} │ │ │ │ │ - stmib r5, {r0, r1, r2} │ │ │ │ │ - ldr r3, [r6, #4] │ │ │ │ │ - str r3, [r5, #8] │ │ │ │ │ - ldr r1, [sp, #44] @ 0x2c │ │ │ │ │ - str r7, [r5, #24] │ │ │ │ │ - str r7, [r5, #16] │ │ │ │ │ - mov r0, r7 │ │ │ │ │ + ldrd r2, [r5, #4] │ │ │ │ │ + mov r7, r0 │ │ │ │ │ + ldr r1, [sp, #28] │ │ │ │ │ + strd r2, [r0, #4] │ │ │ │ │ + ldr r3, [r5, #12] │ │ │ │ │ + str r3, [r0, #12] │ │ │ │ │ + ldr r3, [r5, #4] │ │ │ │ │ + str r3, [r0, #8] │ │ │ │ │ + str r6, [r0, #16] │ │ │ │ │ + str r6, [r0, #24] │ │ │ │ │ + mov r0, r6 │ │ │ │ │ bl 0 │ │ │ │ │ R_ARM_CALL fftw_mpi_default_block │ │ │ │ │ - add r3, sp, #56 @ 0x38 │ │ │ │ │ - mov r2, r4 │ │ │ │ │ - mov r1, r5 │ │ │ │ │ - sub r4, r9, #4 │ │ │ │ │ - str r0, [r5, #20] │ │ │ │ │ - ldr r0, [sp, #40] @ 0x28 │ │ │ │ │ + add r3, sp, #40 @ 0x28 │ │ │ │ │ + mov r2, r8 │ │ │ │ │ + str r0, [r7, #20] │ │ │ │ │ + ldr r0, [sp, #24] │ │ │ │ │ + mov r1, r7 │ │ │ │ │ str r3, [sp] │ │ │ │ │ - add r3, sp, #48 @ 0x30 │ │ │ │ │ - bl 2d0 │ │ │ │ │ - mov r0, r5 │ │ │ │ │ + add r3, sp, #32 │ │ │ │ │ + bl 2f4 │ │ │ │ │ + mov r0, r7 │ │ │ │ │ bl 0 │ │ │ │ │ R_ARM_CALL fftw_mpi_dtensor_destroy │ │ │ │ │ - ldr r3, [sp, #52] @ 0x34 │ │ │ │ │ - ldr r0, [sp, #48] @ 0x30 │ │ │ │ │ - mov r1, r7 │ │ │ │ │ - mla r0, r3, r0, r7 │ │ │ │ │ - mov r5, #4 │ │ │ │ │ + ldr r0, [sp, #32] │ │ │ │ │ + mov r1, r6 │ │ │ │ │ + ldr r3, [sp, #36] @ 0x24 │ │ │ │ │ + mla r0, r3, r0, r6 │ │ │ │ │ sub r0, r0, #1 │ │ │ │ │ bl 0 <__aeabi_idiv> │ │ │ │ │ R_ARM_CALL __aeabi_idiv │ │ │ │ │ mov r1, r0 │ │ │ │ │ - mov r0, r8 │ │ │ │ │ + mov r0, r4 │ │ │ │ │ bl 0 │ │ │ │ │ R_ARM_CALL fftw_imax │ │ │ │ │ - mov sl, r0 │ │ │ │ │ - b 174c │ │ │ │ │ - ldr r2, [sp, #136] @ 0x88 │ │ │ │ │ + mov r7, r0 │ │ │ │ │ + mov r4, #4 │ │ │ │ │ + ldr r0, [sp, #24] │ │ │ │ │ + mov r2, #0 │ │ │ │ │ + mov r1, r5 │ │ │ │ │ + ldr r3, [sp, #108] @ 0x6c │ │ │ │ │ + str r3, [sp] │ │ │ │ │ + ldr r3, [sp, #104] @ 0x68 │ │ │ │ │ + bl 2f4 │ │ │ │ │ + ldr r0, [sp, #24] │ │ │ │ │ + mov r1, r5 │ │ │ │ │ + mov r2, #1 │ │ │ │ │ + ldr r3, [sp, #116] @ 0x74 │ │ │ │ │ + str r3, [sp] │ │ │ │ │ + ldr r3, [sp, #112] @ 0x70 │ │ │ │ │ + bl 2f4 │ │ │ │ │ + ldr r3, [sp, #104] @ 0x68 │ │ │ │ │ + mov r0, #1 │ │ │ │ │ + add r1, r3, r4 │ │ │ │ │ + ldr r2, [r3], #4 │ │ │ │ │ + cmp r1, r3 │ │ │ │ │ + mul r0, r2, r0 │ │ │ │ │ + bne 1870 │ │ │ │ │ + ldr r3, [sp, #112] @ 0x70 │ │ │ │ │ + mov r1, #1 │ │ │ │ │ + add r4, r3, r4 │ │ │ │ │ + ldr r2, [r3], #4 │ │ │ │ │ + cmp r4, r3 │ │ │ │ │ + mul r1, r2, r1 │ │ │ │ │ + bne 188c │ │ │ │ │ + bl 0 │ │ │ │ │ + R_ARM_CALL fftw_imax │ │ │ │ │ + mov r1, r0 │ │ │ │ │ + mov r0, r7 │ │ │ │ │ + bl 0 │ │ │ │ │ + R_ARM_CALL fftw_imax │ │ │ │ │ + mov r4, r0 │ │ │ │ │ + mov r0, r5 │ │ │ │ │ + bl 0 │ │ │ │ │ + R_ARM_CALL fftw_mpi_dtensor_destroy │ │ │ │ │ + mul r0, r4, r6 │ │ │ │ │ + add sp, sp, #68 @ 0x44 │ │ │ │ │ + ldrd r4, [sp] │ │ │ │ │ + ldrd r6, [sp, #8] │ │ │ │ │ + ldrd r8, [sp, #16] │ │ │ │ │ + ldrd sl, [sp, #24] │ │ │ │ │ + add sp, sp, #32 │ │ │ │ │ + pop {pc} @ (ldr pc, [sp], #4) │ │ │ │ │ + ldr r2, [sp, #120] @ 0x78 │ │ │ │ │ add r2, r2, #1 │ │ │ │ │ bics r2, r2, #2 │ │ │ │ │ - bne 1838 │ │ │ │ │ - add r2, sp, #56 @ 0x38 │ │ │ │ │ + bne 19d0 │ │ │ │ │ + add r2, sp, #40 @ 0x28 │ │ │ │ │ str r2, [sp, #12] │ │ │ │ │ - add r2, sp, #48 @ 0x30 │ │ │ │ │ + add r2, sp, #32 │ │ │ │ │ str r2, [sp, #8] │ │ │ │ │ - ldr r2, [sp, #136] @ 0x88 │ │ │ │ │ + ldr r2, [sp, #120] @ 0x78 │ │ │ │ │ str r2, [sp, #4] │ │ │ │ │ - ldr r2, [sp, #140] @ 0x8c │ │ │ │ │ + ldr r2, [sp, #124] @ 0x7c │ │ │ │ │ str r2, [sp] │ │ │ │ │ - ldmib r6, {r0, r1, r2} │ │ │ │ │ + ldmib r5, {r0, r1, r2} │ │ │ │ │ bl 0 │ │ │ │ │ R_ARM_CALL fftw_mpi_choose_radix │ │ │ │ │ - subs r4, r0, #0 │ │ │ │ │ - beq 1828 │ │ │ │ │ - mov r1, r4 │ │ │ │ │ - ldr r0, [r6, #4] │ │ │ │ │ + subs r8, r0, #0 │ │ │ │ │ + moveq r7, r4 │ │ │ │ │ + lsleq r4, r7, #2 │ │ │ │ │ + beq 182c │ │ │ │ │ + ldr r0, [r5, #4] │ │ │ │ │ + mov r1, r8 │ │ │ │ │ bl 0 <__aeabi_idiv> │ │ │ │ │ R_ARM_CALL __aeabi_idiv │ │ │ │ │ - ldr r3, [sp, #48] @ 0x30 │ │ │ │ │ + ldr r3, [sp, #32] │ │ │ │ │ + mov r9, r0 │ │ │ │ │ mul r1, r3, r0 │ │ │ │ │ - ldr r3, [sp, #140] @ 0x8c │ │ │ │ │ - mov r5, r0 │ │ │ │ │ + ldr r3, [sp, #124] @ 0x7c │ │ │ │ │ tst r3, #134217728 @ 0x8000000 │ │ │ │ │ - beq 19ac │ │ │ │ │ - mov sl, r8 │ │ │ │ │ - str r1, [r6, #8] │ │ │ │ │ - ldr r3, [sp, #60] @ 0x3c │ │ │ │ │ - mul r1, r3, r4 │ │ │ │ │ - ldr r3, [sp, #140] @ 0x8c │ │ │ │ │ + beq 1b48 │ │ │ │ │ + mov r7, r4 │ │ │ │ │ + str r1, [r5, #8] │ │ │ │ │ + ldr r3, [sp, #44] @ 0x2c │ │ │ │ │ + mul r1, r3, r8 │ │ │ │ │ + ldr r3, [sp, #124] @ 0x7c │ │ │ │ │ tst r3, #268435456 @ 0x10000000 │ │ │ │ │ - beq 19c8 │ │ │ │ │ - sub r4, r9, #4 │ │ │ │ │ - lsl r5, r8, #2 │ │ │ │ │ - str r1, [r6, #12] │ │ │ │ │ - b 174c │ │ │ │ │ + beq 1b64 │ │ │ │ │ + lsl r4, r4, #2 │ │ │ │ │ + str r1, [r5, #12] │ │ │ │ │ + b 182c │ │ │ │ │ mov r1, #0 │ │ │ │ │ bl 0 │ │ │ │ │ R_ARM_CALL fftw_mpi_is_block1d │ │ │ │ │ cmp r0, #0 │ │ │ │ │ - bne 1858 │ │ │ │ │ - mov sl, #1 │ │ │ │ │ - sub r4, r9, #4 │ │ │ │ │ - lsl r5, r8, #2 │ │ │ │ │ - ldr r3, [sp, #124] @ 0x7c │ │ │ │ │ - ldr r0, [sp, #40] @ 0x28 │ │ │ │ │ - mov r2, #0 │ │ │ │ │ - mov r1, r6 │ │ │ │ │ - str r3, [sp] │ │ │ │ │ - mov r3, r9 │ │ │ │ │ - bl 2d0 │ │ │ │ │ - ldr r3, [sp, #132] @ 0x84 │ │ │ │ │ - ldr r0, [sp, #40] @ 0x28 │ │ │ │ │ - mov r2, #1 │ │ │ │ │ - str r3, [sp] │ │ │ │ │ - mov r1, r6 │ │ │ │ │ - mov r3, fp │ │ │ │ │ - bl 2d0 │ │ │ │ │ - add r2, r4, r5 │ │ │ │ │ - mov r0, #1 │ │ │ │ │ - ldr r3, [r4, #4]! │ │ │ │ │ - cmp r2, r4 │ │ │ │ │ - mul r0, r3, r0 │ │ │ │ │ - bne 178c │ │ │ │ │ - sub r3, fp, #4 │ │ │ │ │ - add r5, r3, r5 │ │ │ │ │ - mov r1, #1 │ │ │ │ │ - ldr r2, [r3, #4]! │ │ │ │ │ - cmp r5, r3 │ │ │ │ │ - mul r1, r2, r1 │ │ │ │ │ - bne 17a8 │ │ │ │ │ - bl 0 │ │ │ │ │ - R_ARM_CALL fftw_imax │ │ │ │ │ - mov r1, r0 │ │ │ │ │ - mov r0, sl │ │ │ │ │ - bl 0 │ │ │ │ │ - R_ARM_CALL fftw_imax │ │ │ │ │ - mov r4, r0 │ │ │ │ │ - mov r0, r6 │ │ │ │ │ - bl 0 │ │ │ │ │ - R_ARM_CALL fftw_mpi_dtensor_destroy │ │ │ │ │ - mul r0, r4, r7 │ │ │ │ │ - add sp, sp, #84 @ 0x54 │ │ │ │ │ - pop {r4, r5, r6, r7, r8, r9, sl, fp, pc} │ │ │ │ │ - ldr r3, [sp, #124] @ 0x7c │ │ │ │ │ + bne 19f0 │ │ │ │ │ + lsl r4, r4, #2 │ │ │ │ │ + mov r7, #1 │ │ │ │ │ + b 182c │ │ │ │ │ + ldr r3, [sp, #108] @ 0x6c │ │ │ │ │ mov r1, r0 │ │ │ │ │ mov r2, #0 │ │ │ │ │ - ldr r0, [sp, #40] @ 0x28 │ │ │ │ │ - str r3, [sp] │ │ │ │ │ - mov r3, r9 │ │ │ │ │ - bl 2d0 │ │ │ │ │ - ldr r3, [sp, #132] @ 0x84 │ │ │ │ │ - ldr r0, [sp, #40] @ 0x28 │ │ │ │ │ - mov r1, r6 │ │ │ │ │ - mov sl, #1 │ │ │ │ │ + mov r7, #1 │ │ │ │ │ + ldr r0, [sp, #24] │ │ │ │ │ str r3, [sp] │ │ │ │ │ + ldr r3, [sp, #104] @ 0x68 │ │ │ │ │ + bl 2f4 │ │ │ │ │ + ldr r0, [sp, #24] │ │ │ │ │ + mov r1, r5 │ │ │ │ │ mov r2, #1 │ │ │ │ │ - mov r3, fp │ │ │ │ │ - bl 2d0 │ │ │ │ │ - mov r0, sl │ │ │ │ │ - mov r1, sl │ │ │ │ │ - b 17b8 │ │ │ │ │ - mov sl, r8 │ │ │ │ │ - sub r4, r9, #4 │ │ │ │ │ - lsl r5, r8, #2 │ │ │ │ │ - b 174c │ │ │ │ │ - ldr r2, [pc, #680] @ 1ae8 │ │ │ │ │ - ldr r0, [pc, #680] @ 1aec │ │ │ │ │ - ldr r1, [pc, #680] @ 1af0 │ │ │ │ │ + ldr r3, [sp, #116] @ 0x74 │ │ │ │ │ + str r3, [sp] │ │ │ │ │ + ldr r3, [sp, #112] @ 0x70 │ │ │ │ │ + bl 2f4 │ │ │ │ │ + mov r0, r7 │ │ │ │ │ + mov r1, r7 │ │ │ │ │ + b 189c │ │ │ │ │ + ldr r2, [pc, #652] @ 1c64 │ │ │ │ │ + ldr r0, [pc, #652] @ 1c68 │ │ │ │ │ + ldr r1, [pc, #652] @ 1c6c │ │ │ │ │ add r2, pc, r2 │ │ │ │ │ add r0, pc, r0 │ │ │ │ │ bl 0 │ │ │ │ │ R_ARM_CALL fftw_assertion_failed │ │ │ │ │ - ldr r3, [sp, #44] @ 0x2c │ │ │ │ │ - b 16b0 │ │ │ │ │ + ldr r3, [sp, #28] │ │ │ │ │ + b 18e8 │ │ │ │ │ mov r1, #1 │ │ │ │ │ - mov r0, r6 │ │ │ │ │ + mov r0, r5 │ │ │ │ │ bl 0 │ │ │ │ │ R_ARM_CALL fftw_mpi_is_block1d │ │ │ │ │ cmp r0, #0 │ │ │ │ │ - beq 1740 │ │ │ │ │ - ldmib r6, {r0, r1, r2} │ │ │ │ │ - add r3, sp, #56 @ 0x38 │ │ │ │ │ - add sl, r6, #16 │ │ │ │ │ - stm r3, {r0, r1, r2} │ │ │ │ │ - ldm sl, {r0, r1, r2} │ │ │ │ │ - add r3, sp, #80 @ 0x50 │ │ │ │ │ - mov r4, r6 │ │ │ │ │ - mov r5, #0 │ │ │ │ │ - stmdb r3, {r0, r1, r2} │ │ │ │ │ - ldmib r4, {r0, r1} │ │ │ │ │ + beq 197c │ │ │ │ │ + ldrd r2, [r5, #4] │ │ │ │ │ + add r7, r5, #16 │ │ │ │ │ + mov sl, r5 │ │ │ │ │ + mov r8, #0 │ │ │ │ │ + strd r2, [sp, #40] @ 0x28 │ │ │ │ │ + ldr r3, [r5, #12] │ │ │ │ │ + str r3, [sp, #48] @ 0x30 │ │ │ │ │ + ldrd r2, [r5, #16] │ │ │ │ │ + strd r2, [sp, #52] @ 0x34 │ │ │ │ │ + ldr r3, [r7, #8] │ │ │ │ │ + str r3, [sp, #60] @ 0x3c │ │ │ │ │ + ldmib sl, {r0, r1} │ │ │ │ │ bl 0 │ │ │ │ │ R_ARM_CALL fftw_mpi_num_blocks │ │ │ │ │ cmp r0, #1 │ │ │ │ │ - beq 19ec │ │ │ │ │ - add r3, r5, #1 │ │ │ │ │ + beq 1b84 │ │ │ │ │ + add r3, r8, #1 │ │ │ │ │ + add sl, sl, #12 │ │ │ │ │ cmp r3, #2 │ │ │ │ │ - add r4, r4, #12 │ │ │ │ │ - mov r5, #1 │ │ │ │ │ - bne 1890 │ │ │ │ │ - str r5, [sp, #20] │ │ │ │ │ - sub r4, r9, #4 │ │ │ │ │ - lsl r5, r8, #2 │ │ │ │ │ - ldr r1, [r6] │ │ │ │ │ + mov r8, #1 │ │ │ │ │ + bne 1a30 │ │ │ │ │ + lsl r4, r4, #2 │ │ │ │ │ + mov r9, r8 │ │ │ │ │ + ldr r1, [r5] │ │ │ │ │ cmp r1, #1 │ │ │ │ │ - ble 1ae0 │ │ │ │ │ + ble 1c5c │ │ │ │ │ add r1, r1, r1, lsl #1 │ │ │ │ │ - sub r1, r1, #3 │ │ │ │ │ - mov r8, r7 │ │ │ │ │ + mov r8, r6 │ │ │ │ │ mov r3, #0 │ │ │ │ │ - ldr r2, [sl, r3, lsl #2] │ │ │ │ │ + sub r1, r1, #3 │ │ │ │ │ + ldr r2, [r7, r3, lsl #2] │ │ │ │ │ add r3, r3, #3 │ │ │ │ │ cmp r1, r3 │ │ │ │ │ mul r8, r2, r8 │ │ │ │ │ - bne 18dc │ │ │ │ │ - ldr r1, [sp, #44] @ 0x2c │ │ │ │ │ + bne 1a78 │ │ │ │ │ + ldr r7, [r5, #4] │ │ │ │ │ mov r0, r8 │ │ │ │ │ - ldr sl, [r6, #4] │ │ │ │ │ + ldr r1, [sp, #28] │ │ │ │ │ bl 0 │ │ │ │ │ R_ARM_CALL fftw_mpi_default_block │ │ │ │ │ - ldr r2, [sp, #40] @ 0x28 │ │ │ │ │ + ldr r2, [sp, #24] │ │ │ │ │ mov r1, r0 │ │ │ │ │ mov r0, r8 │ │ │ │ │ bl 0 │ │ │ │ │ R_ARM_CALL fftw_mpi_block │ │ │ │ │ - mov r1, r7 │ │ │ │ │ - mla r0, sl, r0, r7 │ │ │ │ │ + mla r0, r7, r0, r6 │ │ │ │ │ + mov r1, r6 │ │ │ │ │ sub r0, r0, #1 │ │ │ │ │ bl 0 <__aeabi_idiv> │ │ │ │ │ R_ARM_CALL __aeabi_idiv │ │ │ │ │ mov r1, r0 │ │ │ │ │ - ldr r0, [sp, #20] │ │ │ │ │ + mov r0, r9 │ │ │ │ │ bl 0 │ │ │ │ │ R_ARM_CALL fftw_imax │ │ │ │ │ - ldr r1, [r6] │ │ │ │ │ - ldr r8, [r6, #4] │ │ │ │ │ + ldr r1, [r5] │ │ │ │ │ + mov r8, r0 │ │ │ │ │ + ldr r7, [r5, #4] │ │ │ │ │ cmp r1, #2 │ │ │ │ │ - mul r8, r7, r8 │ │ │ │ │ - str r0, [sp, #20] │ │ │ │ │ - ble 1968 │ │ │ │ │ + mul r7, r6, r7 │ │ │ │ │ + ble 1b04 │ │ │ │ │ add r1, r1, r1, lsl #1 │ │ │ │ │ - sub r1, r1, #6 │ │ │ │ │ mov r3, #0 │ │ │ │ │ - add r0, r6, #28 │ │ │ │ │ + add r0, r5, #28 │ │ │ │ │ + sub r1, r1, #6 │ │ │ │ │ ldr r2, [r0, r3, lsl #2] │ │ │ │ │ add r3, r3, #3 │ │ │ │ │ cmp r1, r3 │ │ │ │ │ - mul r8, r2, r8 │ │ │ │ │ - bne 1954 │ │ │ │ │ - ldr r1, [sp, #44] @ 0x2c │ │ │ │ │ - mov r0, r8 │ │ │ │ │ - ldr sl, [r6, #16] │ │ │ │ │ + mul r7, r2, r7 │ │ │ │ │ + bne 1af0 │ │ │ │ │ + ldr r9, [r5, #16] │ │ │ │ │ + mov r0, r7 │ │ │ │ │ + ldr r1, [sp, #28] │ │ │ │ │ bl 0 │ │ │ │ │ R_ARM_CALL fftw_mpi_default_block │ │ │ │ │ - ldr r2, [sp, #40] @ 0x28 │ │ │ │ │ + ldr r2, [sp, #24] │ │ │ │ │ mov r1, r0 │ │ │ │ │ - mov r0, r8 │ │ │ │ │ + mov r0, r7 │ │ │ │ │ bl 0 │ │ │ │ │ R_ARM_CALL fftw_mpi_block │ │ │ │ │ - mov r1, r7 │ │ │ │ │ - mla r0, sl, r0, r7 │ │ │ │ │ + mla r0, r9, r0, r6 │ │ │ │ │ + mov r1, r6 │ │ │ │ │ sub r0, r0, #1 │ │ │ │ │ bl 0 <__aeabi_idiv> │ │ │ │ │ R_ARM_CALL __aeabi_idiv │ │ │ │ │ mov r1, r0 │ │ │ │ │ - ldr r0, [sp, #20] │ │ │ │ │ + mov r0, r8 │ │ │ │ │ bl 0 │ │ │ │ │ R_ARM_CALL fftw_imax │ │ │ │ │ - mov sl, r0 │ │ │ │ │ - b 174c │ │ │ │ │ - ldr r3, [sp, #56] @ 0x38 │ │ │ │ │ + mov r7, r0 │ │ │ │ │ + b 182c │ │ │ │ │ + ldr r3, [sp, #40] @ 0x28 │ │ │ │ │ mov r0, #1 │ │ │ │ │ - mul r3, r4, r3 │ │ │ │ │ - str r3, [r6, #8] │ │ │ │ │ + mul r3, r8, r3 │ │ │ │ │ + str r3, [r5, #8] │ │ │ │ │ bl 0 │ │ │ │ │ R_ARM_CALL fftw_imax │ │ │ │ │ - mov sl, r0 │ │ │ │ │ - b 170c │ │ │ │ │ - mov r0, sl │ │ │ │ │ + mov r7, r0 │ │ │ │ │ + b 194c │ │ │ │ │ + mov r0, r7 │ │ │ │ │ + lsl r4, r4, #2 │ │ │ │ │ bl 0 │ │ │ │ │ R_ARM_CALL fftw_imax │ │ │ │ │ - ldr r3, [sp, #52] @ 0x34 │ │ │ │ │ - sub r4, r9, #4 │ │ │ │ │ - mul r3, r5, r3 │ │ │ │ │ - lsl r5, r8, #2 │ │ │ │ │ - str r3, [r6, #12] │ │ │ │ │ - mov sl, r0 │ │ │ │ │ - b 174c │ │ │ │ │ - ldr r1, [r4, #12] │ │ │ │ │ - ldr r0, [r4, #4] │ │ │ │ │ + ldr r3, [sp, #36] @ 0x24 │ │ │ │ │ + mov r7, r0 │ │ │ │ │ + mul r3, r9, r3 │ │ │ │ │ + str r3, [r5, #12] │ │ │ │ │ + b 182c │ │ │ │ │ + ldr r0, [sl, #4] │ │ │ │ │ + ldr r1, [sl, #12] │ │ │ │ │ bl 0 │ │ │ │ │ R_ARM_CALL fftw_mpi_num_blocks │ │ │ │ │ cmp r0, #1 │ │ │ │ │ - bne 18a0 │ │ │ │ │ - rsb r3, r5, #0 │ │ │ │ │ + mov r9, r0 │ │ │ │ │ + bne 1a40 │ │ │ │ │ + rsb r3, r8, #0 │ │ │ │ │ + ldr r1, [sp, #28] │ │ │ │ │ + sub sl, r8, #1 │ │ │ │ │ and r3, r3, #12 │ │ │ │ │ - mov r4, r5 │ │ │ │ │ - str r5, [sp, #28] │ │ │ │ │ - add r5, r6, r3 │ │ │ │ │ - ldr r1, [sp, #44] @ 0x2c │ │ │ │ │ - str r0, [sp, #20] │ │ │ │ │ - ldr r0, [r5, #4] │ │ │ │ │ - str r5, [sp, #36] @ 0x24 │ │ │ │ │ + and sl, sl, #12 │ │ │ │ │ + lsl r4, r4, #2 │ │ │ │ │ + add fp, r5, r3 │ │ │ │ │ + add sl, r5, sl │ │ │ │ │ + ldr r0, [fp, #4] │ │ │ │ │ bl 0 │ │ │ │ │ R_ARM_CALL fftw_mpi_default_block │ │ │ │ │ - eor r3, r4, #1 │ │ │ │ │ - str r3, [sp, #24] │ │ │ │ │ - sub r3, r4, #1 │ │ │ │ │ - and r3, r3, #12 │ │ │ │ │ - add r1, r6, r3 │ │ │ │ │ + eor r3, r8, #1 │ │ │ │ │ + str r0, [fp, #8] │ │ │ │ │ mov r2, #0 │ │ │ │ │ - str r1, [sp, #32] │ │ │ │ │ - sub r4, r9, #4 │ │ │ │ │ - str r0, [r5, #8] │ │ │ │ │ - ldr r3, [r1, #4] │ │ │ │ │ - str r3, [r1, #8] │ │ │ │ │ - ldr r3, [sp, #124] @ 0x7c │ │ │ │ │ + ldr r0, [sp, #24] │ │ │ │ │ + mov r1, r5 │ │ │ │ │ + str r3, [sp, #20] │ │ │ │ │ + ldr r3, [sl, #4] │ │ │ │ │ + str r3, [sl, #8] │ │ │ │ │ + ldr r3, [sp, #108] @ 0x6c │ │ │ │ │ str r3, [sp] │ │ │ │ │ - ldr r0, [sp, #40] @ 0x28 │ │ │ │ │ - mov r3, r9 │ │ │ │ │ - mov r1, r6 │ │ │ │ │ - bl 2d0 │ │ │ │ │ - ldr r2, [sp, #20] │ │ │ │ │ - lsl r5, r8, #2 │ │ │ │ │ - mov r3, r4 │ │ │ │ │ - add r8, r4, r8, lsl #2 │ │ │ │ │ - ldr r1, [r3, #4]! │ │ │ │ │ - cmp r3, r8 │ │ │ │ │ - mul r2, r1, r2 │ │ │ │ │ - bne 1a7c │ │ │ │ │ - mov r1, r2 │ │ │ │ │ + ldr r3, [sp, #104] @ 0x68 │ │ │ │ │ + bl 2f4 │ │ │ │ │ + ldr r3, [sp, #104] @ 0x68 │ │ │ │ │ + add r2, r3, r4 │ │ │ │ │ + ldr r1, [r3], #4 │ │ │ │ │ + cmp r2, r3 │ │ │ │ │ + mul r9, r1, r9 │ │ │ │ │ + bne 1bfc │ │ │ │ │ + mov r1, r9 │ │ │ │ │ + add r8, r8, r8, lsl #1 │ │ │ │ │ mov r0, #1 │ │ │ │ │ bl 0 │ │ │ │ │ R_ARM_CALL fftw_imax │ │ │ │ │ - ldr r3, [sp, #28] │ │ │ │ │ - add r2, sp, #80 @ 0x50 │ │ │ │ │ - add r3, r3, r3, lsl #1 │ │ │ │ │ - add r3, r2, r3, lsl #2 │ │ │ │ │ - sub r3, r3, #24 │ │ │ │ │ - str r0, [sp, #20] │ │ │ │ │ - ldm r3, {r0, r1, r2} │ │ │ │ │ - ldr r3, [sp, #36] @ 0x24 │ │ │ │ │ - stmib r3, {r0, r1, r2} │ │ │ │ │ - ldr r3, [sp, #24] │ │ │ │ │ - add r2, sp, #80 @ 0x50 │ │ │ │ │ + add r3, sp, #64 @ 0x40 │ │ │ │ │ + mov r9, r0 │ │ │ │ │ + add r3, r3, r8, lsl #2 │ │ │ │ │ + add r2, sp, #64 @ 0x40 │ │ │ │ │ + ldrd r0, [r3, #-24] @ 0xffffffe8 │ │ │ │ │ + strd r0, [fp, #4] │ │ │ │ │ + ldr r3, [r3, #-16] │ │ │ │ │ + str r3, [fp, #12] │ │ │ │ │ + ldr r3, [sp, #20] │ │ │ │ │ add r3, r3, r3, lsl #1 │ │ │ │ │ add r3, r2, r3, lsl #2 │ │ │ │ │ - sub r3, r3, #24 │ │ │ │ │ - ldm r3, {r0, r1, r2} │ │ │ │ │ - ldr r3, [sp, #32] │ │ │ │ │ - stmib r3, {r0, r1, r2} │ │ │ │ │ - b 18c0 │ │ │ │ │ - mov r8, r7 │ │ │ │ │ - b 18f0 │ │ │ │ │ - .word 0x0000029c │ │ │ │ │ + ldrd r0, [r3, #-24] @ 0xffffffe8 │ │ │ │ │ + strd r0, [sl, #4] │ │ │ │ │ + ldr r3, [r3, #-16] │ │ │ │ │ + str r3, [sl, #12] │ │ │ │ │ + b 1a5c │ │ │ │ │ + mov r8, r6 │ │ │ │ │ + b 1a8c │ │ │ │ │ + .word 0x00000280 │ │ │ │ │ R_ARM_REL32 .LC0 │ │ │ │ │ - .word 0x0000029c │ │ │ │ │ + .word 0x00000280 │ │ │ │ │ R_ARM_REL32 .LC1 │ │ │ │ │ .word 0x00000143 │ │ │ │ │ │ │ │ │ │ -00001af4 : │ │ │ │ │ +00001c70 : │ │ │ │ │ fftw_mpi_local_size_many_transposed.part.0(): │ │ │ │ │ - push {r4, r5, r6, r7, r8, r9, sl, fp, lr} │ │ │ │ │ + strd r4, [sp, #-36]! @ 0xffffffdc │ │ │ │ │ + mov r4, r0 │ │ │ │ │ + strd r6, [sp, #8] │ │ │ │ │ add r7, r0, r0, lsl #1 │ │ │ │ │ + strd r8, [sp, #16] │ │ │ │ │ + mov r8, r1 │ │ │ │ │ + mov r9, r3 │ │ │ │ │ lsl r7, r7, #2 │ │ │ │ │ - mov r4, r0 │ │ │ │ │ + strd sl, [sp, #24] │ │ │ │ │ + mov sl, r2 │ │ │ │ │ + str lr, [sp, #32] │ │ │ │ │ sub sp, sp, #28 │ │ │ │ │ mov r0, r7 │ │ │ │ │ - mov r9, r1 │ │ │ │ │ - mov sl, r2 │ │ │ │ │ - mov r8, r3 │ │ │ │ │ bl 0 │ │ │ │ │ R_ARM_CALL fftw_malloc_plain │ │ │ │ │ cmp r4, #0 │ │ │ │ │ mov r6, r0 │ │ │ │ │ lsl r0, r4, #4 │ │ │ │ │ - ble 1c10 │ │ │ │ │ - sub ip, r9, #4 │ │ │ │ │ - mov r3, r6 │ │ │ │ │ + ble 1db4 │ │ │ │ │ lsl fp, r4, #2 │ │ │ │ │ - add lr, ip, r4, lsl #2 │ │ │ │ │ - ldr r2, [ip, #4]! │ │ │ │ │ - str r2, [r3, #8] │ │ │ │ │ + mov ip, r8 │ │ │ │ │ + mov r3, r6 │ │ │ │ │ + add lr, r8, fp │ │ │ │ │ + ldr r2, [ip], #4 │ │ │ │ │ cmp lr, ip │ │ │ │ │ str r2, [r3, #4] │ │ │ │ │ + str r2, [r3, #8] │ │ │ │ │ str r2, [r3], #12 │ │ │ │ │ - bne 1b3c │ │ │ │ │ + bne 1cc8 │ │ │ │ │ bl 0 │ │ │ │ │ R_ARM_CALL fftw_malloc_plain │ │ │ │ │ cmp r4, #1 │ │ │ │ │ - str r8, [r6, #4] │ │ │ │ │ mov r5, r0 │ │ │ │ │ - beq 1c20 │ │ │ │ │ - ldr r3, [r9, #4] │ │ │ │ │ + str r9, [r6, #4] │ │ │ │ │ + beq 1dc4 │ │ │ │ │ + ldr r3, [r8, #4] │ │ │ │ │ + add r7, r5, r7 │ │ │ │ │ ldr r2, [sp, #64] @ 0x40 │ │ │ │ │ - add r0, r0, fp │ │ │ │ │ cmp r3, r2 │ │ │ │ │ movgt r3, r2 │ │ │ │ │ + strle r9, [r6, #8] │ │ │ │ │ strgt r3, [r6, #20] │ │ │ │ │ - add r3, r5, fp, lsl #1 │ │ │ │ │ - mov r2, #0 │ │ │ │ │ - add r1, r3, fp │ │ │ │ │ - strle r8, [r6, #8] │ │ │ │ │ - stmib sp, {r0, r3} │ │ │ │ │ - str r2, [sp, #20] │ │ │ │ │ + add r3, r0, fp │ │ │ │ │ + mov r0, #0 │ │ │ │ │ + add r2, r3, fp │ │ │ │ │ + str r5, [sp] │ │ │ │ │ + add r1, r2, fp │ │ │ │ │ + str r3, [sp, #4] │ │ │ │ │ ldr r3, [sp, #68] @ 0x44 │ │ │ │ │ - mov r0, r4 │ │ │ │ │ - str r2, [sp, #16] │ │ │ │ │ - str r1, [sp, #12] │ │ │ │ │ + str r2, [sp, #8] │ │ │ │ │ mov r2, sl │ │ │ │ │ + str r1, [sp, #12] │ │ │ │ │ mov r1, r6 │ │ │ │ │ - str r5, [sp] │ │ │ │ │ - bl 15a0 │ │ │ │ │ - ldr r2, [sp, #72] @ 0x48 │ │ │ │ │ + str r0, [sp, #16] │ │ │ │ │ + str r0, [sp, #20] │ │ │ │ │ + mov r0, r4 │ │ │ │ │ + bl 1724 │ │ │ │ │ ldr r3, [r5] │ │ │ │ │ + mov r8, r0 │ │ │ │ │ + ldr r2, [sp, #72] @ 0x48 │ │ │ │ │ str r3, [r2] │ │ │ │ │ - ldr r2, [sp, #76] @ 0x4c │ │ │ │ │ ldr r3, [r5, r4, lsl #2] │ │ │ │ │ - str r3, [r2] │ │ │ │ │ add r4, r5, r4, lsl #3 │ │ │ │ │ - ldr r2, [sp, #80] @ 0x50 │ │ │ │ │ + ldr r2, [sp, #76] @ 0x4c │ │ │ │ │ + str r3, [r2] │ │ │ │ │ ldr r3, [r4, #4] │ │ │ │ │ - add r7, r5, r7 │ │ │ │ │ + ldr r2, [sp, #80] @ 0x50 │ │ │ │ │ str r3, [r2] │ │ │ │ │ ldr r2, [r7, #4] │ │ │ │ │ - mov r8, r0 │ │ │ │ │ - ldr r3, [sp, #84] @ 0x54 │ │ │ │ │ mov r0, r5 │ │ │ │ │ + ldr r3, [sp, #84] @ 0x54 │ │ │ │ │ str r2, [r3] │ │ │ │ │ bl 0 │ │ │ │ │ R_ARM_CALL fftw_ifree │ │ │ │ │ mov r0, r6 │ │ │ │ │ bl 0 │ │ │ │ │ R_ARM_CALL fftw_ifree │ │ │ │ │ mov r0, r8 │ │ │ │ │ add sp, sp, #28 │ │ │ │ │ - pop {r4, r5, r6, r7, r8, r9, sl, fp, pc} │ │ │ │ │ + ldrd r4, [sp] │ │ │ │ │ + ldrd r6, [sp, #8] │ │ │ │ │ + ldrd r8, [sp, #16] │ │ │ │ │ + ldrd sl, [sp, #24] │ │ │ │ │ + add sp, sp, #32 │ │ │ │ │ + pop {pc} @ (ldr pc, [sp], #4) │ │ │ │ │ bl 0 │ │ │ │ │ R_ARM_CALL fftw_malloc_plain │ │ │ │ │ lsl fp, r4, #2 │ │ │ │ │ - str r8, [r6, #4] │ │ │ │ │ mov r5, r0 │ │ │ │ │ - add r3, r5, fp, lsl #1 │ │ │ │ │ - mov r2, #0 │ │ │ │ │ - add r1, r3, fp │ │ │ │ │ - add r0, r5, fp │ │ │ │ │ - str r8, [r6, #8] │ │ │ │ │ - stmib sp, {r0, r3} │ │ │ │ │ - str r2, [sp, #20] │ │ │ │ │ + str r9, [r6, #4] │ │ │ │ │ + add r3, r5, fp │ │ │ │ │ + mov r0, #0 │ │ │ │ │ + str r9, [r6, #8] │ │ │ │ │ + add r2, r3, fp │ │ │ │ │ + str r5, [sp] │ │ │ │ │ + add r1, r2, fp │ │ │ │ │ + str r3, [sp, #4] │ │ │ │ │ ldr r3, [sp, #68] @ 0x44 │ │ │ │ │ - str r2, [sp, #16] │ │ │ │ │ - str r1, [sp, #12] │ │ │ │ │ + str r2, [sp, #8] │ │ │ │ │ mov r2, sl │ │ │ │ │ + str r1, [sp, #12] │ │ │ │ │ mov r1, r6 │ │ │ │ │ + str r0, [sp, #16] │ │ │ │ │ + str r0, [sp, #20] │ │ │ │ │ mov r0, r4 │ │ │ │ │ - str r5, [sp] │ │ │ │ │ - bl 15a0 │ │ │ │ │ - ldr r2, [sp, #72] @ 0x48 │ │ │ │ │ + bl 1724 │ │ │ │ │ ldr r3, [r5] │ │ │ │ │ + mov r8, r0 │ │ │ │ │ + ldr r2, [sp, #72] @ 0x48 │ │ │ │ │ str r3, [r2] │ │ │ │ │ - ldr r2, [sp, #76] @ 0x4c │ │ │ │ │ ldr r3, [r5, r4, lsl #2] │ │ │ │ │ + ldr r2, [sp, #76] @ 0x4c │ │ │ │ │ str r3, [r2] │ │ │ │ │ ldr r3, [sp, #72] @ 0x48 │ │ │ │ │ ldr r2, [sp, #80] @ 0x50 │ │ │ │ │ ldr r3, [r3] │ │ │ │ │ str r3, [r2] │ │ │ │ │ ldr r3, [sp, #76] @ 0x4c │ │ │ │ │ ldr r2, [r3] │ │ │ │ │ - mov r8, r0 │ │ │ │ │ - b 1bec │ │ │ │ │ + b 1d7c │ │ │ │ │ │ │ │ │ │ -00001c94 : │ │ │ │ │ +00001e3c : │ │ │ │ │ plan_guru_rdft2.constprop.0(): │ │ │ │ │ - push {r4, r5, r6, r7, r8, lr} │ │ │ │ │ - ldr r6, [pc, #428] @ 1e4c │ │ │ │ │ + strd r4, [sp, #-24]! @ 0xffffffe8 │ │ │ │ │ mov r5, r3 │ │ │ │ │ + mov r4, r0 │ │ │ │ │ + strd r6, [sp, #8] │ │ │ │ │ + mov r7, r2 │ │ │ │ │ + ldr r6, [pc, #440] @ 2010 │ │ │ │ │ + str r8, [sp, #16] │ │ │ │ │ + mov r8, r1 │ │ │ │ │ + str lr, [sp, #20] │ │ │ │ │ + sub sp, sp, #24 │ │ │ │ │ add r6, pc, r6 │ │ │ │ │ ldr r3, [r6] │ │ │ │ │ - sub sp, sp, #24 │ │ │ │ │ cmp r3, #0 │ │ │ │ │ - mov r4, r0 │ │ │ │ │ - mov r8, r1 │ │ │ │ │ - mov r7, r2 │ │ │ │ │ - beq 1e08 │ │ │ │ │ + beq 1fb4 │ │ │ │ │ ldr r3, [r4] │ │ │ │ │ cmp r3, #0 │ │ │ │ │ - ble 1dfc │ │ │ │ │ + ble 1f98 │ │ │ │ │ ldr r3, [r4, #4] │ │ │ │ │ cmp r3, #0 │ │ │ │ │ - blt 1dfc │ │ │ │ │ + blt 1f98 │ │ │ │ │ ldr r3, [r4, #8] │ │ │ │ │ cmp r3, #0 │ │ │ │ │ - blt 1dfc │ │ │ │ │ + blt 1f98 │ │ │ │ │ ldr r3, [r4, #12] │ │ │ │ │ cmp r3, #0 │ │ │ │ │ - ble 1dfc │ │ │ │ │ + ble 1f98 │ │ │ │ │ ldr r3, [r4, #16] │ │ │ │ │ cmp r3, #0 │ │ │ │ │ - blt 1dfc │ │ │ │ │ + blt 1f98 │ │ │ │ │ ldr r3, [r4, #20] │ │ │ │ │ cmp r3, #0 │ │ │ │ │ - blt 1dfc │ │ │ │ │ + blt 1f98 │ │ │ │ │ ldr r3, [r4, #24] │ │ │ │ │ cmp r3, #0 │ │ │ │ │ - ble 1dfc │ │ │ │ │ + ble 1f98 │ │ │ │ │ ldr r3, [r4, #28] │ │ │ │ │ cmp r3, #0 │ │ │ │ │ - blt 1dfc │ │ │ │ │ + blt 1f98 │ │ │ │ │ ldr r3, [r4, #32] │ │ │ │ │ cmp r3, #0 │ │ │ │ │ - blt 1dfc │ │ │ │ │ + blt 1f98 │ │ │ │ │ add r1, sp, #20 │ │ │ │ │ mov r0, r5 │ │ │ │ │ bl 0 │ │ │ │ │ R_ARM_CALL MPI_Comm_size │ │ │ │ │ ldr r1, [sp, #20] │ │ │ │ │ mov r2, #1 │ │ │ │ │ mov r0, r4 │ │ │ │ │ - bl 3a8 │ │ │ │ │ + bl 3f0 │ │ │ │ │ ldr ip, [r4, #24] │ │ │ │ │ mov r1, #0 │ │ │ │ │ + mov r6, r0 │ │ │ │ │ add ip, ip, ip, lsr #31 │ │ │ │ │ asr ip, ip, #1 │ │ │ │ │ add ip, ip, #1 │ │ │ │ │ str ip, [r0, #28] │ │ │ │ │ - mov r6, r0 │ │ │ │ │ bl 0 │ │ │ │ │ R_ARM_CALL fftw_mpi_num_blocks_total │ │ │ │ │ ldr r3, [sp, #20] │ │ │ │ │ cmp r0, r3 │ │ │ │ │ - bgt 1df4 │ │ │ │ │ + bgt 1f90 │ │ │ │ │ mov r1, #1 │ │ │ │ │ mov r0, r6 │ │ │ │ │ bl 0 │ │ │ │ │ R_ARM_CALL fftw_mpi_num_blocks_total │ │ │ │ │ ldr r3, [sp, #20] │ │ │ │ │ cmp r0, r3 │ │ │ │ │ - bgt 1df4 │ │ │ │ │ + bgt 1f90 │ │ │ │ │ ldr r3, [r4, #24] │ │ │ │ │ - str r3, [r6, #28] │ │ │ │ │ ldr r2, [sp, #48] @ 0x30 │ │ │ │ │ + str r3, [r6, #28] │ │ │ │ │ ldr r3, [sp, #52] @ 0x34 │ │ │ │ │ cmp r2, #0 │ │ │ │ │ lsr r3, r3, #27 │ │ │ │ │ str r3, [sp, #8] │ │ │ │ │ - moveq r3, r2 │ │ │ │ │ - movne r3, #4 │ │ │ │ │ - moveq r2, r8 │ │ │ │ │ - movne r2, r7 │ │ │ │ │ - streq r3, [sp, #4] │ │ │ │ │ - strne r3, [sp, #4] │ │ │ │ │ - moveq r3, r7 │ │ │ │ │ - movne r3, r8 │ │ │ │ │ - streq r5, [sp] │ │ │ │ │ - strne r5, [sp] │ │ │ │ │ + bne 1ff8 │ │ │ │ │ + mov r3, r7 │ │ │ │ │ + str r5, [sp] │ │ │ │ │ + str r2, [sp, #4] │ │ │ │ │ + mov r2, r8 │ │ │ │ │ mov r1, #1 │ │ │ │ │ mov r0, r6 │ │ │ │ │ bl 0 │ │ │ │ │ R_ARM_CALL fftw_mpi_mkproblem_rdft2_d │ │ │ │ │ ldr r1, [sp, #52] @ 0x34 │ │ │ │ │ mov r2, r0 │ │ │ │ │ mov r0, #0 │ │ │ │ │ bl 0 │ │ │ │ │ R_ARM_CALL fftw_mkapiplan │ │ │ │ │ - add sp, sp, #24 │ │ │ │ │ - pop {r4, r5, r6, r7, r8, pc} │ │ │ │ │ + b 1f9c │ │ │ │ │ mov r0, r6 │ │ │ │ │ bl 0 │ │ │ │ │ R_ARM_CALL fftw_mpi_dtensor_destroy │ │ │ │ │ mov r0, #0 │ │ │ │ │ add sp, sp, #24 │ │ │ │ │ - pop {r4, r5, r6, r7, r8, pc} │ │ │ │ │ + ldrd r4, [sp] │ │ │ │ │ + ldrd r6, [sp, #8] │ │ │ │ │ + ldr r8, [sp, #16] │ │ │ │ │ + add sp, sp, #20 │ │ │ │ │ + pop {pc} @ (ldr pc, [sp], #4) │ │ │ │ │ bl 0 │ │ │ │ │ R_ARM_CALL fftw_the_planner │ │ │ │ │ - ldr r2, [pc, #60] @ 1e50 │ │ │ │ │ + ldr r2, [pc, #84] @ 2014 │ │ │ │ │ add r2, pc, r2 │ │ │ │ │ str r2, [r0, #8] │ │ │ │ │ - ldr r2, [pc, #52] @ 1e54 │ │ │ │ │ + ldr r2, [pc, #76] @ 2018 │ │ │ │ │ add r2, pc, r2 │ │ │ │ │ str r2, [r0, #12] │ │ │ │ │ - ldr r2, [pc, #44] @ 1e58 │ │ │ │ │ + ldr r2, [pc, #68] @ 201c │ │ │ │ │ add r2, pc, r2 │ │ │ │ │ str r2, [r0, #16] │ │ │ │ │ - ldr r2, [pc, #36] @ 1e5c │ │ │ │ │ + ldr r2, [pc, #60] @ 2020 │ │ │ │ │ add r2, pc, r2 │ │ │ │ │ str r2, [r0, #20] │ │ │ │ │ bl 0 │ │ │ │ │ R_ARM_CALL fftw_mpi_conf_standard │ │ │ │ │ mov r3, #1 │ │ │ │ │ str r3, [r6] │ │ │ │ │ - b 1cc0 │ │ │ │ │ + b 1e74 │ │ │ │ │ + mov r3, #4 │ │ │ │ │ + mov r2, r7 │ │ │ │ │ + str r5, [sp] │ │ │ │ │ + str r3, [sp, #4] │ │ │ │ │ + mov r3, r8 │ │ │ │ │ + b 1f70 │ │ │ │ │ .word 0x000001a4 │ │ │ │ │ R_ARM_REL32 .bss │ │ │ │ │ - .word 0xffffe41c │ │ │ │ │ - .word 0xffffe2b8 │ │ │ │ │ - .word 0xffffe248 │ │ │ │ │ - .word 0xffffe1c4 │ │ │ │ │ + .word 0xffffe294 │ │ │ │ │ + .word 0xffffe10c │ │ │ │ │ + .word 0xffffe0a8 │ │ │ │ │ + .word 0xffffe018 │ │ │ │ │ │ │ │ │ │ -00001e60 : │ │ │ │ │ +00002024 : │ │ │ │ │ plan_guru_rdft2.constprop.1(): │ │ │ │ │ - push {r4, r5, r6, r7, r8, lr} │ │ │ │ │ - ldr r5, [pc, #392] @ 1ff4 │ │ │ │ │ + strd r4, [sp, #-24]! @ 0xffffffe8 │ │ │ │ │ + mov r4, r0 │ │ │ │ │ + ldr r5, [pc, #416] @ 21d4 │ │ │ │ │ + strd r6, [sp, #8] │ │ │ │ │ mov r6, r3 │ │ │ │ │ + mov r7, r2 │ │ │ │ │ + str r8, [sp, #16] │ │ │ │ │ + mov r8, r1 │ │ │ │ │ + str lr, [sp, #20] │ │ │ │ │ + sub sp, sp, #24 │ │ │ │ │ add r5, pc, r5 │ │ │ │ │ ldr r3, [r5] │ │ │ │ │ - sub sp, sp, #24 │ │ │ │ │ cmp r3, #0 │ │ │ │ │ - mov r4, r0 │ │ │ │ │ - mov r8, r1 │ │ │ │ │ - mov r7, r2 │ │ │ │ │ - beq 1f9c │ │ │ │ │ + beq 2154 │ │ │ │ │ ldr r3, [r4] │ │ │ │ │ cmp r3, #0 │ │ │ │ │ - ble 1fe8 │ │ │ │ │ + ble 21a0 │ │ │ │ │ ldr r3, [r4, #4] │ │ │ │ │ cmp r3, #0 │ │ │ │ │ - blt 1fe8 │ │ │ │ │ + blt 21a0 │ │ │ │ │ ldr r3, [r4, #8] │ │ │ │ │ cmp r3, #0 │ │ │ │ │ - blt 1fe8 │ │ │ │ │ + blt 21a0 │ │ │ │ │ ldr r3, [r4, #12] │ │ │ │ │ cmp r3, #0 │ │ │ │ │ - ble 1fe8 │ │ │ │ │ + ble 21a0 │ │ │ │ │ ldr r3, [r4, #16] │ │ │ │ │ cmp r3, #0 │ │ │ │ │ - blt 1fe8 │ │ │ │ │ + blt 21a0 │ │ │ │ │ ldr r3, [r4, #20] │ │ │ │ │ cmp r3, #0 │ │ │ │ │ - blt 1fe8 │ │ │ │ │ + blt 21a0 │ │ │ │ │ add r1, sp, #20 │ │ │ │ │ mov r0, r6 │ │ │ │ │ bl 0 │ │ │ │ │ R_ARM_CALL MPI_Comm_size │ │ │ │ │ ldr r1, [sp, #20] │ │ │ │ │ mov r2, #1 │ │ │ │ │ mov r0, r4 │ │ │ │ │ - bl 9ec │ │ │ │ │ + bl a90 │ │ │ │ │ ldr ip, [r4, #12] │ │ │ │ │ mov r1, #0 │ │ │ │ │ + mov r5, r0 │ │ │ │ │ add ip, ip, ip, lsr #31 │ │ │ │ │ asr ip, ip, #1 │ │ │ │ │ add ip, ip, #1 │ │ │ │ │ str ip, [r0, #16] │ │ │ │ │ - mov r5, r0 │ │ │ │ │ bl 0 │ │ │ │ │ R_ARM_CALL fftw_mpi_num_blocks_total │ │ │ │ │ ldr r3, [sp, #20] │ │ │ │ │ cmp r0, r3 │ │ │ │ │ - bgt 1fe0 │ │ │ │ │ + bgt 2198 │ │ │ │ │ mov r1, #1 │ │ │ │ │ mov r0, r5 │ │ │ │ │ bl 0 │ │ │ │ │ R_ARM_CALL fftw_mpi_num_blocks_total │ │ │ │ │ ldr r3, [sp, #20] │ │ │ │ │ cmp r0, r3 │ │ │ │ │ - bgt 1fe0 │ │ │ │ │ + bgt 2198 │ │ │ │ │ ldr r3, [r4, #12] │ │ │ │ │ - str r3, [r5, #16] │ │ │ │ │ ldr r2, [sp, #48] @ 0x30 │ │ │ │ │ + str r3, [r5, #16] │ │ │ │ │ ldr r3, [sp, #52] @ 0x34 │ │ │ │ │ cmp r2, #0 │ │ │ │ │ lsr r3, r3, #27 │ │ │ │ │ str r3, [sp, #8] │ │ │ │ │ - moveq r3, r2 │ │ │ │ │ - movne r3, #4 │ │ │ │ │ - moveq r2, r8 │ │ │ │ │ - movne r2, r7 │ │ │ │ │ - streq r3, [sp, #4] │ │ │ │ │ - strne r3, [sp, #4] │ │ │ │ │ - moveq r3, r7 │ │ │ │ │ - movne r3, r8 │ │ │ │ │ - streq r6, [sp] │ │ │ │ │ - strne r6, [sp] │ │ │ │ │ + bne 21bc │ │ │ │ │ + mov r3, r7 │ │ │ │ │ + str r6, [sp] │ │ │ │ │ + str r2, [sp, #4] │ │ │ │ │ + mov r2, r8 │ │ │ │ │ mov r1, #1 │ │ │ │ │ mov r0, r5 │ │ │ │ │ bl 0 │ │ │ │ │ R_ARM_CALL fftw_mpi_mkproblem_rdft2_d │ │ │ │ │ ldr r1, [sp, #52] @ 0x34 │ │ │ │ │ mov r2, r0 │ │ │ │ │ mov r0, #0 │ │ │ │ │ bl 0 │ │ │ │ │ R_ARM_CALL fftw_mkapiplan │ │ │ │ │ - add sp, sp, #24 │ │ │ │ │ - pop {r4, r5, r6, r7, r8, pc} │ │ │ │ │ + b 21a4 │ │ │ │ │ bl 0 │ │ │ │ │ R_ARM_CALL fftw_the_planner │ │ │ │ │ - ldr r2, [pc, #80] @ 1ff8 │ │ │ │ │ + ldr r2, [pc, #120] @ 21d8 │ │ │ │ │ add r2, pc, r2 │ │ │ │ │ str r2, [r0, #8] │ │ │ │ │ - ldr r2, [pc, #72] @ 1ffc │ │ │ │ │ + ldr r2, [pc, #112] @ 21dc │ │ │ │ │ add r2, pc, r2 │ │ │ │ │ str r2, [r0, #12] │ │ │ │ │ - ldr r2, [pc, #64] @ 2000 │ │ │ │ │ + ldr r2, [pc, #104] @ 21e0 │ │ │ │ │ add r2, pc, r2 │ │ │ │ │ str r2, [r0, #16] │ │ │ │ │ - ldr r2, [pc, #56] @ 2004 │ │ │ │ │ + ldr r2, [pc, #96] @ 21e4 │ │ │ │ │ add r2, pc, r2 │ │ │ │ │ str r2, [r0, #20] │ │ │ │ │ bl 0 │ │ │ │ │ R_ARM_CALL fftw_mpi_conf_standard │ │ │ │ │ mov r3, #1 │ │ │ │ │ str r3, [r5] │ │ │ │ │ - b 1e8c │ │ │ │ │ + b 205c │ │ │ │ │ mov r0, r5 │ │ │ │ │ bl 0 │ │ │ │ │ R_ARM_CALL fftw_mpi_dtensor_destroy │ │ │ │ │ mov r0, #0 │ │ │ │ │ add sp, sp, #24 │ │ │ │ │ - pop {r4, r5, r6, r7, r8, pc} │ │ │ │ │ + ldrd r4, [sp] │ │ │ │ │ + ldrd r6, [sp, #8] │ │ │ │ │ + ldr r8, [sp, #16] │ │ │ │ │ + add sp, sp, #20 │ │ │ │ │ + pop {pc} @ (ldr pc, [sp], #4) │ │ │ │ │ + mov r3, #4 │ │ │ │ │ + mov r2, r7 │ │ │ │ │ + str r6, [sp] │ │ │ │ │ + str r3, [sp, #4] │ │ │ │ │ + mov r3, r8 │ │ │ │ │ + b 2134 │ │ │ │ │ .word 0x00000180 │ │ │ │ │ R_ARM_REL32 .bss │ │ │ │ │ - .word 0xffffe288 │ │ │ │ │ - .word 0xffffe124 │ │ │ │ │ - .word 0xffffe0b4 │ │ │ │ │ - .word 0xffffe030 │ │ │ │ │ + .word 0xffffe0f4 │ │ │ │ │ + .word 0xffffdf6c │ │ │ │ │ + .word 0xffffdf08 │ │ │ │ │ + .word 0xffffde78 │ │ │ │ │ │ │ │ │ │ -00002008 : │ │ │ │ │ +000021e8 : │ │ │ │ │ plan_guru_rdft2(): │ │ │ │ │ - push {r4, r5, r6, r7, r8, r9, lr} │ │ │ │ │ - ldr r8, [pc, #428] @ 21c0 │ │ │ │ │ + strd r4, [sp, #-28]! @ 0xffffffe4 │ │ │ │ │ + mov r4, r0 │ │ │ │ │ + mov r5, r2 │ │ │ │ │ + strd r6, [sp, #8] │ │ │ │ │ mov r7, r3 │ │ │ │ │ + mov r6, r1 │ │ │ │ │ + strd r8, [sp, #16] │ │ │ │ │ + ldr r8, [pc, #428] @ 23b8 │ │ │ │ │ + str lr, [sp, #24] │ │ │ │ │ + sub sp, sp, #28 │ │ │ │ │ add r8, pc, r8 │ │ │ │ │ ldr r3, [r8] │ │ │ │ │ - sub sp, sp, #28 │ │ │ │ │ cmp r3, #0 │ │ │ │ │ - mov r4, r0 │ │ │ │ │ - mov r6, r1 │ │ │ │ │ - mov r5, r2 │ │ │ │ │ - beq 2160 │ │ │ │ │ + beq 2358 │ │ │ │ │ cmp r4, #1 │ │ │ │ │ movgt lr, #0 │ │ │ │ │ movle lr, #1 │ │ │ │ │ orrs lr, lr, r5, lsr #31 │ │ │ │ │ - bne 2154 │ │ │ │ │ + bne 233c │ │ │ │ │ mov ip, r6 │ │ │ │ │ ldr r3, [ip] │ │ │ │ │ cmp r3, #0 │ │ │ │ │ - ble 2154 │ │ │ │ │ + ble 233c │ │ │ │ │ ldr r3, [ip, #4] │ │ │ │ │ cmp r3, #0 │ │ │ │ │ - blt 2154 │ │ │ │ │ + blt 233c │ │ │ │ │ ldr r3, [ip, #8] │ │ │ │ │ cmp r3, #0 │ │ │ │ │ - blt 2154 │ │ │ │ │ + blt 233c │ │ │ │ │ add lr, lr, #1 │ │ │ │ │ - cmp r4, lr │ │ │ │ │ add ip, ip, #12 │ │ │ │ │ - bgt 204c │ │ │ │ │ - add r1, sp, #20 │ │ │ │ │ + cmp r4, lr │ │ │ │ │ + bgt 2238 │ │ │ │ │ ldr r0, [sp, #60] @ 0x3c │ │ │ │ │ + add r1, sp, #20 │ │ │ │ │ bl 0 │ │ │ │ │ R_ARM_CALL MPI_Comm_size │ │ │ │ │ + mov r0, r4 │ │ │ │ │ + add r4, r4, r4, lsl #1 │ │ │ │ │ ldr r2, [sp, #20] │ │ │ │ │ mov r3, #1 │ │ │ │ │ mov r1, r6 │ │ │ │ │ - mov r0, r4 │ │ │ │ │ - bl 1254 │ │ │ │ │ - add r4, r4, r4, lsl #1 │ │ │ │ │ lsl r4, r4, #2 │ │ │ │ │ + bl 13a8 │ │ │ │ │ sub r9, r4, #12 │ │ │ │ │ + add r4, r0, r4 │ │ │ │ │ ldr r3, [r6, r9] │ │ │ │ │ mov r1, #0 │ │ │ │ │ + mov r8, r0 │ │ │ │ │ add r3, r3, r3, lsr #31 │ │ │ │ │ asr r3, r3, #1 │ │ │ │ │ add r3, r3, #1 │ │ │ │ │ - add r4, r0, r4 │ │ │ │ │ str r3, [r4, #-8] │ │ │ │ │ - mov r8, r0 │ │ │ │ │ bl 0 │ │ │ │ │ R_ARM_CALL fftw_mpi_num_blocks_total │ │ │ │ │ ldr r3, [sp, #20] │ │ │ │ │ cmp r0, r3 │ │ │ │ │ - bgt 214c │ │ │ │ │ + bgt 2334 │ │ │ │ │ mov r1, #1 │ │ │ │ │ mov r0, r8 │ │ │ │ │ bl 0 │ │ │ │ │ R_ARM_CALL fftw_mpi_num_blocks_total │ │ │ │ │ ldr r3, [sp, #20] │ │ │ │ │ cmp r0, r3 │ │ │ │ │ - bgt 214c │ │ │ │ │ + bgt 2334 │ │ │ │ │ ldr r3, [r6, r9] │ │ │ │ │ - str r3, [r4, #-8] │ │ │ │ │ ldr r2, [sp, #64] @ 0x40 │ │ │ │ │ + str r3, [r4, #-8] │ │ │ │ │ ldr r3, [sp, #68] @ 0x44 │ │ │ │ │ cmp r2, #0 │ │ │ │ │ lsr r3, r3, #27 │ │ │ │ │ str r3, [sp, #8] │ │ │ │ │ - bne 21a4 │ │ │ │ │ + bne 239c │ │ │ │ │ ldr r3, [sp, #60] @ 0x3c │ │ │ │ │ str r3, [sp] │ │ │ │ │ ldr r3, [sp, #56] @ 0x38 │ │ │ │ │ str r2, [sp, #4] │ │ │ │ │ mov r2, r7 │ │ │ │ │ mov r1, r5 │ │ │ │ │ mov r0, r8 │ │ │ │ │ bl 0 │ │ │ │ │ R_ARM_CALL fftw_mpi_mkproblem_rdft2_d │ │ │ │ │ ldr r1, [sp, #68] @ 0x44 │ │ │ │ │ mov r2, r0 │ │ │ │ │ mov r0, #0 │ │ │ │ │ bl 0 │ │ │ │ │ R_ARM_CALL fftw_mkapiplan │ │ │ │ │ - add sp, sp, #28 │ │ │ │ │ - pop {r4, r5, r6, r7, r8, r9, pc} │ │ │ │ │ + b 2340 │ │ │ │ │ mov r0, r8 │ │ │ │ │ bl 0 │ │ │ │ │ R_ARM_CALL fftw_mpi_dtensor_destroy │ │ │ │ │ mov r0, #0 │ │ │ │ │ add sp, sp, #28 │ │ │ │ │ - pop {r4, r5, r6, r7, r8, r9, pc} │ │ │ │ │ + ldrd r4, [sp] │ │ │ │ │ + ldrd r6, [sp, #8] │ │ │ │ │ + ldrd r8, [sp, #16] │ │ │ │ │ + add sp, sp, #24 │ │ │ │ │ + pop {pc} @ (ldr pc, [sp], #4) │ │ │ │ │ bl 0 │ │ │ │ │ R_ARM_CALL fftw_the_planner │ │ │ │ │ - ldr r2, [pc, #88] @ 21c4 │ │ │ │ │ + ldr r2, [pc, #88] @ 23bc │ │ │ │ │ add r2, pc, r2 │ │ │ │ │ str r2, [r0, #8] │ │ │ │ │ - ldr r2, [pc, #80] @ 21c8 │ │ │ │ │ + ldr r2, [pc, #80] @ 23c0 │ │ │ │ │ add r2, pc, r2 │ │ │ │ │ str r2, [r0, #12] │ │ │ │ │ - ldr r2, [pc, #72] @ 21cc │ │ │ │ │ + ldr r2, [pc, #72] @ 23c4 │ │ │ │ │ add r2, pc, r2 │ │ │ │ │ str r2, [r0, #16] │ │ │ │ │ - ldr r2, [pc, #64] @ 21d0 │ │ │ │ │ + ldr r2, [pc, #64] @ 23c8 │ │ │ │ │ add r2, pc, r2 │ │ │ │ │ str r2, [r0, #20] │ │ │ │ │ bl 0 │ │ │ │ │ R_ARM_CALL fftw_mpi_conf_standard │ │ │ │ │ mov r3, #1 │ │ │ │ │ str r3, [r8] │ │ │ │ │ - b 2034 │ │ │ │ │ + b 2220 │ │ │ │ │ mov r3, #4 │ │ │ │ │ + ldr r2, [sp, #56] @ 0x38 │ │ │ │ │ str r3, [sp, #4] │ │ │ │ │ ldr r3, [sp, #60] @ 0x3c │ │ │ │ │ str r3, [sp] │ │ │ │ │ - ldr r2, [sp, #56] @ 0x38 │ │ │ │ │ mov r3, r7 │ │ │ │ │ - b 2128 │ │ │ │ │ - .word 0x000001a4 │ │ │ │ │ + b 2314 │ │ │ │ │ + .word 0x000001a0 │ │ │ │ │ R_ARM_REL32 .bss │ │ │ │ │ - .word 0xffffe0c4 │ │ │ │ │ - .word 0xffffdf60 │ │ │ │ │ .word 0xffffdef0 │ │ │ │ │ - .word 0xffffde6c │ │ │ │ │ + .word 0xffffdd68 │ │ │ │ │ + .word 0xffffdd04 │ │ │ │ │ + .word 0xffffdc74 │ │ │ │ │ │ │ │ │ │ -000021d4 : │ │ │ │ │ +000023cc : │ │ │ │ │ fftw_mpi_init(): │ │ │ │ │ - push {r4, lr} │ │ │ │ │ - ldr r4, [pc, #80] @ 2230 │ │ │ │ │ + str r4, [sp, #-8]! │ │ │ │ │ + ldr r4, [pc, #104] @ 2440 │ │ │ │ │ + str lr, [sp, #4] │ │ │ │ │ add r4, pc, r4 │ │ │ │ │ ldr r3, [r4] │ │ │ │ │ cmp r3, #0 │ │ │ │ │ - popne {r4, pc} │ │ │ │ │ + beq 23f4 │ │ │ │ │ + ldr r4, [sp] │ │ │ │ │ + add sp, sp, #4 │ │ │ │ │ + pop {pc} @ (ldr pc, [sp], #4) │ │ │ │ │ bl 0 │ │ │ │ │ R_ARM_CALL fftw_the_planner │ │ │ │ │ - ldr r2, [pc, #60] @ 2234 │ │ │ │ │ + ldr r2, [pc, #68] @ 2444 │ │ │ │ │ add r2, pc, r2 │ │ │ │ │ str r2, [r0, #8] │ │ │ │ │ - ldr r2, [pc, #52] @ 2238 │ │ │ │ │ + ldr r2, [pc, #60] @ 2448 │ │ │ │ │ add r2, pc, r2 │ │ │ │ │ str r2, [r0, #12] │ │ │ │ │ - ldr r2, [pc, #44] @ 223c │ │ │ │ │ + ldr r2, [pc, #52] @ 244c │ │ │ │ │ add r2, pc, r2 │ │ │ │ │ str r2, [r0, #16] │ │ │ │ │ - ldr r2, [pc, #36] @ 2240 │ │ │ │ │ + ldr r2, [pc, #44] @ 2450 │ │ │ │ │ add r2, pc, r2 │ │ │ │ │ str r2, [r0, #20] │ │ │ │ │ bl 0 │ │ │ │ │ R_ARM_CALL fftw_mpi_conf_standard │ │ │ │ │ mov r3, #1 │ │ │ │ │ str r3, [r4] │ │ │ │ │ - pop {r4, pc} │ │ │ │ │ - .word 0x0000004c │ │ │ │ │ + ldr r4, [sp] │ │ │ │ │ + add sp, sp, #4 │ │ │ │ │ + pop {pc} @ (ldr pc, [sp], #4) │ │ │ │ │ + .word 0x00000060 │ │ │ │ │ R_ARM_REL32 .bss │ │ │ │ │ - .word 0xffffe038 │ │ │ │ │ - .word 0xffffded4 │ │ │ │ │ - .word 0xffffde64 │ │ │ │ │ - .word 0xffffdde0 │ │ │ │ │ + .word 0xffffde54 │ │ │ │ │ + .word 0xffffdccc │ │ │ │ │ + .word 0xffffdc68 │ │ │ │ │ + .word 0xffffdbd8 │ │ │ │ │ │ │ │ │ │ -00002244 : │ │ │ │ │ +00002454 : │ │ │ │ │ fftw_mpi_cleanup(): │ │ │ │ │ - push {r4, lr} │ │ │ │ │ + str r4, [sp, #-8]! │ │ │ │ │ + str lr, [sp, #4] │ │ │ │ │ bl 0 │ │ │ │ │ R_ARM_CALL fftw_cleanup │ │ │ │ │ - ldr r3, [pc, #12] @ 2260 │ │ │ │ │ + ldr r3, [pc, #20] @ 247c │ │ │ │ │ mov r2, #0 │ │ │ │ │ + ldr r4, [sp] │ │ │ │ │ + add sp, sp, #4 │ │ │ │ │ add r3, pc, r3 │ │ │ │ │ str r2, [r3] │ │ │ │ │ - pop {r4, pc} │ │ │ │ │ + pop {pc} @ (ldr pc, [sp], #4) │ │ │ │ │ .word 0x00000004 │ │ │ │ │ R_ARM_REL32 .bss │ │ │ │ │ │ │ │ │ │ -00002264 : │ │ │ │ │ +00002480 : │ │ │ │ │ fftw_mpi_local_size_guru(): │ │ │ │ │ - push {r4, r5, r6, r7, r8, lr} │ │ │ │ │ cmp r0, #0 │ │ │ │ │ + strd r4, [sp, #-24]! @ 0xffffffe8 │ │ │ │ │ add r4, sp, #28 │ │ │ │ │ + strd r6, [sp, #8] │ │ │ │ │ ldm r4, {r4, r5, r6, r7} │ │ │ │ │ - ldr lr, [sp, #24] │ │ │ │ │ + str r8, [sp, #16] │ │ │ │ │ ldr r8, [sp, #44] @ 0x2c │ │ │ │ │ - bne 2288 │ │ │ │ │ + str lr, [sp, #20] │ │ │ │ │ + ldr lr, [sp, #24] │ │ │ │ │ + bne 24c0 │ │ │ │ │ mov r0, r2 │ │ │ │ │ - pop {r4, r5, r6, r7, r8, pc} │ │ │ │ │ - str r8, [sp, #44] @ 0x2c │ │ │ │ │ - str r7, [sp, #40] @ 0x28 │ │ │ │ │ - str r6, [sp, #36] @ 0x24 │ │ │ │ │ - str r5, [sp, #32] │ │ │ │ │ - str r4, [sp, #28] │ │ │ │ │ + ldrd r4, [sp] │ │ │ │ │ + ldrd r6, [sp, #8] │ │ │ │ │ + ldr r8, [sp, #16] │ │ │ │ │ + add sp, sp, #20 │ │ │ │ │ + pop {pc} @ (ldr pc, [sp], #4) │ │ │ │ │ str lr, [sp, #24] │ │ │ │ │ - pop {r4, r5, r6, r7, r8, lr} │ │ │ │ │ - b 15a0 │ │ │ │ │ + ldr lr, [sp, #20] │ │ │ │ │ + str r4, [sp, #28] │ │ │ │ │ + str r5, [sp, #32] │ │ │ │ │ + ldrd r4, [sp] │ │ │ │ │ + str r6, [sp, #36] @ 0x24 │ │ │ │ │ + str r7, [sp, #40] @ 0x28 │ │ │ │ │ + ldrd r6, [sp, #8] │ │ │ │ │ + str r8, [sp, #44] @ 0x2c │ │ │ │ │ + ldr r8, [sp, #16] │ │ │ │ │ + add sp, sp, #24 │ │ │ │ │ + b 1724 │ │ │ │ │ │ │ │ │ │ -000022a8 : │ │ │ │ │ +000024f0 : │ │ │ │ │ fftw_mpi_local_size_many_transposed(): │ │ │ │ │ - push {r4, r5, r6, r7, r8, r9, lr} │ │ │ │ │ subs ip, r0, #0 │ │ │ │ │ + strd r4, [sp, #-28]! @ 0xffffffe4 │ │ │ │ │ add r4, sp, #36 @ 0x24 │ │ │ │ │ + strd r6, [sp, #8] │ │ │ │ │ ldm r4, {r4, r5, r6, r7} │ │ │ │ │ + strd r8, [sp, #16] │ │ │ │ │ ldr r8, [sp, #28] │ │ │ │ │ + str lr, [sp, #24] │ │ │ │ │ ldr r9, [sp, #32] │ │ │ │ │ - bne 22e4 │ │ │ │ │ + bne 2548 │ │ │ │ │ mov r3, #1 │ │ │ │ │ - str r3, [r6] │ │ │ │ │ + mov r0, r2 │ │ │ │ │ + ldrd r8, [sp, #16] │ │ │ │ │ mov lr, r2 │ │ │ │ │ + str r3, [r6] │ │ │ │ │ str r3, [r4] │ │ │ │ │ - mov r0, r2 │ │ │ │ │ str ip, [r7] │ │ │ │ │ + ldrd r6, [sp, #8] │ │ │ │ │ str ip, [r5] │ │ │ │ │ - pop {r4, r5, r6, r7, r8, r9, pc} │ │ │ │ │ - str r7, [sp, #48] @ 0x30 │ │ │ │ │ - str r6, [sp, #44] @ 0x2c │ │ │ │ │ - str r5, [sp, #40] @ 0x28 │ │ │ │ │ - str r4, [sp, #36] @ 0x24 │ │ │ │ │ - str r9, [sp, #32] │ │ │ │ │ + ldrd r4, [sp] │ │ │ │ │ + add sp, sp, #24 │ │ │ │ │ + pop {pc} @ (ldr pc, [sp], #4) │ │ │ │ │ + ldr lr, [sp, #24] │ │ │ │ │ str r8, [sp, #28] │ │ │ │ │ - pop {r4, r5, r6, r7, r8, r9, lr} │ │ │ │ │ - b 1af4 │ │ │ │ │ + str r9, [sp, #32] │ │ │ │ │ + ldrd r8, [sp, #16] │ │ │ │ │ + str r4, [sp, #36] @ 0x24 │ │ │ │ │ + str r5, [sp, #40] @ 0x28 │ │ │ │ │ + ldrd r4, [sp] │ │ │ │ │ + str r6, [sp, #44] @ 0x2c │ │ │ │ │ + str r7, [sp, #48] @ 0x30 │ │ │ │ │ + ldrd r6, [sp, #8] │ │ │ │ │ + add sp, sp, #28 │ │ │ │ │ + b 1c70 │ │ │ │ │ │ │ │ │ │ -00002304 : │ │ │ │ │ +00002578 : │ │ │ │ │ fftw_mpi_local_size_many(): │ │ │ │ │ cmp r0, #1 │ │ │ │ │ push {lr} @ (str lr, [sp, #-4]!) │ │ │ │ │ sub sp, sp, #36 @ 0x24 │ │ │ │ │ - ble 234c │ │ │ │ │ + ble 25c0 │ │ │ │ │ ldr ip, [r1, #4] │ │ │ │ │ add lr, sp, #28 │ │ │ │ │ str lr, [sp, #20] │ │ │ │ │ add lr, sp, #24 │ │ │ │ │ str lr, [sp, #16] │ │ │ │ │ ldr lr, [sp, #48] @ 0x30 │ │ │ │ │ str lr, [sp, #12] │ │ │ │ │ ldr lr, [sp, #44] @ 0x2c │ │ │ │ │ str lr, [sp, #8] │ │ │ │ │ ldr lr, [sp, #40] @ 0x28 │ │ │ │ │ stm sp, {ip, lr} │ │ │ │ │ - bl 1af4 │ │ │ │ │ + bl 1c70 │ │ │ │ │ add sp, sp, #36 @ 0x24 │ │ │ │ │ pop {pc} @ (ldr pc, [sp], #4) │ │ │ │ │ cmp r0, #0 │ │ │ │ │ - bne 2374 │ │ │ │ │ + bne 25e8 │ │ │ │ │ ldr r1, [sp, #44] @ 0x2c │ │ │ │ │ mov r3, #1 │ │ │ │ │ str r3, [r1] │ │ │ │ │ ldr r3, [sp, #48] @ 0x30 │ │ │ │ │ str r0, [r3] │ │ │ │ │ mov r0, r2 │ │ │ │ │ add sp, sp, #36 @ 0x24 │ │ │ │ │ pop {pc} @ (ldr pc, [sp], #4) │ │ │ │ │ mov ip, #0 │ │ │ │ │ - b 2318 │ │ │ │ │ + b 258c │ │ │ │ │ │ │ │ │ │ -0000237c : │ │ │ │ │ +000025f0 : │ │ │ │ │ fftw_mpi_local_size_transposed(): │ │ │ │ │ subs ip, r0, #0 │ │ │ │ │ push {lr} @ (str lr, [sp, #-4]!) │ │ │ │ │ sub sp, sp, #28 │ │ │ │ │ - bne 23b4 │ │ │ │ │ + bne 2628 │ │ │ │ │ ldr r2, [sp, #36] @ 0x24 │ │ │ │ │ mov r0, #1 │ │ │ │ │ str r0, [r2] │ │ │ │ │ str r0, [r3] │ │ │ │ │ ldr r3, [sp, #40] @ 0x28 │ │ │ │ │ str ip, [r3] │ │ │ │ │ ldr r3, [sp, #32] │ │ │ │ │ @@ -2549,1925 +2706,2067 @@ │ │ │ │ │ ldr ip, [sp, #36] @ 0x24 │ │ │ │ │ str ip, [sp, #16] │ │ │ │ │ ldr ip, [sp, #32] │ │ │ │ │ stmib sp, {r2, r3, ip} │ │ │ │ │ mov r3, #0 │ │ │ │ │ mov r2, #1 │ │ │ │ │ str r3, [sp] │ │ │ │ │ - bl 1af4 │ │ │ │ │ + bl 1c70 │ │ │ │ │ add sp, sp, #28 │ │ │ │ │ pop {pc} @ (ldr pc, [sp], #4) │ │ │ │ │ │ │ │ │ │ -000023e4 : │ │ │ │ │ +00002658 : │ │ │ │ │ fftw_mpi_local_size(): │ │ │ │ │ cmp r0, #1 │ │ │ │ │ push {lr} @ (str lr, [sp, #-4]!) │ │ │ │ │ sub sp, sp, #36 @ 0x24 │ │ │ │ │ - ble 2428 │ │ │ │ │ + ble 269c │ │ │ │ │ ldr ip, [r1, #4] │ │ │ │ │ add lr, sp, #28 │ │ │ │ │ + str ip, [sp] │ │ │ │ │ str lr, [sp, #20] │ │ │ │ │ add lr, sp, #24 │ │ │ │ │ str lr, [sp, #16] │ │ │ │ │ ldr lr, [sp, #40] @ 0x28 │ │ │ │ │ - str ip, [sp] │ │ │ │ │ stmib sp, {r2, r3, lr} │ │ │ │ │ mov r3, #0 │ │ │ │ │ mov r2, #1 │ │ │ │ │ - bl 1af4 │ │ │ │ │ + bl 1c70 │ │ │ │ │ add sp, sp, #36 @ 0x24 │ │ │ │ │ pop {pc} @ (ldr pc, [sp], #4) │ │ │ │ │ cmp r0, #0 │ │ │ │ │ - bne 244c │ │ │ │ │ + bne 26c0 │ │ │ │ │ mov r2, #1 │ │ │ │ │ str r2, [r3] │ │ │ │ │ ldr r3, [sp, #40] @ 0x28 │ │ │ │ │ str r0, [r3] │ │ │ │ │ mov r0, r2 │ │ │ │ │ add sp, sp, #36 @ 0x24 │ │ │ │ │ pop {pc} @ (ldr pc, [sp], #4) │ │ │ │ │ mov ip, #0 │ │ │ │ │ - b 23f8 │ │ │ │ │ + b 266c │ │ │ │ │ │ │ │ │ │ -00002454 : │ │ │ │ │ +000026c8 : │ │ │ │ │ fftw_mpi_local_size_many_1d(): │ │ │ │ │ push {lr} @ (str lr, [sp, #-4]!) │ │ │ │ │ sub sp, sp, #44 @ 0x2c │ │ │ │ │ str r3, [sp, #12] │ │ │ │ │ ldr r3, [sp, #64] @ 0x40 │ │ │ │ │ - str r0, [sp, #28] │ │ │ │ │ str r3, [sp, #8] │ │ │ │ │ - mov r0, #0 │ │ │ │ │ ldr r3, [sp, #60] @ 0x3c │ │ │ │ │ - str r0, [sp, #36] @ 0x24 │ │ │ │ │ - str r0, [sp, #32] │ │ │ │ │ + str r0, [sp, #28] │ │ │ │ │ + mov r0, #0 │ │ │ │ │ str r3, [sp, #4] │ │ │ │ │ - ldr r0, [sp, #48] @ 0x30 │ │ │ │ │ ldr r3, [sp, #56] @ 0x38 │ │ │ │ │ - str r0, [sp, #16] │ │ │ │ │ + str r0, [sp, #32] │ │ │ │ │ + str r0, [sp, #36] @ 0x24 │ │ │ │ │ + ldr r0, [sp, #48] @ 0x30 │ │ │ │ │ str r3, [sp] │ │ │ │ │ - add r0, sp, #28 │ │ │ │ │ ldr r3, [sp, #52] @ 0x34 │ │ │ │ │ - bl 1034 │ │ │ │ │ + str r0, [sp, #16] │ │ │ │ │ + add r0, sp, #28 │ │ │ │ │ + bl 115c │ │ │ │ │ add sp, sp, #44 @ 0x2c │ │ │ │ │ pop {pc} @ (ldr pc, [sp], #4) │ │ │ │ │ │ │ │ │ │ -000024a4 : │ │ │ │ │ +00002718 : │ │ │ │ │ fftw_mpi_local_size_1d(): │ │ │ │ │ push {lr} @ (str lr, [sp, #-4]!) │ │ │ │ │ sub sp, sp, #44 @ 0x2c │ │ │ │ │ + str r2, [sp, #12] │ │ │ │ │ + mov r2, r1 │ │ │ │ │ + mov r1, #1 │ │ │ │ │ str r3, [sp, #16] │ │ │ │ │ ldr r3, [sp, #60] @ 0x3c │ │ │ │ │ + str r0, [sp, #28] │ │ │ │ │ + mov r0, #0 │ │ │ │ │ str r3, [sp, #8] │ │ │ │ │ ldr r3, [sp, #56] @ 0x38 │ │ │ │ │ - str r0, [sp, #28] │ │ │ │ │ + str r0, [sp, #32] │ │ │ │ │ + str r0, [sp, #36] @ 0x24 │ │ │ │ │ + add r0, sp, #28 │ │ │ │ │ str r3, [sp, #4] │ │ │ │ │ - mov r0, #0 │ │ │ │ │ ldr r3, [sp, #52] @ 0x34 │ │ │ │ │ - str r0, [sp, #36] @ 0x24 │ │ │ │ │ - str r0, [sp, #32] │ │ │ │ │ - str r2, [sp, #12] │ │ │ │ │ str r3, [sp] │ │ │ │ │ - mov r2, r1 │ │ │ │ │ ldr r3, [sp, #48] @ 0x30 │ │ │ │ │ - mov r1, #1 │ │ │ │ │ - add r0, sp, #28 │ │ │ │ │ - bl 1034 │ │ │ │ │ + bl 115c │ │ │ │ │ add sp, sp, #44 @ 0x2c │ │ │ │ │ pop {pc} @ (ldr pc, [sp], #4) │ │ │ │ │ │ │ │ │ │ -000024f8 : │ │ │ │ │ +0000276c : │ │ │ │ │ fftw_mpi_local_size_2d_transposed(): │ │ │ │ │ push {lr} @ (str lr, [sp, #-4]!) │ │ │ │ │ sub sp, sp, #28 │ │ │ │ │ strd r0, [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] │ │ │ │ │ - add r0, sp, #16 │ │ │ │ │ mov r1, #0 │ │ │ │ │ - bl b8c │ │ │ │ │ + bl c58 │ │ │ │ │ add sp, sp, #28 │ │ │ │ │ pop {pc} @ (ldr pc, [sp], #4) │ │ │ │ │ │ │ │ │ │ -00002530 : │ │ │ │ │ +000027a4 : │ │ │ │ │ fftw_mpi_local_size_2d(): │ │ │ │ │ push {lr} @ (str lr, [sp, #-4]!) │ │ │ │ │ sub sp, sp, #36 @ 0x24 │ │ │ │ │ strd r0, [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] │ │ │ │ │ add r0, sp, #24 │ │ │ │ │ - bl b8c │ │ │ │ │ + bl c58 │ │ │ │ │ add sp, sp, #36 @ 0x24 │ │ │ │ │ pop {pc} @ (ldr pc, [sp], #4) │ │ │ │ │ │ │ │ │ │ -00002564 : │ │ │ │ │ +000027d8 : │ │ │ │ │ fftw_mpi_local_size_3d_transposed(): │ │ │ │ │ push {lr} @ (str lr, [sp, #-4]!) │ │ │ │ │ sub sp, sp, #36 @ 0x24 │ │ │ │ │ mov ip, r2 │ │ │ │ │ mov r2, r3 │ │ │ │ │ ldr r3, [sp, #52] @ 0x34 │ │ │ │ │ str r3, [sp, #8] │ │ │ │ │ ldr r3, [sp, #48] @ 0x30 │ │ │ │ │ - str r3, [sp, #4] │ │ │ │ │ - ldr r3, [sp, #44] @ 0x2c │ │ │ │ │ strd r0, [sp, #16] │ │ │ │ │ - str r3, [sp] │ │ │ │ │ mov r1, #0 │ │ │ │ │ - ldr r3, [sp, #40] @ 0x28 │ │ │ │ │ add r0, sp, #16 │ │ │ │ │ str ip, [sp, #24] │ │ │ │ │ - bl 63c │ │ │ │ │ + str r3, [sp, #4] │ │ │ │ │ + ldr r3, [sp, #44] @ 0x2c │ │ │ │ │ + str r3, [sp] │ │ │ │ │ + ldr r3, [sp, #40] @ 0x28 │ │ │ │ │ + bl 6ac │ │ │ │ │ add sp, sp, #36 @ 0x24 │ │ │ │ │ pop {pc} @ (ldr pc, [sp], #4) │ │ │ │ │ │ │ │ │ │ -000025ac : │ │ │ │ │ +00002820 : │ │ │ │ │ fftw_mpi_local_size_3d(): │ │ │ │ │ push {lr} @ (str lr, [sp, #-4]!) │ │ │ │ │ sub sp, sp, #44 @ 0x2c │ │ │ │ │ mov ip, r2 │ │ │ │ │ mov r2, r3 │ │ │ │ │ add r3, sp, #20 │ │ │ │ │ str r3, [sp, #8] │ │ │ │ │ add r3, sp, #16 │ │ │ │ │ + strd r0, [sp, #24] │ │ │ │ │ + add r0, sp, #24 │ │ │ │ │ str r3, [sp, #4] │ │ │ │ │ ldr r3, [sp, #52] @ 0x34 │ │ │ │ │ - strd r0, [sp, #24] │ │ │ │ │ + str ip, [sp, #32] │ │ │ │ │ str r3, [sp] │ │ │ │ │ - add r0, sp, #24 │ │ │ │ │ ldr r3, [sp, #48] @ 0x30 │ │ │ │ │ - str ip, [sp, #32] │ │ │ │ │ - bl 63c │ │ │ │ │ + bl 6ac │ │ │ │ │ add sp, sp, #44 @ 0x2c │ │ │ │ │ pop {pc} @ (ldr pc, [sp], #4) │ │ │ │ │ │ │ │ │ │ -000025f0 : │ │ │ │ │ +00002864 : │ │ │ │ │ fftw_mpi_plan_many_transpose(): │ │ │ │ │ - push {r4, r5, r6, r7, r8, r9, lr} │ │ │ │ │ - ldr r9, [pc, #340] @ 2750 │ │ │ │ │ + strd r4, [sp, #-28]! @ 0xffffffe4 │ │ │ │ │ mov r4, r3 │ │ │ │ │ - add r9, pc, r9 │ │ │ │ │ - ldr r3, [r9] │ │ │ │ │ - sub sp, sp, #36 @ 0x24 │ │ │ │ │ - cmp r3, #0 │ │ │ │ │ - ldr r8, [sp, #64] @ 0x40 │ │ │ │ │ mov r5, r0 │ │ │ │ │ + strd r6, [sp, #8] │ │ │ │ │ mov r6, r1 │ │ │ │ │ mov r7, r2 │ │ │ │ │ - beq 26dc │ │ │ │ │ + strd r8, [sp, #16] │ │ │ │ │ + ldr r9, [pc, #340] @ 29dc │ │ │ │ │ + str lr, [sp, #24] │ │ │ │ │ + sub sp, sp, #36 @ 0x24 │ │ │ │ │ + ldr r8, [sp, #64] @ 0x40 │ │ │ │ │ + add r9, pc, r9 │ │ │ │ │ + ldr r3, [r9] │ │ │ │ │ + cmp r3, #0 │ │ │ │ │ + beq 2968 │ │ │ │ │ orr r3, r4, r8 │ │ │ │ │ orrs r3, r3, r7 │ │ │ │ │ - bmi 26d0 │ │ │ │ │ + bmi 294c │ │ │ │ │ cmp r6, #0 │ │ │ │ │ cmpgt r5, #0 │ │ │ │ │ - ble 26d0 │ │ │ │ │ + ble 294c │ │ │ │ │ ldr r0, [sp, #76] @ 0x4c │ │ │ │ │ add r1, sp, #28 │ │ │ │ │ bl 0 │ │ │ │ │ R_ARM_CALL MPI_Comm_size │ │ │ │ │ cmp r4, #0 │ │ │ │ │ - beq 2734 │ │ │ │ │ + beq 29c0 │ │ │ │ │ cmp r8, #0 │ │ │ │ │ - beq 2720 │ │ │ │ │ + beq 29ac │ │ │ │ │ mov r1, r4 │ │ │ │ │ mov r0, r5 │ │ │ │ │ bl 0 │ │ │ │ │ R_ARM_CALL fftw_mpi_num_blocks │ │ │ │ │ ldr r3, [sp, #28] │ │ │ │ │ cmp r0, r3 │ │ │ │ │ - bgt 26d0 │ │ │ │ │ + bgt 294c │ │ │ │ │ mov r1, r8 │ │ │ │ │ mov r0, r6 │ │ │ │ │ bl 0 │ │ │ │ │ R_ARM_CALL fftw_mpi_num_blocks │ │ │ │ │ ldr r3, [sp, #28] │ │ │ │ │ cmp r0, r3 │ │ │ │ │ - bgt 26d0 │ │ │ │ │ + bgt 294c │ │ │ │ │ ldr r3, [sp, #80] @ 0x50 │ │ │ │ │ mov r2, r7 │ │ │ │ │ + mov r1, r6 │ │ │ │ │ + mov r0, r5 │ │ │ │ │ + stmib sp, {r4, r8} │ │ │ │ │ lsr r3, r3, #27 │ │ │ │ │ str r3, [sp, #16] │ │ │ │ │ ldr r3, [sp, #76] @ 0x4c │ │ │ │ │ str r3, [sp, #12] │ │ │ │ │ ldr r3, [sp, #72] @ 0x48 │ │ │ │ │ - mov r1, r6 │ │ │ │ │ str r3, [sp] │ │ │ │ │ - mov r0, r5 │ │ │ │ │ ldr r3, [sp, #68] @ 0x44 │ │ │ │ │ - stmib sp, {r4, r8} │ │ │ │ │ bl 0 │ │ │ │ │ R_ARM_CALL fftw_mpi_mkproblem_transpose │ │ │ │ │ ldr r1, [sp, #80] @ 0x50 │ │ │ │ │ mov r2, r0 │ │ │ │ │ mvn r0, #0 │ │ │ │ │ bl 0 │ │ │ │ │ R_ARM_CALL fftw_mkapiplan │ │ │ │ │ - add sp, sp, #36 @ 0x24 │ │ │ │ │ - pop {r4, r5, r6, r7, r8, r9, pc} │ │ │ │ │ + b 2950 │ │ │ │ │ mov r0, #0 │ │ │ │ │ add sp, sp, #36 @ 0x24 │ │ │ │ │ - pop {r4, r5, r6, r7, r8, r9, pc} │ │ │ │ │ + ldrd r4, [sp] │ │ │ │ │ + ldrd r6, [sp, #8] │ │ │ │ │ + ldrd r8, [sp, #16] │ │ │ │ │ + add sp, sp, #24 │ │ │ │ │ + pop {pc} @ (ldr pc, [sp], #4) │ │ │ │ │ bl 0 │ │ │ │ │ R_ARM_CALL fftw_the_planner │ │ │ │ │ - ldr r2, [pc, #108] @ 2754 │ │ │ │ │ + ldr r2, [pc, #108] @ 29e0 │ │ │ │ │ add r2, pc, r2 │ │ │ │ │ str r2, [r0, #8] │ │ │ │ │ - ldr r2, [pc, #100] @ 2758 │ │ │ │ │ + ldr r2, [pc, #100] @ 29e4 │ │ │ │ │ add r2, pc, r2 │ │ │ │ │ str r2, [r0, #12] │ │ │ │ │ - ldr r2, [pc, #92] @ 275c │ │ │ │ │ + ldr r2, [pc, #92] @ 29e8 │ │ │ │ │ add r2, pc, r2 │ │ │ │ │ str r2, [r0, #16] │ │ │ │ │ - ldr r2, [pc, #84] @ 2760 │ │ │ │ │ + ldr r2, [pc, #84] @ 29ec │ │ │ │ │ add r2, pc, r2 │ │ │ │ │ str r2, [r0, #20] │ │ │ │ │ bl 0 │ │ │ │ │ R_ARM_CALL fftw_mpi_conf_standard │ │ │ │ │ mov r3, #1 │ │ │ │ │ str r3, [r9] │ │ │ │ │ - b 2620 │ │ │ │ │ + b 28a0 │ │ │ │ │ ldr r1, [sp, #28] │ │ │ │ │ mov r0, r6 │ │ │ │ │ bl 0 │ │ │ │ │ R_ARM_CALL fftw_mpi_default_block │ │ │ │ │ mov r8, r0 │ │ │ │ │ - b 2654 │ │ │ │ │ + b 28d4 │ │ │ │ │ ldr r1, [sp, #28] │ │ │ │ │ mov r0, r5 │ │ │ │ │ bl 0 │ │ │ │ │ R_ARM_CALL fftw_mpi_default_block │ │ │ │ │ cmp r8, #0 │ │ │ │ │ mov r4, r0 │ │ │ │ │ - bne 2654 │ │ │ │ │ - b 2720 │ │ │ │ │ - .word 0x0000014c │ │ │ │ │ + bne 28d4 │ │ │ │ │ + b 29ac │ │ │ │ │ + .word 0x00000144 │ │ │ │ │ R_ARM_REL32 .bss │ │ │ │ │ - .word 0xffffdb48 │ │ │ │ │ - .word 0xffffd9e4 │ │ │ │ │ - .word 0xffffd974 │ │ │ │ │ - .word 0xffffd8f0 │ │ │ │ │ + .word 0xffffd8e0 │ │ │ │ │ + .word 0xffffd758 │ │ │ │ │ + .word 0xffffd6f4 │ │ │ │ │ + .word 0xffffd664 │ │ │ │ │ │ │ │ │ │ -00002764 : │ │ │ │ │ +000029f0 : │ │ │ │ │ fftw_mpi_plan_transpose(): │ │ │ │ │ - push {r4, r5, r6, r7, r8, r9, lr} │ │ │ │ │ - ldr r8, [pc, #284] @ 288c │ │ │ │ │ + strd r4, [sp, #-28]! @ 0xffffffe4 │ │ │ │ │ + mov r4, r0 │ │ │ │ │ + mov r5, r1 │ │ │ │ │ + strd r6, [sp, #8] │ │ │ │ │ mov r7, r3 │ │ │ │ │ + mov r6, r2 │ │ │ │ │ + strd r8, [sp, #16] │ │ │ │ │ + ldr r8, [pc, #284] @ 2b30 │ │ │ │ │ + str lr, [sp, #24] │ │ │ │ │ + sub sp, sp, #36 @ 0x24 │ │ │ │ │ add r8, pc, r8 │ │ │ │ │ ldr r3, [r8] │ │ │ │ │ - sub sp, sp, #36 @ 0x24 │ │ │ │ │ cmp r3, #0 │ │ │ │ │ - mov r4, r0 │ │ │ │ │ - mov r5, r1 │ │ │ │ │ - mov r6, r2 │ │ │ │ │ - beq 2848 │ │ │ │ │ + beq 2aec │ │ │ │ │ cmp r4, #0 │ │ │ │ │ cmpgt r5, #0 │ │ │ │ │ - ble 283c │ │ │ │ │ - add r1, sp, #28 │ │ │ │ │ + ble 2ad0 │ │ │ │ │ ldr r0, [sp, #64] @ 0x40 │ │ │ │ │ + add r1, sp, #28 │ │ │ │ │ bl 0 │ │ │ │ │ R_ARM_CALL MPI_Comm_size │ │ │ │ │ ldr r1, [sp, #28] │ │ │ │ │ mov r0, r4 │ │ │ │ │ bl 0 │ │ │ │ │ R_ARM_CALL fftw_mpi_default_block │ │ │ │ │ ldr r1, [sp, #28] │ │ │ │ │ mov r8, r0 │ │ │ │ │ mov r0, r5 │ │ │ │ │ bl 0 │ │ │ │ │ R_ARM_CALL fftw_mpi_default_block │ │ │ │ │ - mov r1, r8 │ │ │ │ │ mov r9, r0 │ │ │ │ │ + mov r1, r8 │ │ │ │ │ mov r0, r4 │ │ │ │ │ bl 0 │ │ │ │ │ R_ARM_CALL fftw_mpi_num_blocks │ │ │ │ │ ldr r3, [sp, #28] │ │ │ │ │ cmp r0, r3 │ │ │ │ │ - bgt 283c │ │ │ │ │ + bgt 2ad0 │ │ │ │ │ mov r1, r9 │ │ │ │ │ mov r0, r5 │ │ │ │ │ bl 0 │ │ │ │ │ R_ARM_CALL fftw_mpi_num_blocks │ │ │ │ │ ldr r3, [sp, #28] │ │ │ │ │ cmp r0, r3 │ │ │ │ │ - bgt 283c │ │ │ │ │ + bgt 2ad0 │ │ │ │ │ ldr r3, [sp, #68] @ 0x44 │ │ │ │ │ mov r1, r5 │ │ │ │ │ + mov r2, #1 │ │ │ │ │ + mov r0, r4 │ │ │ │ │ + stm sp, {r7, r8, r9} │ │ │ │ │ lsr r3, r3, #27 │ │ │ │ │ str r3, [sp, #16] │ │ │ │ │ ldr r3, [sp, #64] @ 0x40 │ │ │ │ │ str r3, [sp, #12] │ │ │ │ │ - mov r2, #1 │ │ │ │ │ mov r3, r6 │ │ │ │ │ - mov r0, r4 │ │ │ │ │ - stm sp, {r7, r8, r9} │ │ │ │ │ bl 0 │ │ │ │ │ R_ARM_CALL fftw_mpi_mkproblem_transpose │ │ │ │ │ ldr r1, [sp, #68] @ 0x44 │ │ │ │ │ mov r2, r0 │ │ │ │ │ mvn r0, #0 │ │ │ │ │ bl 0 │ │ │ │ │ R_ARM_CALL fftw_mkapiplan │ │ │ │ │ - add sp, sp, #36 @ 0x24 │ │ │ │ │ - pop {r4, r5, r6, r7, r8, r9, pc} │ │ │ │ │ + b 2ad4 │ │ │ │ │ mov r0, #0 │ │ │ │ │ add sp, sp, #36 @ 0x24 │ │ │ │ │ - pop {r4, r5, r6, r7, r8, r9, pc} │ │ │ │ │ + ldrd r4, [sp] │ │ │ │ │ + ldrd r6, [sp, #8] │ │ │ │ │ + ldrd r8, [sp, #16] │ │ │ │ │ + add sp, sp, #24 │ │ │ │ │ + pop {pc} @ (ldr pc, [sp], #4) │ │ │ │ │ bl 0 │ │ │ │ │ R_ARM_CALL fftw_the_planner │ │ │ │ │ - ldr r2, [pc, #60] @ 2890 │ │ │ │ │ + ldr r2, [pc, #60] @ 2b34 │ │ │ │ │ add r2, pc, r2 │ │ │ │ │ str r2, [r0, #8] │ │ │ │ │ - ldr r2, [pc, #52] @ 2894 │ │ │ │ │ + ldr r2, [pc, #52] @ 2b38 │ │ │ │ │ add r2, pc, r2 │ │ │ │ │ str r2, [r0, #12] │ │ │ │ │ - ldr r2, [pc, #44] @ 2898 │ │ │ │ │ + ldr r2, [pc, #44] @ 2b3c │ │ │ │ │ add r2, pc, r2 │ │ │ │ │ str r2, [r0, #16] │ │ │ │ │ - ldr r2, [pc, #36] @ 289c │ │ │ │ │ + ldr r2, [pc, #36] @ 2b40 │ │ │ │ │ add r2, pc, r2 │ │ │ │ │ str r2, [r0, #20] │ │ │ │ │ bl 0 │ │ │ │ │ R_ARM_CALL fftw_mpi_conf_standard │ │ │ │ │ mov r3, #1 │ │ │ │ │ str r3, [r8] │ │ │ │ │ - b 2790 │ │ │ │ │ - .word 0x00000114 │ │ │ │ │ + b 2a28 │ │ │ │ │ + .word 0x00000110 │ │ │ │ │ R_ARM_REL32 .bss │ │ │ │ │ - .word 0xffffd9dc │ │ │ │ │ - .word 0xffffd878 │ │ │ │ │ - .word 0xffffd808 │ │ │ │ │ - .word 0xffffd784 │ │ │ │ │ + .word 0xffffd75c │ │ │ │ │ + .word 0xffffd5d4 │ │ │ │ │ + .word 0xffffd570 │ │ │ │ │ + .word 0xffffd4e0 │ │ │ │ │ │ │ │ │ │ -000028a0 : │ │ │ │ │ +00002b44 : │ │ │ │ │ fftw_mpi_plan_guru_dft(): │ │ │ │ │ - push {r4, r5, r6, r7, r8, lr} │ │ │ │ │ - ldr r8, [pc, #344] @ 2a04 │ │ │ │ │ + strd r4, [sp, #-24]! @ 0xffffffe8 │ │ │ │ │ + mov r4, r0 │ │ │ │ │ + mov r5, r2 │ │ │ │ │ + strd r6, [sp, #8] │ │ │ │ │ mov r7, r3 │ │ │ │ │ + mov r6, r1 │ │ │ │ │ + str r8, [sp, #16] │ │ │ │ │ + ldr r8, [pc, #344] @ 2cc0 │ │ │ │ │ + str lr, [sp, #20] │ │ │ │ │ + sub sp, sp, #24 │ │ │ │ │ add r8, pc, r8 │ │ │ │ │ ldr r3, [r8] │ │ │ │ │ - sub sp, sp, #24 │ │ │ │ │ cmp r3, #0 │ │ │ │ │ - mov r4, r0 │ │ │ │ │ - mov r6, r1 │ │ │ │ │ - mov r5, r2 │ │ │ │ │ - beq 29c0 │ │ │ │ │ + beq 2c7c │ │ │ │ │ cmp r4, #0 │ │ │ │ │ movgt lr, #0 │ │ │ │ │ movle lr, #1 │ │ │ │ │ orrs lr, lr, r5, lsr #31 │ │ │ │ │ - bne 29b4 │ │ │ │ │ + bne 2c60 │ │ │ │ │ mov ip, r6 │ │ │ │ │ ldr r3, [ip] │ │ │ │ │ cmp r3, #0 │ │ │ │ │ - ble 29b4 │ │ │ │ │ + ble 2c60 │ │ │ │ │ ldr r3, [ip, #4] │ │ │ │ │ cmp r3, #0 │ │ │ │ │ - blt 29b4 │ │ │ │ │ + blt 2c60 │ │ │ │ │ ldr r3, [ip, #8] │ │ │ │ │ cmp r3, #0 │ │ │ │ │ - blt 29b4 │ │ │ │ │ + blt 2c60 │ │ │ │ │ add lr, lr, #1 │ │ │ │ │ - cmp r4, lr │ │ │ │ │ add ip, ip, #12 │ │ │ │ │ - bgt 28e4 │ │ │ │ │ - add r1, sp, #20 │ │ │ │ │ + cmp r4, lr │ │ │ │ │ + bgt 2b94 │ │ │ │ │ ldr r0, [sp, #52] @ 0x34 │ │ │ │ │ + add r1, sp, #20 │ │ │ │ │ bl 0 │ │ │ │ │ R_ARM_CALL MPI_Comm_size │ │ │ │ │ - mov r3, #0 │ │ │ │ │ ldr r2, [sp, #20] │ │ │ │ │ + mov r3, #0 │ │ │ │ │ mov r1, r6 │ │ │ │ │ mov r0, r4 │ │ │ │ │ - bl 1254 │ │ │ │ │ + bl 13a8 │ │ │ │ │ mov r1, #0 │ │ │ │ │ mov r4, r0 │ │ │ │ │ bl 0 │ │ │ │ │ R_ARM_CALL fftw_mpi_num_blocks_total │ │ │ │ │ ldr r3, [sp, #20] │ │ │ │ │ cmp r0, r3 │ │ │ │ │ - bgt 29ac │ │ │ │ │ + bgt 2c58 │ │ │ │ │ mov r1, #1 │ │ │ │ │ mov r0, r4 │ │ │ │ │ bl 0 │ │ │ │ │ R_ARM_CALL fftw_mpi_num_blocks_total │ │ │ │ │ ldr r3, [sp, #20] │ │ │ │ │ cmp r0, r3 │ │ │ │ │ - bgt 29ac │ │ │ │ │ + bgt 2c58 │ │ │ │ │ ldr r3, [sp, #60] @ 0x3c │ │ │ │ │ mov r2, r7 │ │ │ │ │ + mov r1, r5 │ │ │ │ │ + mov r0, r4 │ │ │ │ │ lsr r3, r3, #27 │ │ │ │ │ str r3, [sp, #8] │ │ │ │ │ ldr r3, [sp, #56] @ 0x38 │ │ │ │ │ str r3, [sp, #4] │ │ │ │ │ ldr r3, [sp, #52] @ 0x34 │ │ │ │ │ - mov r1, r5 │ │ │ │ │ str r3, [sp] │ │ │ │ │ - mov r0, r4 │ │ │ │ │ ldr r3, [sp, #48] @ 0x30 │ │ │ │ │ bl 0 │ │ │ │ │ R_ARM_CALL fftw_mpi_mkproblem_dft_d │ │ │ │ │ mov r2, r0 │ │ │ │ │ ldrd r0, [sp, #56] @ 0x38 │ │ │ │ │ bl 0 │ │ │ │ │ R_ARM_CALL fftw_mkapiplan │ │ │ │ │ - add sp, sp, #24 │ │ │ │ │ - pop {r4, r5, r6, r7, r8, pc} │ │ │ │ │ + b 2c64 │ │ │ │ │ mov r0, r4 │ │ │ │ │ bl 0 │ │ │ │ │ R_ARM_CALL fftw_mpi_dtensor_destroy │ │ │ │ │ mov r0, #0 │ │ │ │ │ add sp, sp, #24 │ │ │ │ │ - pop {r4, r5, r6, r7, r8, pc} │ │ │ │ │ + ldrd r4, [sp] │ │ │ │ │ + ldrd r6, [sp, #8] │ │ │ │ │ + ldr r8, [sp, #16] │ │ │ │ │ + add sp, sp, #20 │ │ │ │ │ + pop {pc} @ (ldr pc, [sp], #4) │ │ │ │ │ bl 0 │ │ │ │ │ R_ARM_CALL fftw_the_planner │ │ │ │ │ - ldr r2, [pc, #60] @ 2a08 │ │ │ │ │ + ldr r2, [pc, #60] @ 2cc4 │ │ │ │ │ add r2, pc, r2 │ │ │ │ │ str r2, [r0, #8] │ │ │ │ │ - ldr r2, [pc, #52] @ 2a0c │ │ │ │ │ + ldr r2, [pc, #52] @ 2cc8 │ │ │ │ │ add r2, pc, r2 │ │ │ │ │ str r2, [r0, #12] │ │ │ │ │ - ldr r2, [pc, #44] @ 2a10 │ │ │ │ │ + ldr r2, [pc, #44] @ 2ccc │ │ │ │ │ add r2, pc, r2 │ │ │ │ │ str r2, [r0, #16] │ │ │ │ │ - ldr r2, [pc, #36] @ 2a14 │ │ │ │ │ + ldr r2, [pc, #36] @ 2cd0 │ │ │ │ │ add r2, pc, r2 │ │ │ │ │ str r2, [r0, #20] │ │ │ │ │ bl 0 │ │ │ │ │ R_ARM_CALL fftw_mpi_conf_standard │ │ │ │ │ mov r3, #1 │ │ │ │ │ str r3, [r8] │ │ │ │ │ - b 28cc │ │ │ │ │ - .word 0x00000150 │ │ │ │ │ + b 2b7c │ │ │ │ │ + .word 0x0000014c │ │ │ │ │ R_ARM_REL32 .bss │ │ │ │ │ - .word 0xffffd864 │ │ │ │ │ - .word 0xffffd700 │ │ │ │ │ - .word 0xffffd690 │ │ │ │ │ - .word 0xffffd60c │ │ │ │ │ + .word 0xffffd5cc │ │ │ │ │ + .word 0xffffd444 │ │ │ │ │ + .word 0xffffd3e0 │ │ │ │ │ + .word 0xffffd350 │ │ │ │ │ │ │ │ │ │ -00002a18 : │ │ │ │ │ +00002cd4 : │ │ │ │ │ fftw_mpi_plan_many_dft(): │ │ │ │ │ - push {r4, r5, r6, r7, r8, r9, lr} │ │ │ │ │ + strd r4, [sp, #-28]! @ 0xffffffe4 │ │ │ │ │ mov r5, r0 │ │ │ │ │ add r0, r0, r0, lsl #1 │ │ │ │ │ - sub sp, sp, #20 │ │ │ │ │ - lsl r0, r0, #2 │ │ │ │ │ - ldr r8, [sp, #68] @ 0x44 │ │ │ │ │ + strd r6, [sp, #8] │ │ │ │ │ mov r4, r1 │ │ │ │ │ - mov r9, r2 │ │ │ │ │ mov r7, r3 │ │ │ │ │ + lsl r0, r0, #2 │ │ │ │ │ + strd r8, [sp, #16] │ │ │ │ │ + mov r9, r2 │ │ │ │ │ + str lr, [sp, #24] │ │ │ │ │ + sub sp, sp, #20 │ │ │ │ │ + ldr r8, [sp, #68] @ 0x44 │ │ │ │ │ bl 0 │ │ │ │ │ R_ARM_CALL fftw_malloc_plain │ │ │ │ │ cmp r5, #0 │ │ │ │ │ mov r6, r0 │ │ │ │ │ - ble 2a9c │ │ │ │ │ - sub r4, r4, #4 │ │ │ │ │ - mov ip, r0 │ │ │ │ │ + ble 2d60 │ │ │ │ │ add r3, r4, r5, lsl #2 │ │ │ │ │ - ldr lr, [r4, #4]! │ │ │ │ │ - str lr, [ip, #8] │ │ │ │ │ + mov ip, r0 │ │ │ │ │ + ldr lr, [r4], #4 │ │ │ │ │ cmp r4, r3 │ │ │ │ │ str lr, [ip, #4] │ │ │ │ │ + str lr, [ip, #8] │ │ │ │ │ str lr, [ip], #12 │ │ │ │ │ - bne 2a58 │ │ │ │ │ + bne 2d1c │ │ │ │ │ cmp r5, #1 │ │ │ │ │ - beq 2ae4 │ │ │ │ │ + beq 2db8 │ │ │ │ │ tst r8, #536870912 @ 0x20000000 │ │ │ │ │ addne r3, r6, #12 │ │ │ │ │ moveq r3, r6 │ │ │ │ │ + ldr r2, [sp, #48] @ 0x30 │ │ │ │ │ tst r8, #1073741824 @ 0x40000000 │ │ │ │ │ str r7, [r3, #4] │ │ │ │ │ - ldr r2, [sp, #48] @ 0x30 │ │ │ │ │ addne r3, r6, #12 │ │ │ │ │ moveq r3, r6 │ │ │ │ │ str r2, [r3, #8] │ │ │ │ │ ldr r3, [sp, #64] @ 0x40 │ │ │ │ │ + mov r2, r9 │ │ │ │ │ + mov r1, r6 │ │ │ │ │ + mov r0, r5 │ │ │ │ │ str r3, [sp, #8] │ │ │ │ │ ldr r3, [sp, #60] @ 0x3c │ │ │ │ │ str r3, [sp, #4] │ │ │ │ │ ldr r3, [sp, #56] @ 0x38 │ │ │ │ │ - mov r2, r9 │ │ │ │ │ - mov r1, r6 │ │ │ │ │ + str r8, [sp, #12] │ │ │ │ │ str r3, [sp] │ │ │ │ │ - mov r0, r5 │ │ │ │ │ ldr r3, [sp, #52] @ 0x34 │ │ │ │ │ - str r8, [sp, #12] │ │ │ │ │ - bl 28a0 │ │ │ │ │ + bl 2b44 │ │ │ │ │ R_ARM_CALL fftw_mpi_plan_guru_dft │ │ │ │ │ mov r4, r0 │ │ │ │ │ mov r0, r6 │ │ │ │ │ bl 0 │ │ │ │ │ R_ARM_CALL fftw_ifree │ │ │ │ │ mov r0, r4 │ │ │ │ │ add sp, sp, #20 │ │ │ │ │ - pop {r4, r5, r6, r7, r8, r9, pc} │ │ │ │ │ + ldrd r4, [sp] │ │ │ │ │ + ldrd r6, [sp, #8] │ │ │ │ │ + ldrd r8, [sp, #16] │ │ │ │ │ + add sp, sp, #24 │ │ │ │ │ + pop {pc} @ (ldr pc, [sp], #4) │ │ │ │ │ ldr r3, [sp, #48] @ 0x30 │ │ │ │ │ str r7, [r6, #4] │ │ │ │ │ str r3, [r6, #8] │ │ │ │ │ - b 2a9c │ │ │ │ │ + b 2d60 │ │ │ │ │ │ │ │ │ │ -00002af4 : │ │ │ │ │ +00002dc8 : │ │ │ │ │ fftw_mpi_plan_dft(): │ │ │ │ │ - push {r4, r5, r6, r7, r8, r9, sl, lr} │ │ │ │ │ + strd r4, [sp, #-32]! @ 0xffffffe0 │ │ │ │ │ + mov r4, r1 │ │ │ │ │ + strd r6, [sp, #8] │ │ │ │ │ mov r6, r0 │ │ │ │ │ add r0, r0, r0, lsl #1 │ │ │ │ │ - sub sp, sp, #16 │ │ │ │ │ - lsl r0, r0, #2 │ │ │ │ │ - ldr r8, [sp, #56] @ 0x38 │ │ │ │ │ - mov r4, r1 │ │ │ │ │ + strd r8, [sp, #16] │ │ │ │ │ mov r7, r2 │ │ │ │ │ + lsl r0, r0, #2 │ │ │ │ │ + str sl, [sp, #24] │ │ │ │ │ mov sl, r3 │ │ │ │ │ + str lr, [sp, #28] │ │ │ │ │ + sub sp, sp, #16 │ │ │ │ │ + ldr r8, [sp, #56] @ 0x38 │ │ │ │ │ bl 0 │ │ │ │ │ R_ARM_CALL fftw_malloc_plain │ │ │ │ │ cmp r6, #0 │ │ │ │ │ mov r9, r0 │ │ │ │ │ - ble 2b7c │ │ │ │ │ - sub r4, r4, #4 │ │ │ │ │ - mov ip, r0 │ │ │ │ │ + ble 2e5c │ │ │ │ │ add r5, r4, r6, lsl #2 │ │ │ │ │ - ldr lr, [r4, #4]! │ │ │ │ │ - str lr, [ip, #8] │ │ │ │ │ + mov ip, r0 │ │ │ │ │ + ldr lr, [r4], #4 │ │ │ │ │ cmp r4, r5 │ │ │ │ │ str lr, [ip, #4] │ │ │ │ │ + str lr, [ip, #8] │ │ │ │ │ str lr, [ip], #12 │ │ │ │ │ - bne 2b34 │ │ │ │ │ + bne 2e14 │ │ │ │ │ cmp r6, #1 │ │ │ │ │ - beq 2bc0 │ │ │ │ │ + beq 2eb4 │ │ │ │ │ tst r8, #536870912 @ 0x20000000 │ │ │ │ │ addne r3, r9, #12 │ │ │ │ │ moveq r3, r9 │ │ │ │ │ mov r2, #0 │ │ │ │ │ tst r8, #1073741824 @ 0x40000000 │ │ │ │ │ str r2, [r3, #4] │ │ │ │ │ addne r3, r9, #12 │ │ │ │ │ moveq r3, r9 │ │ │ │ │ mov r2, #0 │ │ │ │ │ str r2, [r3, #8] │ │ │ │ │ ldr r3, [sp, #52] @ 0x34 │ │ │ │ │ - str r3, [sp, #8] │ │ │ │ │ - ldr r3, [sp, #48] @ 0x30 │ │ │ │ │ mov r2, #1 │ │ │ │ │ mov r1, r9 │ │ │ │ │ - str r3, [sp, #4] │ │ │ │ │ mov r0, r6 │ │ │ │ │ - mov r3, r7 │ │ │ │ │ - str r8, [sp, #12] │ │ │ │ │ str sl, [sp] │ │ │ │ │ - bl 28a0 │ │ │ │ │ + str r3, [sp, #8] │ │ │ │ │ + ldr r3, [sp, #48] @ 0x30 │ │ │ │ │ + str r8, [sp, #12] │ │ │ │ │ + str r3, [sp, #4] │ │ │ │ │ + mov r3, r7 │ │ │ │ │ + bl 2b44 │ │ │ │ │ R_ARM_CALL fftw_mpi_plan_guru_dft │ │ │ │ │ mov r4, r0 │ │ │ │ │ mov r0, r9 │ │ │ │ │ bl 0 │ │ │ │ │ R_ARM_CALL fftw_ifree │ │ │ │ │ mov r0, r4 │ │ │ │ │ add sp, sp, #16 │ │ │ │ │ - pop {r4, r5, r6, r7, r8, r9, sl, pc} │ │ │ │ │ + ldrd r4, [sp] │ │ │ │ │ + ldrd r6, [sp, #8] │ │ │ │ │ + ldrd r8, [sp, #16] │ │ │ │ │ + ldr sl, [sp, #24] │ │ │ │ │ + add sp, sp, #28 │ │ │ │ │ + pop {pc} @ (ldr pc, [sp], #4) │ │ │ │ │ mov r3, #0 │ │ │ │ │ str r3, [r9, #4] │ │ │ │ │ str r3, [r9, #8] │ │ │ │ │ - b 2b7c │ │ │ │ │ + b 2e5c │ │ │ │ │ │ │ │ │ │ -00002bd0 : │ │ │ │ │ +00002ec4 : │ │ │ │ │ fftw_mpi_plan_dft_1d(): │ │ │ │ │ - push {r4, r5, r6, r7, r8, r9, lr} │ │ │ │ │ + strd r4, [sp, #-28]! @ 0xffffffe4 │ │ │ │ │ mov r5, r0 │ │ │ │ │ - sub sp, sp, #28 │ │ │ │ │ mov r0, #12 │ │ │ │ │ + strd r6, [sp, #8] │ │ │ │ │ mov r6, r3 │ │ │ │ │ mov r7, r1 │ │ │ │ │ + strd r8, [sp, #16] │ │ │ │ │ mov r8, r2 │ │ │ │ │ + ldr r9, [pc, #340] @ 3040 │ │ │ │ │ + str lr, [sp, #24] │ │ │ │ │ + sub sp, sp, #28 │ │ │ │ │ bl 0 │ │ │ │ │ R_ARM_CALL fftw_malloc_plain │ │ │ │ │ - ldr r9, [pc, #312] @ 2d30 │ │ │ │ │ mov r3, #0 │ │ │ │ │ + mov r4, r0 │ │ │ │ │ + str r5, [r0] │ │ │ │ │ add r9, pc, r9 │ │ │ │ │ str r3, [r0, #4] │ │ │ │ │ str r3, [r0, #8] │ │ │ │ │ ldr r3, [r9] │ │ │ │ │ - mov r4, r0 │ │ │ │ │ cmp r3, #0 │ │ │ │ │ - str r5, [r0] │ │ │ │ │ - beq 2cc8 │ │ │ │ │ + beq 2fd8 │ │ │ │ │ cmp r5, #0 │ │ │ │ │ - ble 2cb0 │ │ │ │ │ + ble 2fb0 │ │ │ │ │ add r1, sp, #20 │ │ │ │ │ mov r0, r6 │ │ │ │ │ bl 0 │ │ │ │ │ R_ARM_CALL MPI_Comm_size │ │ │ │ │ ldr r1, [sp, #20] │ │ │ │ │ mov r0, r4 │ │ │ │ │ - bl f2c │ │ │ │ │ + bl 102c │ │ │ │ │ mov r1, #0 │ │ │ │ │ mov r5, r0 │ │ │ │ │ bl 0 │ │ │ │ │ R_ARM_CALL fftw_mpi_num_blocks_total │ │ │ │ │ ldr r3, [sp, #20] │ │ │ │ │ cmp r0, r3 │ │ │ │ │ - bgt 2ca8 │ │ │ │ │ + bgt 2fa8 │ │ │ │ │ mov r1, #1 │ │ │ │ │ mov r0, r5 │ │ │ │ │ bl 0 │ │ │ │ │ R_ARM_CALL fftw_mpi_num_blocks_total │ │ │ │ │ ldr r3, [sp, #20] │ │ │ │ │ cmp r0, r3 │ │ │ │ │ - bgt 2ca8 │ │ │ │ │ + bgt 2fa8 │ │ │ │ │ ldr r3, [sp, #60] @ 0x3c │ │ │ │ │ mov r2, r7 │ │ │ │ │ + mov r1, #1 │ │ │ │ │ + mov r0, r5 │ │ │ │ │ + str r6, [sp] │ │ │ │ │ lsr r3, r3, #27 │ │ │ │ │ str r3, [sp, #8] │ │ │ │ │ ldr r3, [sp, #56] @ 0x38 │ │ │ │ │ - mov r1, #1 │ │ │ │ │ - mov r0, r5 │ │ │ │ │ str r3, [sp, #4] │ │ │ │ │ - str r6, [sp] │ │ │ │ │ mov r3, r8 │ │ │ │ │ bl 0 │ │ │ │ │ R_ARM_CALL fftw_mpi_mkproblem_dft_d │ │ │ │ │ mov r2, r0 │ │ │ │ │ ldrd r0, [sp, #56] @ 0x38 │ │ │ │ │ bl 0 │ │ │ │ │ R_ARM_CALL fftw_mkapiplan │ │ │ │ │ mov r5, r0 │ │ │ │ │ - b 2cb4 │ │ │ │ │ + b 2fb4 │ │ │ │ │ mov r0, r5 │ │ │ │ │ bl 0 │ │ │ │ │ R_ARM_CALL fftw_mpi_dtensor_destroy │ │ │ │ │ mov r5, #0 │ │ │ │ │ mov r0, r4 │ │ │ │ │ bl 0 │ │ │ │ │ R_ARM_CALL fftw_ifree │ │ │ │ │ mov r0, r5 │ │ │ │ │ add sp, sp, #28 │ │ │ │ │ - pop {r4, r5, r6, r7, r8, r9, pc} │ │ │ │ │ + ldrd r4, [sp] │ │ │ │ │ + ldrd r6, [sp, #8] │ │ │ │ │ + ldrd r8, [sp, #16] │ │ │ │ │ + add sp, sp, #24 │ │ │ │ │ + pop {pc} @ (ldr pc, [sp], #4) │ │ │ │ │ bl 0 │ │ │ │ │ R_ARM_CALL fftw_the_planner │ │ │ │ │ - ldr r2, [pc, #96] @ 2d34 │ │ │ │ │ + ldr r2, [pc, #96] @ 3044 │ │ │ │ │ add r2, pc, r2 │ │ │ │ │ str r2, [r0, #8] │ │ │ │ │ - ldr r2, [pc, #88] @ 2d38 │ │ │ │ │ + ldr r2, [pc, #88] @ 3048 │ │ │ │ │ add r2, pc, r2 │ │ │ │ │ str r2, [r0, #12] │ │ │ │ │ - ldr r2, [pc, #80] @ 2d3c │ │ │ │ │ + ldr r2, [pc, #80] @ 304c │ │ │ │ │ add r2, pc, r2 │ │ │ │ │ str r2, [r0, #16] │ │ │ │ │ - ldr r2, [pc, #72] @ 2d40 │ │ │ │ │ + ldr r2, [pc, #72] @ 3050 │ │ │ │ │ add r2, pc, r2 │ │ │ │ │ str r2, [r0, #20] │ │ │ │ │ bl 0 │ │ │ │ │ R_ARM_CALL fftw_mpi_conf_standard │ │ │ │ │ mov r3, #1 │ │ │ │ │ str r3, [r9] │ │ │ │ │ ldr r3, [r4] │ │ │ │ │ cmp r3, #0 │ │ │ │ │ - ble 2cb0 │ │ │ │ │ + ble 2fb0 │ │ │ │ │ ldr r3, [r4, #4] │ │ │ │ │ cmp r3, #0 │ │ │ │ │ - blt 2cb0 │ │ │ │ │ + blt 2fb0 │ │ │ │ │ ldr r3, [r4, #8] │ │ │ │ │ cmp r3, #0 │ │ │ │ │ - bge 2c20 │ │ │ │ │ - b 2cb0 │ │ │ │ │ - .word 0x00000130 │ │ │ │ │ + bge 2f20 │ │ │ │ │ + b 2fb0 │ │ │ │ │ + .word 0x00000138 │ │ │ │ │ R_ARM_REL32 .bss │ │ │ │ │ - .word 0xffffd55c │ │ │ │ │ - .word 0xffffd3f8 │ │ │ │ │ - .word 0xffffd388 │ │ │ │ │ - .word 0xffffd304 │ │ │ │ │ + .word 0xffffd270 │ │ │ │ │ + .word 0xffffd0e8 │ │ │ │ │ + .word 0xffffd084 │ │ │ │ │ + .word 0xffffcff4 │ │ │ │ │ │ │ │ │ │ -00002d44 : │ │ │ │ │ +00003054 : │ │ │ │ │ fftw_mpi_plan_dft_2d(): │ │ │ │ │ - push {r4, r5, r6, r7, r8, r9, lr} │ │ │ │ │ + strd r4, [sp, #-28]! @ 0xffffffe4 │ │ │ │ │ mov r5, r0 │ │ │ │ │ - sub sp, sp, #28 │ │ │ │ │ mov r0, #24 │ │ │ │ │ + strd r6, [sp, #8] │ │ │ │ │ mov r6, r1 │ │ │ │ │ - ldr r7, [sp, #64] @ 0x40 │ │ │ │ │ + strd r8, [sp, #16] │ │ │ │ │ mov r8, r2 │ │ │ │ │ mov r9, r3 │ │ │ │ │ + str lr, [sp, #24] │ │ │ │ │ + sub sp, sp, #28 │ │ │ │ │ + ldr r7, [sp, #64] @ 0x40 │ │ │ │ │ bl 0 │ │ │ │ │ R_ARM_CALL fftw_malloc_plain │ │ │ │ │ - tst r7, #536870912 @ 0x20000000 │ │ │ │ │ - mov r3, #0 │ │ │ │ │ mov r4, r0 │ │ │ │ │ - str r5, [r0, #8] │ │ │ │ │ str r5, [r0, #4] │ │ │ │ │ + mov r3, #0 │ │ │ │ │ + str r5, [r0, #8] │ │ │ │ │ str r5, [r0], #12 │ │ │ │ │ - str r6, [r4, #20] │ │ │ │ │ - str r6, [r4, #16] │ │ │ │ │ str r6, [r4, #12] │ │ │ │ │ - ldr r6, [pc, #352] @ 2ef4 │ │ │ │ │ + tst r7, #536870912 @ 0x20000000 │ │ │ │ │ + str r6, [r4, #16] │ │ │ │ │ moveq r2, r4 │ │ │ │ │ movne r2, r0 │ │ │ │ │ + str r6, [r4, #20] │ │ │ │ │ tst r7, #1073741824 @ 0x40000000 │ │ │ │ │ + ldr r6, [pc, #356] @ 3220 │ │ │ │ │ moveq r0, r4 │ │ │ │ │ - add r6, pc, r6 │ │ │ │ │ str r3, [r2, #4] │ │ │ │ │ str r3, [r0, #8] │ │ │ │ │ + add r6, pc, r6 │ │ │ │ │ ldr r3, [r6] │ │ │ │ │ cmp r3, #0 │ │ │ │ │ - beq 2eac │ │ │ │ │ + beq 31d8 │ │ │ │ │ cmp r5, #0 │ │ │ │ │ - ble 2e94 │ │ │ │ │ + ble 31b0 │ │ │ │ │ ldr r3, [r4, #4] │ │ │ │ │ cmp r3, #0 │ │ │ │ │ - blt 2e94 │ │ │ │ │ + blt 31b0 │ │ │ │ │ ldr r3, [r4, #8] │ │ │ │ │ cmp r3, #0 │ │ │ │ │ - blt 2e94 │ │ │ │ │ + blt 31b0 │ │ │ │ │ ldr r3, [r4, #12] │ │ │ │ │ cmp r3, #0 │ │ │ │ │ - ble 2e94 │ │ │ │ │ + ble 31b0 │ │ │ │ │ ldr r3, [r4, #16] │ │ │ │ │ cmp r3, #0 │ │ │ │ │ - blt 2e94 │ │ │ │ │ + blt 31b0 │ │ │ │ │ ldr r3, [r4, #20] │ │ │ │ │ cmp r3, #0 │ │ │ │ │ - blt 2e94 │ │ │ │ │ - add r1, sp, #20 │ │ │ │ │ + blt 31b0 │ │ │ │ │ ldr r0, [sp, #56] @ 0x38 │ │ │ │ │ + add r1, sp, #20 │ │ │ │ │ bl 0 │ │ │ │ │ R_ARM_CALL MPI_Comm_size │ │ │ │ │ ldr r1, [sp, #20] │ │ │ │ │ mov r2, #0 │ │ │ │ │ mov r0, r4 │ │ │ │ │ - bl 9ec │ │ │ │ │ + bl a90 │ │ │ │ │ mov r1, #0 │ │ │ │ │ mov r5, r0 │ │ │ │ │ bl 0 │ │ │ │ │ R_ARM_CALL fftw_mpi_num_blocks_total │ │ │ │ │ ldr r3, [sp, #20] │ │ │ │ │ cmp r0, r3 │ │ │ │ │ - bgt 2e8c │ │ │ │ │ + bgt 31a8 │ │ │ │ │ mov r1, #1 │ │ │ │ │ mov r0, r5 │ │ │ │ │ bl 0 │ │ │ │ │ R_ARM_CALL fftw_mpi_num_blocks_total │ │ │ │ │ ldr r3, [sp, #20] │ │ │ │ │ cmp r0, r3 │ │ │ │ │ - bgt 2e8c │ │ │ │ │ + bgt 31a8 │ │ │ │ │ lsr r3, r7, #27 │ │ │ │ │ + mov r2, r8 │ │ │ │ │ + mov r1, #1 │ │ │ │ │ + mov r0, r5 │ │ │ │ │ str r3, [sp, #8] │ │ │ │ │ ldr r3, [sp, #60] @ 0x3c │ │ │ │ │ str r3, [sp, #4] │ │ │ │ │ ldr r3, [sp, #56] @ 0x38 │ │ │ │ │ - mov r2, r8 │ │ │ │ │ - mov r1, #1 │ │ │ │ │ - mov r0, r5 │ │ │ │ │ str r3, [sp] │ │ │ │ │ mov r3, r9 │ │ │ │ │ bl 0 │ │ │ │ │ R_ARM_CALL fftw_mpi_mkproblem_dft_d │ │ │ │ │ - mov r1, r7 │ │ │ │ │ mov r2, r0 │ │ │ │ │ ldr r0, [sp, #60] @ 0x3c │ │ │ │ │ + mov r1, r7 │ │ │ │ │ bl 0 │ │ │ │ │ R_ARM_CALL fftw_mkapiplan │ │ │ │ │ mov r5, r0 │ │ │ │ │ - b 2e98 │ │ │ │ │ + b 31b4 │ │ │ │ │ mov r0, r5 │ │ │ │ │ bl 0 │ │ │ │ │ R_ARM_CALL fftw_mpi_dtensor_destroy │ │ │ │ │ mov r5, #0 │ │ │ │ │ mov r0, r4 │ │ │ │ │ bl 0 │ │ │ │ │ R_ARM_CALL fftw_ifree │ │ │ │ │ mov r0, r5 │ │ │ │ │ add sp, sp, #28 │ │ │ │ │ - pop {r4, r5, r6, r7, r8, r9, pc} │ │ │ │ │ + ldrd r4, [sp] │ │ │ │ │ + ldrd r6, [sp, #8] │ │ │ │ │ + ldrd r8, [sp, #16] │ │ │ │ │ + add sp, sp, #24 │ │ │ │ │ + pop {pc} @ (ldr pc, [sp], #4) │ │ │ │ │ bl 0 │ │ │ │ │ R_ARM_CALL fftw_the_planner │ │ │ │ │ - ldr r2, [pc, #64] @ 2ef8 │ │ │ │ │ + ldr r2, [pc, #64] @ 3224 │ │ │ │ │ add r2, pc, r2 │ │ │ │ │ str r2, [r0, #8] │ │ │ │ │ - ldr r2, [pc, #56] @ 2efc │ │ │ │ │ + ldr r2, [pc, #56] @ 3228 │ │ │ │ │ add r2, pc, r2 │ │ │ │ │ str r2, [r0, #12] │ │ │ │ │ - ldr r2, [pc, #48] @ 2f00 │ │ │ │ │ + ldr r2, [pc, #48] @ 322c │ │ │ │ │ add r2, pc, r2 │ │ │ │ │ str r2, [r0, #16] │ │ │ │ │ - ldr r2, [pc, #40] @ 2f04 │ │ │ │ │ + ldr r2, [pc, #40] @ 3230 │ │ │ │ │ add r2, pc, r2 │ │ │ │ │ str r2, [r0, #20] │ │ │ │ │ bl 0 │ │ │ │ │ R_ARM_CALL fftw_mpi_conf_standard │ │ │ │ │ mov r3, #1 │ │ │ │ │ ldr r5, [r4] │ │ │ │ │ str r3, [r6] │ │ │ │ │ - b 2db8 │ │ │ │ │ - .word 0x0000014c │ │ │ │ │ + b 30d4 │ │ │ │ │ + .word 0x00000154 │ │ │ │ │ R_ARM_REL32 .bss │ │ │ │ │ - .word 0xffffd378 │ │ │ │ │ - .word 0xffffd214 │ │ │ │ │ - .word 0xffffd1a4 │ │ │ │ │ - .word 0xffffd120 │ │ │ │ │ + .word 0xffffd070 │ │ │ │ │ + .word 0xffffcee8 │ │ │ │ │ + .word 0xffffce84 │ │ │ │ │ + .word 0xffffcdf4 │ │ │ │ │ │ │ │ │ │ -00002f08 : │ │ │ │ │ +00003234 : │ │ │ │ │ fftw_mpi_plan_dft_3d(): │ │ │ │ │ - push {r4, r5, r6, r7, r8, r9, lr} │ │ │ │ │ + strd r4, [sp, #-28]! @ 0xffffffe4 │ │ │ │ │ + mov r5, r2 │ │ │ │ │ + strd r6, [sp, #8] │ │ │ │ │ mov r7, r0 │ │ │ │ │ - sub sp, sp, #28 │ │ │ │ │ mov r0, #36 @ 0x24 │ │ │ │ │ - mov r5, r2 │ │ │ │ │ + strd r8, [sp, #16] │ │ │ │ │ mov r6, r1 │ │ │ │ │ - ldr r8, [sp, #68] @ 0x44 │ │ │ │ │ mov r9, r3 │ │ │ │ │ + str lr, [sp, #24] │ │ │ │ │ + sub sp, sp, #28 │ │ │ │ │ + ldr r8, [sp, #68] @ 0x44 │ │ │ │ │ bl 0 │ │ │ │ │ R_ARM_CALL fftw_malloc_plain │ │ │ │ │ - tst r8, #536870912 @ 0x20000000 │ │ │ │ │ - mov r3, #0 │ │ │ │ │ mov ip, r0 │ │ │ │ │ - str r7, [r0, #8] │ │ │ │ │ str r7, [r0, #4] │ │ │ │ │ + mov r3, #0 │ │ │ │ │ + str r7, [r0, #8] │ │ │ │ │ + mov r4, r0 │ │ │ │ │ str r7, [ip], #12 │ │ │ │ │ - str r5, [r0, #32] │ │ │ │ │ - str r5, [r0, #28] │ │ │ │ │ + tst r8, #536870912 @ 0x20000000 │ │ │ │ │ + str r6, [r0, #12] │ │ │ │ │ str r5, [r0, #24] │ │ │ │ │ - ldr r5, [pc, #404] @ 30ec │ │ │ │ │ moveq r2, r0 │ │ │ │ │ movne r2, ip │ │ │ │ │ + str r5, [r0, #28] │ │ │ │ │ tst r8, #1073741824 @ 0x40000000 │ │ │ │ │ + str r5, [r0, #32] │ │ │ │ │ moveq ip, r0 │ │ │ │ │ - add r5, pc, r5 │ │ │ │ │ - str r6, [r0, #20] │ │ │ │ │ + ldr r5, [pc, #396] @ 3434 │ │ │ │ │ str r6, [r0, #16] │ │ │ │ │ - str r6, [r0, #12] │ │ │ │ │ + str r6, [r0, #20] │ │ │ │ │ str r3, [r2, #4] │ │ │ │ │ str r3, [ip, #8] │ │ │ │ │ + add r5, pc, r5 │ │ │ │ │ ldr r3, [r5] │ │ │ │ │ - mov r4, r0 │ │ │ │ │ cmp r3, #0 │ │ │ │ │ - beq 30a8 │ │ │ │ │ + beq 33f0 │ │ │ │ │ ldr r3, [r4] │ │ │ │ │ cmp r3, #0 │ │ │ │ │ - ble 3090 │ │ │ │ │ + ble 33c8 │ │ │ │ │ ldr r3, [r4, #4] │ │ │ │ │ cmp r3, #0 │ │ │ │ │ - blt 3090 │ │ │ │ │ + blt 33c8 │ │ │ │ │ ldr r3, [r4, #8] │ │ │ │ │ cmp r3, #0 │ │ │ │ │ - blt 3090 │ │ │ │ │ + blt 33c8 │ │ │ │ │ ldr r3, [r4, #12] │ │ │ │ │ cmp r3, #0 │ │ │ │ │ - ble 3090 │ │ │ │ │ + ble 33c8 │ │ │ │ │ ldr r3, [r4, #16] │ │ │ │ │ cmp r3, #0 │ │ │ │ │ - blt 3090 │ │ │ │ │ + blt 33c8 │ │ │ │ │ ldr r3, [r4, #20] │ │ │ │ │ cmp r3, #0 │ │ │ │ │ - blt 3090 │ │ │ │ │ + blt 33c8 │ │ │ │ │ ldr r3, [r4, #24] │ │ │ │ │ cmp r3, #0 │ │ │ │ │ - ble 3090 │ │ │ │ │ + ble 33c8 │ │ │ │ │ ldr r3, [r4, #28] │ │ │ │ │ cmp r3, #0 │ │ │ │ │ - blt 3090 │ │ │ │ │ + blt 33c8 │ │ │ │ │ ldr r3, [r4, #32] │ │ │ │ │ cmp r3, #0 │ │ │ │ │ - blt 3090 │ │ │ │ │ - add r1, sp, #20 │ │ │ │ │ + blt 33c8 │ │ │ │ │ ldr r0, [sp, #60] @ 0x3c │ │ │ │ │ + add r1, sp, #20 │ │ │ │ │ bl 0 │ │ │ │ │ R_ARM_CALL MPI_Comm_size │ │ │ │ │ ldr r1, [sp, #20] │ │ │ │ │ mov r2, #0 │ │ │ │ │ mov r0, r4 │ │ │ │ │ - bl 3a8 │ │ │ │ │ + bl 3f0 │ │ │ │ │ mov r1, #0 │ │ │ │ │ mov r5, r0 │ │ │ │ │ bl 0 │ │ │ │ │ R_ARM_CALL fftw_mpi_num_blocks_total │ │ │ │ │ ldr r3, [sp, #20] │ │ │ │ │ cmp r0, r3 │ │ │ │ │ - bgt 3088 │ │ │ │ │ + bgt 33c0 │ │ │ │ │ mov r1, #1 │ │ │ │ │ mov r0, r5 │ │ │ │ │ bl 0 │ │ │ │ │ R_ARM_CALL fftw_mpi_num_blocks_total │ │ │ │ │ ldr r3, [sp, #20] │ │ │ │ │ cmp r0, r3 │ │ │ │ │ - bgt 3088 │ │ │ │ │ + bgt 33c0 │ │ │ │ │ lsr r3, r8, #27 │ │ │ │ │ + mov r2, r9 │ │ │ │ │ + mov r1, #1 │ │ │ │ │ + mov r0, r5 │ │ │ │ │ str r3, [sp, #8] │ │ │ │ │ ldr r3, [sp, #64] @ 0x40 │ │ │ │ │ str r3, [sp, #4] │ │ │ │ │ ldr r3, [sp, #60] @ 0x3c │ │ │ │ │ - mov r2, r9 │ │ │ │ │ - mov r1, #1 │ │ │ │ │ - mov r0, r5 │ │ │ │ │ str r3, [sp] │ │ │ │ │ ldr r3, [sp, #56] @ 0x38 │ │ │ │ │ bl 0 │ │ │ │ │ R_ARM_CALL fftw_mpi_mkproblem_dft_d │ │ │ │ │ - mov r1, r8 │ │ │ │ │ mov r2, r0 │ │ │ │ │ ldr r0, [sp, #64] @ 0x40 │ │ │ │ │ + mov r1, r8 │ │ │ │ │ bl 0 │ │ │ │ │ R_ARM_CALL fftw_mkapiplan │ │ │ │ │ mov r5, r0 │ │ │ │ │ - b 3094 │ │ │ │ │ + b 33cc │ │ │ │ │ mov r0, r5 │ │ │ │ │ bl 0 │ │ │ │ │ R_ARM_CALL fftw_mpi_dtensor_destroy │ │ │ │ │ mov r5, #0 │ │ │ │ │ mov r0, r4 │ │ │ │ │ bl 0 │ │ │ │ │ R_ARM_CALL fftw_ifree │ │ │ │ │ mov r0, r5 │ │ │ │ │ add sp, sp, #28 │ │ │ │ │ - pop {r4, r5, r6, r7, r8, r9, pc} │ │ │ │ │ + ldrd r4, [sp] │ │ │ │ │ + ldrd r6, [sp, #8] │ │ │ │ │ + ldrd r8, [sp, #16] │ │ │ │ │ + add sp, sp, #24 │ │ │ │ │ + pop {pc} @ (ldr pc, [sp], #4) │ │ │ │ │ bl 0 │ │ │ │ │ R_ARM_CALL fftw_the_planner │ │ │ │ │ - ldr r2, [pc, #60] @ 30f0 │ │ │ │ │ + ldr r2, [pc, #60] @ 3438 │ │ │ │ │ add r2, pc, r2 │ │ │ │ │ str r2, [r0, #8] │ │ │ │ │ - ldr r2, [pc, #52] @ 30f4 │ │ │ │ │ + ldr r2, [pc, #52] @ 343c │ │ │ │ │ add r2, pc, r2 │ │ │ │ │ str r2, [r0, #12] │ │ │ │ │ - ldr r2, [pc, #44] @ 30f8 │ │ │ │ │ + ldr r2, [pc, #44] @ 3440 │ │ │ │ │ add r2, pc, r2 │ │ │ │ │ str r2, [r0, #16] │ │ │ │ │ - ldr r2, [pc, #36] @ 30fc │ │ │ │ │ + ldr r2, [pc, #36] @ 3444 │ │ │ │ │ add r2, pc, r2 │ │ │ │ │ str r2, [r0, #20] │ │ │ │ │ bl 0 │ │ │ │ │ R_ARM_CALL fftw_mpi_conf_standard │ │ │ │ │ mov r3, #1 │ │ │ │ │ str r3, [r5] │ │ │ │ │ - b 2f8c │ │ │ │ │ - .word 0x00000180 │ │ │ │ │ + b 32c4 │ │ │ │ │ + .word 0x00000178 │ │ │ │ │ R_ARM_REL32 .bss │ │ │ │ │ - .word 0xffffd17c │ │ │ │ │ - .word 0xffffd018 │ │ │ │ │ - .word 0xffffcfa8 │ │ │ │ │ - .word 0xffffcf24 │ │ │ │ │ + .word 0xffffce58 │ │ │ │ │ + .word 0xffffccd0 │ │ │ │ │ + .word 0xffffcc6c │ │ │ │ │ + .word 0xffffcbdc │ │ │ │ │ │ │ │ │ │ -00003100 : │ │ │ │ │ +00003448 : │ │ │ │ │ fftw_mpi_plan_guru_r2r(): │ │ │ │ │ - push {r4, r5, r6, r7, r8, lr} │ │ │ │ │ - ldr r8, [pc, #380] @ 3288 │ │ │ │ │ + strd r4, [sp, #-24]! @ 0xffffffe8 │ │ │ │ │ + mov r4, r0 │ │ │ │ │ + mov r5, r2 │ │ │ │ │ + strd r6, [sp, #8] │ │ │ │ │ mov r7, r3 │ │ │ │ │ + mov r6, r1 │ │ │ │ │ + str r8, [sp, #16] │ │ │ │ │ + ldr r8, [pc, #376] @ 35e4 │ │ │ │ │ + str lr, [sp, #20] │ │ │ │ │ + sub sp, sp, #24 │ │ │ │ │ add r8, pc, r8 │ │ │ │ │ ldr r3, [r8] │ │ │ │ │ - sub sp, sp, #24 │ │ │ │ │ cmp r3, #0 │ │ │ │ │ - mov r4, r0 │ │ │ │ │ - mov r6, r1 │ │ │ │ │ - mov r5, r2 │ │ │ │ │ - beq 3244 │ │ │ │ │ + beq 35a0 │ │ │ │ │ cmp r4, #0 │ │ │ │ │ movgt lr, #0 │ │ │ │ │ movle lr, #1 │ │ │ │ │ orrs lr, lr, r5, lsr #31 │ │ │ │ │ - bne 3234 │ │ │ │ │ + bne 3580 │ │ │ │ │ mov ip, r6 │ │ │ │ │ ldr r3, [ip] │ │ │ │ │ cmp r3, #0 │ │ │ │ │ - ble 3234 │ │ │ │ │ + ble 3580 │ │ │ │ │ ldr r3, [ip, #4] │ │ │ │ │ cmp r3, #0 │ │ │ │ │ - blt 3234 │ │ │ │ │ + blt 3580 │ │ │ │ │ ldr r3, [ip, #8] │ │ │ │ │ cmp r3, #0 │ │ │ │ │ - blt 3234 │ │ │ │ │ + blt 3580 │ │ │ │ │ add lr, lr, #1 │ │ │ │ │ - cmp r4, lr │ │ │ │ │ add ip, ip, #12 │ │ │ │ │ - bgt 3144 │ │ │ │ │ + cmp r4, lr │ │ │ │ │ + bgt 3498 │ │ │ │ │ ldr r1, [sp, #56] @ 0x38 │ │ │ │ │ mov r0, r4 │ │ │ │ │ bl 0 │ │ │ │ │ R_ARM_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_CALL MPI_Comm_size │ │ │ │ │ - mov r3, #0 │ │ │ │ │ ldr r2, [sp, #20] │ │ │ │ │ + mov r3, #0 │ │ │ │ │ mov r1, r6 │ │ │ │ │ mov r0, r4 │ │ │ │ │ - bl 1254 │ │ │ │ │ + bl 13a8 │ │ │ │ │ mov r1, #0 │ │ │ │ │ mov r4, r0 │ │ │ │ │ bl 0 │ │ │ │ │ R_ARM_CALL fftw_mpi_num_blocks_total │ │ │ │ │ ldr r3, [sp, #20] │ │ │ │ │ cmp r0, r3 │ │ │ │ │ - bgt 322c │ │ │ │ │ + bgt 3578 │ │ │ │ │ mov r1, #1 │ │ │ │ │ mov r0, r4 │ │ │ │ │ bl 0 │ │ │ │ │ R_ARM_CALL fftw_mpi_num_blocks_total │ │ │ │ │ ldr r3, [sp, #20] │ │ │ │ │ cmp r0, r3 │ │ │ │ │ - bgt 322c │ │ │ │ │ + bgt 3578 │ │ │ │ │ ldr r3, [sp, #60] @ 0x3c │ │ │ │ │ mov r2, r7 │ │ │ │ │ + mov r1, r5 │ │ │ │ │ + mov r0, r4 │ │ │ │ │ + str r8, [sp, #4] │ │ │ │ │ lsr r3, r3, #27 │ │ │ │ │ str r3, [sp, #8] │ │ │ │ │ ldr r3, [sp, #52] @ 0x34 │ │ │ │ │ - mov r1, r5 │ │ │ │ │ str r3, [sp] │ │ │ │ │ - mov r0, r4 │ │ │ │ │ ldr r3, [sp, #48] @ 0x30 │ │ │ │ │ - str r8, [sp, #4] │ │ │ │ │ bl 0 │ │ │ │ │ R_ARM_CALL fftw_mpi_mkproblem_rdft_d │ │ │ │ │ ldr r1, [sp, #60] @ 0x3c │ │ │ │ │ mov r2, r0 │ │ │ │ │ mov r0, #0 │ │ │ │ │ bl 0 │ │ │ │ │ R_ARM_CALL fftw_mkapiplan │ │ │ │ │ mov r4, r0 │ │ │ │ │ mov r0, r8 │ │ │ │ │ bl 0 │ │ │ │ │ R_ARM_CALL fftw_ifree0 │ │ │ │ │ - mov r0, r4 │ │ │ │ │ - add sp, sp, #24 │ │ │ │ │ - pop {r4, r5, r6, r7, r8, pc} │ │ │ │ │ + b 3584 │ │ │ │ │ mov r0, r4 │ │ │ │ │ bl 0 │ │ │ │ │ R_ARM_CALL fftw_mpi_dtensor_destroy │ │ │ │ │ mov r4, #0 │ │ │ │ │ mov r0, r4 │ │ │ │ │ add sp, sp, #24 │ │ │ │ │ - pop {r4, r5, r6, r7, r8, pc} │ │ │ │ │ + ldrd r4, [sp] │ │ │ │ │ + ldrd r6, [sp, #8] │ │ │ │ │ + ldr r8, [sp, #16] │ │ │ │ │ + add sp, sp, #20 │ │ │ │ │ + pop {pc} @ (ldr pc, [sp], #4) │ │ │ │ │ bl 0 │ │ │ │ │ R_ARM_CALL fftw_the_planner │ │ │ │ │ - ldr r2, [pc, #60] @ 328c │ │ │ │ │ + ldr r2, [pc, #60] @ 35e8 │ │ │ │ │ add r2, pc, r2 │ │ │ │ │ str r2, [r0, #8] │ │ │ │ │ - ldr r2, [pc, #52] @ 3290 │ │ │ │ │ + ldr r2, [pc, #52] @ 35ec │ │ │ │ │ add r2, pc, r2 │ │ │ │ │ str r2, [r0, #12] │ │ │ │ │ - ldr r2, [pc, #44] @ 3294 │ │ │ │ │ + ldr r2, [pc, #44] @ 35f0 │ │ │ │ │ add r2, pc, r2 │ │ │ │ │ str r2, [r0, #16] │ │ │ │ │ - ldr r2, [pc, #36] @ 3298 │ │ │ │ │ + ldr r2, [pc, #36] @ 35f4 │ │ │ │ │ add r2, pc, r2 │ │ │ │ │ str r2, [r0, #20] │ │ │ │ │ bl 0 │ │ │ │ │ R_ARM_CALL fftw_mpi_conf_standard │ │ │ │ │ mov r3, #1 │ │ │ │ │ str r3, [r8] │ │ │ │ │ - b 312c │ │ │ │ │ - .word 0x00000174 │ │ │ │ │ + b 3480 │ │ │ │ │ + .word 0x0000016c │ │ │ │ │ R_ARM_REL32 .bss │ │ │ │ │ - .word 0xffffcfe0 │ │ │ │ │ - .word 0xffffce7c │ │ │ │ │ - .word 0xffffce0c │ │ │ │ │ - .word 0xffffcd88 │ │ │ │ │ + .word 0xffffcca8 │ │ │ │ │ + .word 0xffffcb20 │ │ │ │ │ + .word 0xffffcabc │ │ │ │ │ + .word 0xffffca2c │ │ │ │ │ │ │ │ │ │ -0000329c : │ │ │ │ │ +000035f8 : │ │ │ │ │ fftw_mpi_plan_many_r2r(): │ │ │ │ │ - push {r4, r5, r6, r7, r8, r9, lr} │ │ │ │ │ + strd r4, [sp, #-28]! @ 0xffffffe4 │ │ │ │ │ mov r5, r0 │ │ │ │ │ add r0, r0, r0, lsl #1 │ │ │ │ │ - sub sp, sp, #20 │ │ │ │ │ - lsl r0, r0, #2 │ │ │ │ │ - ldr r8, [sp, #68] @ 0x44 │ │ │ │ │ + strd r6, [sp, #8] │ │ │ │ │ mov r4, r1 │ │ │ │ │ - mov r9, r2 │ │ │ │ │ mov r7, r3 │ │ │ │ │ + lsl r0, r0, #2 │ │ │ │ │ + strd r8, [sp, #16] │ │ │ │ │ + mov r9, r2 │ │ │ │ │ + str lr, [sp, #24] │ │ │ │ │ + sub sp, sp, #20 │ │ │ │ │ + ldr r8, [sp, #68] @ 0x44 │ │ │ │ │ bl 0 │ │ │ │ │ R_ARM_CALL fftw_malloc_plain │ │ │ │ │ cmp r5, #0 │ │ │ │ │ mov r6, r0 │ │ │ │ │ - ble 3320 │ │ │ │ │ - sub r4, r4, #4 │ │ │ │ │ - mov ip, r0 │ │ │ │ │ + ble 3684 │ │ │ │ │ add r3, r4, r5, lsl #2 │ │ │ │ │ - ldr lr, [r4, #4]! │ │ │ │ │ - str lr, [ip, #8] │ │ │ │ │ + mov ip, r0 │ │ │ │ │ + ldr lr, [r4], #4 │ │ │ │ │ cmp r4, r3 │ │ │ │ │ str lr, [ip, #4] │ │ │ │ │ + str lr, [ip, #8] │ │ │ │ │ str lr, [ip], #12 │ │ │ │ │ - bne 32dc │ │ │ │ │ + bne 3640 │ │ │ │ │ cmp r5, #1 │ │ │ │ │ - beq 3368 │ │ │ │ │ + beq 36dc │ │ │ │ │ tst r8, #536870912 @ 0x20000000 │ │ │ │ │ addne r3, r6, #12 │ │ │ │ │ moveq r3, r6 │ │ │ │ │ + ldr r2, [sp, #48] @ 0x30 │ │ │ │ │ tst r8, #1073741824 @ 0x40000000 │ │ │ │ │ str r7, [r3, #4] │ │ │ │ │ - ldr r2, [sp, #48] @ 0x30 │ │ │ │ │ addne r3, r6, #12 │ │ │ │ │ moveq r3, r6 │ │ │ │ │ str r2, [r3, #8] │ │ │ │ │ ldr r3, [sp, #64] @ 0x40 │ │ │ │ │ + mov r2, r9 │ │ │ │ │ + mov r1, r6 │ │ │ │ │ + mov r0, r5 │ │ │ │ │ str r3, [sp, #8] │ │ │ │ │ ldr r3, [sp, #60] @ 0x3c │ │ │ │ │ str r3, [sp, #4] │ │ │ │ │ ldr r3, [sp, #56] @ 0x38 │ │ │ │ │ - mov r2, r9 │ │ │ │ │ - mov r1, r6 │ │ │ │ │ + str r8, [sp, #12] │ │ │ │ │ str r3, [sp] │ │ │ │ │ - mov r0, r5 │ │ │ │ │ ldr r3, [sp, #52] @ 0x34 │ │ │ │ │ - str r8, [sp, #12] │ │ │ │ │ - bl 3100 │ │ │ │ │ + bl 3448 │ │ │ │ │ R_ARM_CALL fftw_mpi_plan_guru_r2r │ │ │ │ │ mov r4, r0 │ │ │ │ │ mov r0, r6 │ │ │ │ │ bl 0 │ │ │ │ │ R_ARM_CALL fftw_ifree │ │ │ │ │ mov r0, r4 │ │ │ │ │ add sp, sp, #20 │ │ │ │ │ - pop {r4, r5, r6, r7, r8, r9, pc} │ │ │ │ │ + ldrd r4, [sp] │ │ │ │ │ + ldrd r6, [sp, #8] │ │ │ │ │ + ldrd r8, [sp, #16] │ │ │ │ │ + add sp, sp, #24 │ │ │ │ │ + pop {pc} @ (ldr pc, [sp], #4) │ │ │ │ │ ldr r3, [sp, #48] @ 0x30 │ │ │ │ │ str r7, [r6, #4] │ │ │ │ │ str r3, [r6, #8] │ │ │ │ │ - b 3320 │ │ │ │ │ + b 3684 │ │ │ │ │ │ │ │ │ │ -00003378 : │ │ │ │ │ +000036ec : │ │ │ │ │ fftw_mpi_plan_r2r(): │ │ │ │ │ - push {r4, r5, r6, r7, r8, r9, sl, lr} │ │ │ │ │ + strd r4, [sp, #-32]! @ 0xffffffe0 │ │ │ │ │ + mov r4, r1 │ │ │ │ │ + strd r6, [sp, #8] │ │ │ │ │ mov r6, r0 │ │ │ │ │ add r0, r0, r0, lsl #1 │ │ │ │ │ - sub sp, sp, #16 │ │ │ │ │ - lsl r0, r0, #2 │ │ │ │ │ - ldr r8, [sp, #56] @ 0x38 │ │ │ │ │ - mov r4, r1 │ │ │ │ │ + strd r8, [sp, #16] │ │ │ │ │ mov r7, r2 │ │ │ │ │ + lsl r0, r0, #2 │ │ │ │ │ + str sl, [sp, #24] │ │ │ │ │ mov sl, r3 │ │ │ │ │ + str lr, [sp, #28] │ │ │ │ │ + sub sp, sp, #16 │ │ │ │ │ + ldr r8, [sp, #56] @ 0x38 │ │ │ │ │ bl 0 │ │ │ │ │ R_ARM_CALL fftw_malloc_plain │ │ │ │ │ cmp r6, #0 │ │ │ │ │ mov r9, r0 │ │ │ │ │ - ble 3400 │ │ │ │ │ - sub r4, r4, #4 │ │ │ │ │ - mov ip, r0 │ │ │ │ │ + ble 3780 │ │ │ │ │ add r5, r4, r6, lsl #2 │ │ │ │ │ - ldr lr, [r4, #4]! │ │ │ │ │ - str lr, [ip, #8] │ │ │ │ │ + mov ip, r0 │ │ │ │ │ + ldr lr, [r4], #4 │ │ │ │ │ cmp r4, r5 │ │ │ │ │ str lr, [ip, #4] │ │ │ │ │ + str lr, [ip, #8] │ │ │ │ │ str lr, [ip], #12 │ │ │ │ │ - bne 33b8 │ │ │ │ │ + bne 3738 │ │ │ │ │ cmp r6, #1 │ │ │ │ │ - beq 3444 │ │ │ │ │ + beq 37d8 │ │ │ │ │ tst r8, #536870912 @ 0x20000000 │ │ │ │ │ addne r3, r9, #12 │ │ │ │ │ moveq r3, r9 │ │ │ │ │ mov r2, #0 │ │ │ │ │ tst r8, #1073741824 @ 0x40000000 │ │ │ │ │ str r2, [r3, #4] │ │ │ │ │ addne r3, r9, #12 │ │ │ │ │ moveq r3, r9 │ │ │ │ │ mov r2, #0 │ │ │ │ │ str r2, [r3, #8] │ │ │ │ │ ldr r3, [sp, #52] @ 0x34 │ │ │ │ │ - str r3, [sp, #8] │ │ │ │ │ - ldr r3, [sp, #48] @ 0x30 │ │ │ │ │ mov r2, #1 │ │ │ │ │ mov r1, r9 │ │ │ │ │ - str r3, [sp, #4] │ │ │ │ │ mov r0, r6 │ │ │ │ │ - mov r3, r7 │ │ │ │ │ - str r8, [sp, #12] │ │ │ │ │ str sl, [sp] │ │ │ │ │ - bl 3100 │ │ │ │ │ + str r3, [sp, #8] │ │ │ │ │ + ldr r3, [sp, #48] @ 0x30 │ │ │ │ │ + str r8, [sp, #12] │ │ │ │ │ + str r3, [sp, #4] │ │ │ │ │ + mov r3, r7 │ │ │ │ │ + bl 3448 │ │ │ │ │ R_ARM_CALL fftw_mpi_plan_guru_r2r │ │ │ │ │ mov r4, r0 │ │ │ │ │ mov r0, r9 │ │ │ │ │ bl 0 │ │ │ │ │ R_ARM_CALL fftw_ifree │ │ │ │ │ mov r0, r4 │ │ │ │ │ add sp, sp, #16 │ │ │ │ │ - pop {r4, r5, r6, r7, r8, r9, sl, pc} │ │ │ │ │ + ldrd r4, [sp] │ │ │ │ │ + ldrd r6, [sp, #8] │ │ │ │ │ + ldrd r8, [sp, #16] │ │ │ │ │ + ldr sl, [sp, #24] │ │ │ │ │ + add sp, sp, #28 │ │ │ │ │ + pop {pc} @ (ldr pc, [sp], #4) │ │ │ │ │ mov r3, #0 │ │ │ │ │ str r3, [r9, #4] │ │ │ │ │ str r3, [r9, #8] │ │ │ │ │ - b 3400 │ │ │ │ │ + b 3780 │ │ │ │ │ │ │ │ │ │ -00003454 : │ │ │ │ │ +000037e8 : │ │ │ │ │ fftw_mpi_plan_r2r_2d(): │ │ │ │ │ - push {r4, r5, r6, r7, r8, r9, lr} │ │ │ │ │ - sub sp, sp, #36 @ 0x24 │ │ │ │ │ - mov r9, r3 │ │ │ │ │ - ldr r3, [sp, #68] @ 0x44 │ │ │ │ │ + strd r4, [sp, #-28]! @ 0xffffffe4 │ │ │ │ │ mov r5, r0 │ │ │ │ │ - str r3, [sp, #24] │ │ │ │ │ mov r0, #24 │ │ │ │ │ - ldr r3, [sp, #72] @ 0x48 │ │ │ │ │ + strd r6, [sp, #8] │ │ │ │ │ mov r6, r1 │ │ │ │ │ - ldr r7, [sp, #76] @ 0x4c │ │ │ │ │ + strd r8, [sp, #16] │ │ │ │ │ + mov r9, r3 │ │ │ │ │ mov r8, r2 │ │ │ │ │ + str lr, [sp, #24] │ │ │ │ │ + sub sp, sp, #36 @ 0x24 │ │ │ │ │ + ldr r3, [sp, #68] @ 0x44 │ │ │ │ │ + ldr r7, [sp, #76] @ 0x4c │ │ │ │ │ + str r3, [sp, #24] │ │ │ │ │ + ldr r3, [sp, #72] @ 0x48 │ │ │ │ │ str r3, [sp, #28] │ │ │ │ │ bl 0 │ │ │ │ │ R_ARM_CALL fftw_malloc_plain │ │ │ │ │ - tst r7, #536870912 @ 0x20000000 │ │ │ │ │ - mov r3, #0 │ │ │ │ │ mov r4, r0 │ │ │ │ │ - str r5, [r0, #8] │ │ │ │ │ str r5, [r0, #4] │ │ │ │ │ - str r5, [r0], #12 │ │ │ │ │ - str r6, [r4, #20] │ │ │ │ │ - str r6, [r4, #16] │ │ │ │ │ - str r6, [r4, #12] │ │ │ │ │ - ldr r6, [pc, #372] @ 3628 │ │ │ │ │ + tst r7, #536870912 @ 0x20000000 │ │ │ │ │ + str r5, [r0, #8] │ │ │ │ │ moveq r2, r4 │ │ │ │ │ + mov r3, #0 │ │ │ │ │ + str r5, [r0], #12 │ │ │ │ │ movne r2, r0 │ │ │ │ │ tst r7, #1073741824 @ 0x40000000 │ │ │ │ │ + str r6, [r4, #12] │ │ │ │ │ moveq r0, r4 │ │ │ │ │ - add r6, pc, r6 │ │ │ │ │ + str r6, [r4, #16] │ │ │ │ │ + str r6, [r4, #20] │ │ │ │ │ + ldr r6, [pc, #372] @ 39d8 │ │ │ │ │ str r3, [r2, #4] │ │ │ │ │ str r3, [r0, #8] │ │ │ │ │ + add r6, pc, r6 │ │ │ │ │ ldr r3, [r6] │ │ │ │ │ cmp r3, #0 │ │ │ │ │ - beq 35e0 │ │ │ │ │ + beq 3990 │ │ │ │ │ cmp r5, #0 │ │ │ │ │ - ble 35c8 │ │ │ │ │ + ble 3968 │ │ │ │ │ ldr r3, [r4, #4] │ │ │ │ │ cmp r3, #0 │ │ │ │ │ - blt 35c8 │ │ │ │ │ + blt 3968 │ │ │ │ │ ldr r3, [r4, #8] │ │ │ │ │ cmp r3, #0 │ │ │ │ │ - blt 35c8 │ │ │ │ │ + blt 3968 │ │ │ │ │ ldr r3, [r4, #12] │ │ │ │ │ cmp r3, #0 │ │ │ │ │ - ble 35c8 │ │ │ │ │ + ble 3968 │ │ │ │ │ ldr r3, [r4, #16] │ │ │ │ │ cmp r3, #0 │ │ │ │ │ - blt 35c8 │ │ │ │ │ + blt 3968 │ │ │ │ │ ldr r3, [r4, #20] │ │ │ │ │ cmp r3, #0 │ │ │ │ │ - blt 35c8 │ │ │ │ │ + blt 3968 │ │ │ │ │ add r1, sp, #24 │ │ │ │ │ mov r0, #2 │ │ │ │ │ bl 0 │ │ │ │ │ R_ARM_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_CALL MPI_Comm_size │ │ │ │ │ ldr r1, [sp, #20] │ │ │ │ │ mov r2, #0 │ │ │ │ │ mov r0, r4 │ │ │ │ │ - bl 9ec │ │ │ │ │ + bl a90 │ │ │ │ │ mov r1, #0 │ │ │ │ │ mov r6, r0 │ │ │ │ │ bl 0 │ │ │ │ │ R_ARM_CALL fftw_mpi_num_blocks_total │ │ │ │ │ ldr r3, [sp, #20] │ │ │ │ │ cmp r0, r3 │ │ │ │ │ - bgt 35c0 │ │ │ │ │ + bgt 3960 │ │ │ │ │ mov r1, #1 │ │ │ │ │ mov r0, r6 │ │ │ │ │ bl 0 │ │ │ │ │ R_ARM_CALL fftw_mpi_num_blocks_total │ │ │ │ │ ldr r3, [sp, #20] │ │ │ │ │ cmp r0, r3 │ │ │ │ │ - bgt 35c0 │ │ │ │ │ + bgt 3960 │ │ │ │ │ lsr r3, r7, #27 │ │ │ │ │ - str r3, [sp, #8] │ │ │ │ │ - ldr r3, [sp, #64] @ 0x40 │ │ │ │ │ mov r2, r8 │ │ │ │ │ - str r3, [sp] │ │ │ │ │ mov r1, #1 │ │ │ │ │ - mov r3, r9 │ │ │ │ │ mov r0, r6 │ │ │ │ │ str r5, [sp, #4] │ │ │ │ │ + str r3, [sp, #8] │ │ │ │ │ + ldr r3, [sp, #64] @ 0x40 │ │ │ │ │ + str r3, [sp] │ │ │ │ │ + mov r3, r9 │ │ │ │ │ bl 0 │ │ │ │ │ R_ARM_CALL fftw_mpi_mkproblem_rdft_d │ │ │ │ │ - mov r1, r7 │ │ │ │ │ mov r2, r0 │ │ │ │ │ + mov r1, r7 │ │ │ │ │ mov r0, #0 │ │ │ │ │ bl 0 │ │ │ │ │ R_ARM_CALL fftw_mkapiplan │ │ │ │ │ mov r6, r0 │ │ │ │ │ mov r0, r5 │ │ │ │ │ bl 0 │ │ │ │ │ R_ARM_CALL fftw_ifree0 │ │ │ │ │ - b 35cc │ │ │ │ │ + b 396c │ │ │ │ │ mov r0, r6 │ │ │ │ │ bl 0 │ │ │ │ │ R_ARM_CALL fftw_mpi_dtensor_destroy │ │ │ │ │ mov r6, #0 │ │ │ │ │ mov r0, r4 │ │ │ │ │ bl 0 │ │ │ │ │ R_ARM_CALL fftw_ifree │ │ │ │ │ mov r0, r6 │ │ │ │ │ add sp, sp, #36 @ 0x24 │ │ │ │ │ - pop {r4, r5, r6, r7, r8, r9, pc} │ │ │ │ │ + ldrd r4, [sp] │ │ │ │ │ + ldrd r6, [sp, #8] │ │ │ │ │ + ldrd r8, [sp, #16] │ │ │ │ │ + add sp, sp, #24 │ │ │ │ │ + pop {pc} @ (ldr pc, [sp], #4) │ │ │ │ │ bl 0 │ │ │ │ │ R_ARM_CALL fftw_the_planner │ │ │ │ │ - ldr r2, [pc, #64] @ 362c │ │ │ │ │ + ldr r2, [pc, #64] @ 39dc │ │ │ │ │ add r2, pc, r2 │ │ │ │ │ str r2, [r0, #8] │ │ │ │ │ - ldr r2, [pc, #56] @ 3630 │ │ │ │ │ + ldr r2, [pc, #56] @ 39e0 │ │ │ │ │ add r2, pc, r2 │ │ │ │ │ str r2, [r0, #12] │ │ │ │ │ - ldr r2, [pc, #48] @ 3634 │ │ │ │ │ + ldr r2, [pc, #48] @ 39e4 │ │ │ │ │ add r2, pc, r2 │ │ │ │ │ str r2, [r0, #16] │ │ │ │ │ - ldr r2, [pc, #40] @ 3638 │ │ │ │ │ + ldr r2, [pc, #40] @ 39e8 │ │ │ │ │ add r2, pc, r2 │ │ │ │ │ str r2, [r0, #20] │ │ │ │ │ bl 0 │ │ │ │ │ R_ARM_CALL fftw_mpi_conf_standard │ │ │ │ │ mov r3, #1 │ │ │ │ │ ldr r5, [r4] │ │ │ │ │ str r3, [r6] │ │ │ │ │ - b 34d8 │ │ │ │ │ - .word 0x00000160 │ │ │ │ │ + b 3878 │ │ │ │ │ + .word 0x00000168 │ │ │ │ │ R_ARM_REL32 .bss │ │ │ │ │ - .word 0xffffcc44 │ │ │ │ │ - .word 0xffffcae0 │ │ │ │ │ - .word 0xffffca70 │ │ │ │ │ - .word 0xffffc9ec │ │ │ │ │ + .word 0xffffc8b8 │ │ │ │ │ + .word 0xffffc730 │ │ │ │ │ + .word 0xffffc6cc │ │ │ │ │ + .word 0xffffc63c │ │ │ │ │ │ │ │ │ │ -0000363c : │ │ │ │ │ +000039ec : │ │ │ │ │ fftw_mpi_plan_r2r_3d(): │ │ │ │ │ - push {r4, r5, r6, r7, r8, r9, lr} │ │ │ │ │ - sub sp, sp, #44 @ 0x2c │ │ │ │ │ + strd r4, [sp, #-28]! @ 0xffffffe4 │ │ │ │ │ + mov r5, r2 │ │ │ │ │ + strd r6, [sp, #8] │ │ │ │ │ + mov r7, r0 │ │ │ │ │ + mov r0, #36 @ 0x24 │ │ │ │ │ + strd r8, [sp, #16] │ │ │ │ │ mov r9, r3 │ │ │ │ │ + mov r6, r1 │ │ │ │ │ + str lr, [sp, #24] │ │ │ │ │ + sub sp, sp, #44 @ 0x2c │ │ │ │ │ ldr r3, [sp, #80] @ 0x50 │ │ │ │ │ + ldr r8, [sp, #92] @ 0x5c │ │ │ │ │ str r3, [sp, #24] │ │ │ │ │ ldr r3, [sp, #84] @ 0x54 │ │ │ │ │ - mov r7, r0 │ │ │ │ │ str r3, [sp, #28] │ │ │ │ │ - mov r0, #36 @ 0x24 │ │ │ │ │ ldr r3, [sp, #88] @ 0x58 │ │ │ │ │ - mov r5, r2 │ │ │ │ │ - mov r6, r1 │ │ │ │ │ - ldr r8, [sp, #92] @ 0x5c │ │ │ │ │ str r3, [sp, #32] │ │ │ │ │ bl 0 │ │ │ │ │ R_ARM_CALL fftw_malloc_plain │ │ │ │ │ - tst r8, #536870912 @ 0x20000000 │ │ │ │ │ - mov r3, #0 │ │ │ │ │ mov ip, r0 │ │ │ │ │ - str r7, [r0, #8] │ │ │ │ │ str r7, [r0, #4] │ │ │ │ │ - str r7, [ip], #12 │ │ │ │ │ - str r5, [r0, #32] │ │ │ │ │ - str r5, [r0, #28] │ │ │ │ │ - str r5, [r0, #24] │ │ │ │ │ - ldr r5, [pc, #424] @ 384c │ │ │ │ │ + tst r8, #536870912 @ 0x20000000 │ │ │ │ │ + str r7, [r0, #8] │ │ │ │ │ moveq r2, r0 │ │ │ │ │ + mov r3, #0 │ │ │ │ │ + str r7, [ip], #12 │ │ │ │ │ movne r2, ip │ │ │ │ │ tst r8, #1073741824 @ 0x40000000 │ │ │ │ │ moveq ip, r0 │ │ │ │ │ - add r5, pc, r5 │ │ │ │ │ - str r6, [r0, #20] │ │ │ │ │ - str r6, [r0, #16] │ │ │ │ │ str r6, [r0, #12] │ │ │ │ │ + mov r4, r0 │ │ │ │ │ + str r5, [r0, #24] │ │ │ │ │ + str r5, [r0, #28] │ │ │ │ │ + str r5, [r0, #32] │ │ │ │ │ + ldr r5, [pc, #416] @ 3c18 │ │ │ │ │ + str r6, [r0, #16] │ │ │ │ │ + str r6, [r0, #20] │ │ │ │ │ str r3, [r2, #4] │ │ │ │ │ str r3, [ip, #8] │ │ │ │ │ + add r5, pc, r5 │ │ │ │ │ ldr r3, [r5] │ │ │ │ │ - mov r4, r0 │ │ │ │ │ cmp r3, #0 │ │ │ │ │ - beq 3808 │ │ │ │ │ + beq 3bd4 │ │ │ │ │ ldr r3, [r4] │ │ │ │ │ cmp r3, #0 │ │ │ │ │ - ble 37f0 │ │ │ │ │ + ble 3bac │ │ │ │ │ ldr r3, [r4, #4] │ │ │ │ │ cmp r3, #0 │ │ │ │ │ - blt 37f0 │ │ │ │ │ + blt 3bac │ │ │ │ │ ldr r3, [r4, #8] │ │ │ │ │ cmp r3, #0 │ │ │ │ │ - blt 37f0 │ │ │ │ │ + blt 3bac │ │ │ │ │ ldr r3, [r4, #12] │ │ │ │ │ cmp r3, #0 │ │ │ │ │ - ble 37f0 │ │ │ │ │ + ble 3bac │ │ │ │ │ ldr r3, [r4, #16] │ │ │ │ │ cmp r3, #0 │ │ │ │ │ - blt 37f0 │ │ │ │ │ + blt 3bac │ │ │ │ │ ldr r3, [r4, #20] │ │ │ │ │ cmp r3, #0 │ │ │ │ │ - blt 37f0 │ │ │ │ │ + blt 3bac │ │ │ │ │ ldr r3, [r4, #24] │ │ │ │ │ cmp r3, #0 │ │ │ │ │ - ble 37f0 │ │ │ │ │ + ble 3bac │ │ │ │ │ ldr r3, [r4, #28] │ │ │ │ │ cmp r3, #0 │ │ │ │ │ - blt 37f0 │ │ │ │ │ + blt 3bac │ │ │ │ │ ldr r3, [r4, #32] │ │ │ │ │ cmp r3, #0 │ │ │ │ │ - blt 37f0 │ │ │ │ │ + blt 3bac │ │ │ │ │ add r1, sp, #24 │ │ │ │ │ mov r0, #3 │ │ │ │ │ bl 0 │ │ │ │ │ R_ARM_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_CALL MPI_Comm_size │ │ │ │ │ ldr r1, [sp, #20] │ │ │ │ │ mov r2, #0 │ │ │ │ │ mov r0, r4 │ │ │ │ │ - bl 3a8 │ │ │ │ │ + bl 3f0 │ │ │ │ │ mov r1, #0 │ │ │ │ │ mov r6, r0 │ │ │ │ │ bl 0 │ │ │ │ │ R_ARM_CALL fftw_mpi_num_blocks_total │ │ │ │ │ ldr r3, [sp, #20] │ │ │ │ │ cmp r0, r3 │ │ │ │ │ - bgt 37e8 │ │ │ │ │ + bgt 3ba4 │ │ │ │ │ mov r1, #1 │ │ │ │ │ mov r0, r6 │ │ │ │ │ bl 0 │ │ │ │ │ R_ARM_CALL fftw_mpi_num_blocks_total │ │ │ │ │ ldr r3, [sp, #20] │ │ │ │ │ cmp r0, r3 │ │ │ │ │ - bgt 37e8 │ │ │ │ │ + bgt 3ba4 │ │ │ │ │ lsr r3, r8, #27 │ │ │ │ │ - str r3, [sp, #8] │ │ │ │ │ - ldr r3, [sp, #76] @ 0x4c │ │ │ │ │ mov r2, r9 │ │ │ │ │ - str r3, [sp] │ │ │ │ │ mov r1, #1 │ │ │ │ │ - ldr r3, [sp, #72] @ 0x48 │ │ │ │ │ mov r0, r6 │ │ │ │ │ str r5, [sp, #4] │ │ │ │ │ + str r3, [sp, #8] │ │ │ │ │ + ldr r3, [sp, #76] @ 0x4c │ │ │ │ │ + str r3, [sp] │ │ │ │ │ + ldr r3, [sp, #72] @ 0x48 │ │ │ │ │ bl 0 │ │ │ │ │ R_ARM_CALL fftw_mpi_mkproblem_rdft_d │ │ │ │ │ - mov r1, r8 │ │ │ │ │ mov r2, r0 │ │ │ │ │ + mov r1, r8 │ │ │ │ │ mov r0, #0 │ │ │ │ │ bl 0 │ │ │ │ │ R_ARM_CALL fftw_mkapiplan │ │ │ │ │ mov r6, r0 │ │ │ │ │ mov r0, r5 │ │ │ │ │ bl 0 │ │ │ │ │ R_ARM_CALL fftw_ifree0 │ │ │ │ │ - b 37f4 │ │ │ │ │ + b 3bb0 │ │ │ │ │ mov r0, r6 │ │ │ │ │ bl 0 │ │ │ │ │ R_ARM_CALL fftw_mpi_dtensor_destroy │ │ │ │ │ mov r6, #0 │ │ │ │ │ mov r0, r4 │ │ │ │ │ bl 0 │ │ │ │ │ R_ARM_CALL fftw_ifree │ │ │ │ │ mov r0, r6 │ │ │ │ │ add sp, sp, #44 @ 0x2c │ │ │ │ │ - pop {r4, r5, r6, r7, r8, r9, pc} │ │ │ │ │ + ldrd r4, [sp] │ │ │ │ │ + ldrd r6, [sp, #8] │ │ │ │ │ + ldrd r8, [sp, #16] │ │ │ │ │ + add sp, sp, #24 │ │ │ │ │ + pop {pc} @ (ldr pc, [sp], #4) │ │ │ │ │ bl 0 │ │ │ │ │ R_ARM_CALL fftw_the_planner │ │ │ │ │ - ldr r2, [pc, #60] @ 3850 │ │ │ │ │ + ldr r2, [pc, #60] @ 3c1c │ │ │ │ │ add r2, pc, r2 │ │ │ │ │ str r2, [r0, #8] │ │ │ │ │ - ldr r2, [pc, #52] @ 3854 │ │ │ │ │ + ldr r2, [pc, #52] @ 3c20 │ │ │ │ │ add r2, pc, r2 │ │ │ │ │ str r2, [r0, #12] │ │ │ │ │ - ldr r2, [pc, #44] @ 3858 │ │ │ │ │ + ldr r2, [pc, #44] @ 3c24 │ │ │ │ │ add r2, pc, r2 │ │ │ │ │ str r2, [r0, #16] │ │ │ │ │ - ldr r2, [pc, #36] @ 385c │ │ │ │ │ + ldr r2, [pc, #36] @ 3c28 │ │ │ │ │ add r2, pc, r2 │ │ │ │ │ str r2, [r0, #20] │ │ │ │ │ bl 0 │ │ │ │ │ R_ARM_CALL fftw_mpi_conf_standard │ │ │ │ │ mov r3, #1 │ │ │ │ │ str r3, [r5] │ │ │ │ │ - b 36d8 │ │ │ │ │ - .word 0x00000194 │ │ │ │ │ + b 3a94 │ │ │ │ │ + .word 0x0000018c │ │ │ │ │ R_ARM_REL32 .bss │ │ │ │ │ - .word 0xffffca1c │ │ │ │ │ - .word 0xffffc8b8 │ │ │ │ │ - .word 0xffffc848 │ │ │ │ │ - .word 0xffffc7c4 │ │ │ │ │ + .word 0xffffc674 │ │ │ │ │ + .word 0xffffc4ec │ │ │ │ │ + .word 0xffffc488 │ │ │ │ │ + .word 0xffffc3f8 │ │ │ │ │ │ │ │ │ │ -00003860 : │ │ │ │ │ +00003c2c : │ │ │ │ │ fftw_mpi_plan_many_dft_r2c(): │ │ │ │ │ - push {r4, r5, r6, r7, r8, r9, lr} │ │ │ │ │ + strd r4, [sp, #-28]! @ 0xffffffe4 │ │ │ │ │ mov r5, r0 │ │ │ │ │ add r0, r0, r0, lsl #1 │ │ │ │ │ - sub sp, sp, #20 │ │ │ │ │ - lsl r0, r0, #2 │ │ │ │ │ - ldr r8, [sp, #64] @ 0x40 │ │ │ │ │ + strd r6, [sp, #8] │ │ │ │ │ mov r4, r1 │ │ │ │ │ - mov r9, r2 │ │ │ │ │ mov r7, r3 │ │ │ │ │ + lsl r0, r0, #2 │ │ │ │ │ + strd r8, [sp, #16] │ │ │ │ │ + mov r9, r2 │ │ │ │ │ + str lr, [sp, #24] │ │ │ │ │ + sub sp, sp, #20 │ │ │ │ │ + ldr r8, [sp, #64] @ 0x40 │ │ │ │ │ bl 0 │ │ │ │ │ R_ARM_CALL fftw_malloc_plain │ │ │ │ │ cmp r5, #0 │ │ │ │ │ mov r6, r0 │ │ │ │ │ - ble 38e4 │ │ │ │ │ - sub r4, r4, #4 │ │ │ │ │ - mov ip, r0 │ │ │ │ │ + ble 3cb8 │ │ │ │ │ add r3, r4, r5, lsl #2 │ │ │ │ │ - ldr lr, [r4, #4]! │ │ │ │ │ - str lr, [ip, #8] │ │ │ │ │ + mov ip, r0 │ │ │ │ │ + ldr lr, [r4], #4 │ │ │ │ │ cmp r4, r3 │ │ │ │ │ str lr, [ip, #4] │ │ │ │ │ + str lr, [ip, #8] │ │ │ │ │ str lr, [ip], #12 │ │ │ │ │ - bne 38a0 │ │ │ │ │ + bne 3c74 │ │ │ │ │ cmp r5, #1 │ │ │ │ │ - beq 392c │ │ │ │ │ + beq 3d10 │ │ │ │ │ tst r8, #536870912 @ 0x20000000 │ │ │ │ │ addne r3, r6, #12 │ │ │ │ │ moveq r3, r6 │ │ │ │ │ + ldr r2, [sp, #48] @ 0x30 │ │ │ │ │ tst r8, #1073741824 @ 0x40000000 │ │ │ │ │ str r7, [r3, #4] │ │ │ │ │ - ldr r2, [sp, #48] @ 0x30 │ │ │ │ │ addne r3, r6, #12 │ │ │ │ │ moveq r3, r6 │ │ │ │ │ str r2, [r3, #8] │ │ │ │ │ mov r3, #0 │ │ │ │ │ + mov r2, r9 │ │ │ │ │ + mov r1, r6 │ │ │ │ │ + mov r0, r5 │ │ │ │ │ str r3, [sp, #8] │ │ │ │ │ ldr r3, [sp, #60] @ 0x3c │ │ │ │ │ str r3, [sp, #4] │ │ │ │ │ ldr r3, [sp, #56] @ 0x38 │ │ │ │ │ - mov r2, r9 │ │ │ │ │ - mov r1, r6 │ │ │ │ │ + str r8, [sp, #12] │ │ │ │ │ str r3, [sp] │ │ │ │ │ - mov r0, r5 │ │ │ │ │ ldr r3, [sp, #52] @ 0x34 │ │ │ │ │ - str r8, [sp, #12] │ │ │ │ │ - bl 2008 │ │ │ │ │ + bl 21e8 │ │ │ │ │ mov r4, r0 │ │ │ │ │ mov r0, r6 │ │ │ │ │ bl 0 │ │ │ │ │ R_ARM_CALL fftw_ifree │ │ │ │ │ mov r0, r4 │ │ │ │ │ add sp, sp, #20 │ │ │ │ │ - pop {r4, r5, r6, r7, r8, r9, pc} │ │ │ │ │ + ldrd r4, [sp] │ │ │ │ │ + ldrd r6, [sp, #8] │ │ │ │ │ + ldrd r8, [sp, #16] │ │ │ │ │ + add sp, sp, #24 │ │ │ │ │ + pop {pc} @ (ldr pc, [sp], #4) │ │ │ │ │ ldr r3, [sp, #48] @ 0x30 │ │ │ │ │ str r7, [r6, #4] │ │ │ │ │ str r3, [r6, #8] │ │ │ │ │ - b 38e4 │ │ │ │ │ + b 3cb8 │ │ │ │ │ │ │ │ │ │ -0000393c : │ │ │ │ │ +00003d20 : │ │ │ │ │ fftw_mpi_plan_many_dft_c2r(): │ │ │ │ │ - push {r4, r5, r6, r7, r8, r9, lr} │ │ │ │ │ + strd r4, [sp, #-28]! @ 0xffffffe4 │ │ │ │ │ mov r5, r0 │ │ │ │ │ add r0, r0, r0, lsl #1 │ │ │ │ │ - sub sp, sp, #20 │ │ │ │ │ - lsl r0, r0, #2 │ │ │ │ │ - ldr r8, [sp, #64] @ 0x40 │ │ │ │ │ + strd r6, [sp, #8] │ │ │ │ │ mov r4, r1 │ │ │ │ │ - mov r9, r2 │ │ │ │ │ mov r7, r3 │ │ │ │ │ + lsl r0, r0, #2 │ │ │ │ │ + strd r8, [sp, #16] │ │ │ │ │ + mov r9, r2 │ │ │ │ │ + str lr, [sp, #24] │ │ │ │ │ + sub sp, sp, #20 │ │ │ │ │ + ldr r8, [sp, #64] @ 0x40 │ │ │ │ │ bl 0 │ │ │ │ │ R_ARM_CALL fftw_malloc_plain │ │ │ │ │ cmp r5, #0 │ │ │ │ │ mov r6, r0 │ │ │ │ │ - ble 39c0 │ │ │ │ │ - sub r4, r4, #4 │ │ │ │ │ - mov ip, r0 │ │ │ │ │ + ble 3dac │ │ │ │ │ add r3, r4, r5, lsl #2 │ │ │ │ │ - ldr lr, [r4, #4]! │ │ │ │ │ - str lr, [ip, #8] │ │ │ │ │ + mov ip, r0 │ │ │ │ │ + ldr lr, [r4], #4 │ │ │ │ │ cmp r4, r3 │ │ │ │ │ str lr, [ip, #4] │ │ │ │ │ + str lr, [ip, #8] │ │ │ │ │ str lr, [ip], #12 │ │ │ │ │ - bne 397c │ │ │ │ │ + bne 3d68 │ │ │ │ │ cmp r5, #1 │ │ │ │ │ - beq 3a08 │ │ │ │ │ + beq 3e04 │ │ │ │ │ tst r8, #536870912 @ 0x20000000 │ │ │ │ │ addne r3, r6, #12 │ │ │ │ │ moveq r3, r6 │ │ │ │ │ + ldr r2, [sp, #48] @ 0x30 │ │ │ │ │ tst r8, #1073741824 @ 0x40000000 │ │ │ │ │ str r7, [r3, #4] │ │ │ │ │ - ldr r2, [sp, #48] @ 0x30 │ │ │ │ │ addne r3, r6, #12 │ │ │ │ │ moveq r3, r6 │ │ │ │ │ str r2, [r3, #8] │ │ │ │ │ mov r3, #4 │ │ │ │ │ + mov r2, r9 │ │ │ │ │ + mov r1, r6 │ │ │ │ │ + mov r0, r5 │ │ │ │ │ str r3, [sp, #8] │ │ │ │ │ ldr r3, [sp, #60] @ 0x3c │ │ │ │ │ str r3, [sp, #4] │ │ │ │ │ ldr r3, [sp, #52] @ 0x34 │ │ │ │ │ - mov r2, r9 │ │ │ │ │ - mov r1, r6 │ │ │ │ │ + str r8, [sp, #12] │ │ │ │ │ str r3, [sp] │ │ │ │ │ - mov r0, r5 │ │ │ │ │ ldr r3, [sp, #56] @ 0x38 │ │ │ │ │ - str r8, [sp, #12] │ │ │ │ │ - bl 2008 │ │ │ │ │ + bl 21e8 │ │ │ │ │ mov r4, r0 │ │ │ │ │ mov r0, r6 │ │ │ │ │ bl 0 │ │ │ │ │ R_ARM_CALL fftw_ifree │ │ │ │ │ mov r0, r4 │ │ │ │ │ add sp, sp, #20 │ │ │ │ │ - pop {r4, r5, r6, r7, r8, r9, pc} │ │ │ │ │ + ldrd r4, [sp] │ │ │ │ │ + ldrd r6, [sp, #8] │ │ │ │ │ + ldrd r8, [sp, #16] │ │ │ │ │ + add sp, sp, #24 │ │ │ │ │ + pop {pc} @ (ldr pc, [sp], #4) │ │ │ │ │ ldr r3, [sp, #48] @ 0x30 │ │ │ │ │ str r7, [r6, #4] │ │ │ │ │ str r3, [r6, #8] │ │ │ │ │ - b 39c0 │ │ │ │ │ + b 3dac │ │ │ │ │ │ │ │ │ │ -00003a18 : │ │ │ │ │ +00003e14 : │ │ │ │ │ fftw_mpi_plan_dft_r2c(): │ │ │ │ │ - push {r4, r5, r6, r7, r8, r9, sl, lr} │ │ │ │ │ + strd r4, [sp, #-32]! @ 0xffffffe0 │ │ │ │ │ + mov r4, r1 │ │ │ │ │ + strd r6, [sp, #8] │ │ │ │ │ mov r6, r0 │ │ │ │ │ add r0, r0, r0, lsl #1 │ │ │ │ │ - sub sp, sp, #16 │ │ │ │ │ - lsl r0, r0, #2 │ │ │ │ │ - ldr r8, [sp, #52] @ 0x34 │ │ │ │ │ - mov r4, r1 │ │ │ │ │ + strd r8, [sp, #16] │ │ │ │ │ mov r7, r2 │ │ │ │ │ + lsl r0, r0, #2 │ │ │ │ │ + str sl, [sp, #24] │ │ │ │ │ mov sl, r3 │ │ │ │ │ + str lr, [sp, #28] │ │ │ │ │ + sub sp, sp, #16 │ │ │ │ │ + ldr r8, [sp, #52] @ 0x34 │ │ │ │ │ bl 0 │ │ │ │ │ R_ARM_CALL fftw_malloc_plain │ │ │ │ │ cmp r6, #0 │ │ │ │ │ mov r9, r0 │ │ │ │ │ - ble 3aa0 │ │ │ │ │ - sub r4, r4, #4 │ │ │ │ │ - mov ip, r0 │ │ │ │ │ + ble 3ea8 │ │ │ │ │ add r5, r4, r6, lsl #2 │ │ │ │ │ - ldr lr, [r4, #4]! │ │ │ │ │ - str lr, [ip, #8] │ │ │ │ │ + mov ip, r0 │ │ │ │ │ + ldr lr, [r4], #4 │ │ │ │ │ cmp r4, r5 │ │ │ │ │ str lr, [ip, #4] │ │ │ │ │ + str lr, [ip, #8] │ │ │ │ │ str lr, [ip], #12 │ │ │ │ │ - bne 3a58 │ │ │ │ │ + bne 3e60 │ │ │ │ │ cmp r6, #1 │ │ │ │ │ - beq 3ae4 │ │ │ │ │ + beq 3f00 │ │ │ │ │ tst r8, #536870912 @ 0x20000000 │ │ │ │ │ addne r3, r9, #12 │ │ │ │ │ moveq r3, r9 │ │ │ │ │ mov r2, #0 │ │ │ │ │ tst r8, #1073741824 @ 0x40000000 │ │ │ │ │ str r2, [r3, #4] │ │ │ │ │ addne r3, r9, #12 │ │ │ │ │ moveq r3, r9 │ │ │ │ │ mov r2, #0 │ │ │ │ │ str r2, [r3, #8] │ │ │ │ │ mov r3, #0 │ │ │ │ │ - str r3, [sp, #8] │ │ │ │ │ - ldr r3, [sp, #48] @ 0x30 │ │ │ │ │ mov r2, #1 │ │ │ │ │ + str sl, [sp] │ │ │ │ │ mov r1, r9 │ │ │ │ │ - str r3, [sp, #4] │ │ │ │ │ mov r0, r6 │ │ │ │ │ + str r3, [sp, #8] │ │ │ │ │ + ldr r3, [sp, #48] @ 0x30 │ │ │ │ │ + str r3, [sp, #4] │ │ │ │ │ mov r3, r7 │ │ │ │ │ str r8, [sp, #12] │ │ │ │ │ - str sl, [sp] │ │ │ │ │ - bl 2008 │ │ │ │ │ + bl 21e8 │ │ │ │ │ mov r4, r0 │ │ │ │ │ mov r0, r9 │ │ │ │ │ bl 0 │ │ │ │ │ R_ARM_CALL fftw_ifree │ │ │ │ │ mov r0, r4 │ │ │ │ │ add sp, sp, #16 │ │ │ │ │ - pop {r4, r5, r6, r7, r8, r9, sl, pc} │ │ │ │ │ + ldrd r4, [sp] │ │ │ │ │ + ldrd r6, [sp, #8] │ │ │ │ │ + ldrd r8, [sp, #16] │ │ │ │ │ + ldr sl, [sp, #24] │ │ │ │ │ + add sp, sp, #28 │ │ │ │ │ + pop {pc} @ (ldr pc, [sp], #4) │ │ │ │ │ mov r3, #0 │ │ │ │ │ str r3, [r9, #4] │ │ │ │ │ str r3, [r9, #8] │ │ │ │ │ - b 3aa0 │ │ │ │ │ + b 3ea8 │ │ │ │ │ │ │ │ │ │ -00003af4 : │ │ │ │ │ +00003f10 : │ │ │ │ │ fftw_mpi_plan_dft_r2c_2d(): │ │ │ │ │ - push {r4, r5, r6, r7, r8, r9, lr} │ │ │ │ │ + strd r4, [sp, #-28]! @ 0xffffffe4 │ │ │ │ │ + mov r5, r1 │ │ │ │ │ + strd r6, [sp, #8] │ │ │ │ │ mov r6, r0 │ │ │ │ │ - sub sp, sp, #12 │ │ │ │ │ mov r0, #24 │ │ │ │ │ - mov r5, r1 │ │ │ │ │ + strd r8, [sp, #16] │ │ │ │ │ mov r7, r2 │ │ │ │ │ - ldr r9, [sp, #44] @ 0x2c │ │ │ │ │ mov r8, r3 │ │ │ │ │ + str lr, [sp, #24] │ │ │ │ │ + sub sp, sp, #12 │ │ │ │ │ + ldr r9, [sp, #44] @ 0x2c │ │ │ │ │ bl 0 │ │ │ │ │ R_ARM_CALL fftw_malloc_plain │ │ │ │ │ - tst r9, #536870912 @ 0x20000000 │ │ │ │ │ - mov r3, #0 │ │ │ │ │ - mov r1, r7 │ │ │ │ │ mov ip, r0 │ │ │ │ │ - str r6, [r0, #8] │ │ │ │ │ str r6, [r0, #4] │ │ │ │ │ - moveq r2, r0 │ │ │ │ │ + mov r3, #0 │ │ │ │ │ + str r6, [r0, #8] │ │ │ │ │ + mov r1, r7 │ │ │ │ │ + mov r4, r0 │ │ │ │ │ str r6, [ip], #12 │ │ │ │ │ + tst r9, #536870912 @ 0x20000000 │ │ │ │ │ + str r5, [r0, #12] │ │ │ │ │ movne r2, ip │ │ │ │ │ + moveq r2, r0 │ │ │ │ │ + str r5, [r0, #16] │ │ │ │ │ tst r9, #1073741824 @ 0x40000000 │ │ │ │ │ - moveq ip, r0 │ │ │ │ │ str r5, [r0, #20] │ │ │ │ │ - str r5, [r0, #16] │ │ │ │ │ - str r5, [r0, #12] │ │ │ │ │ + moveq ip, r0 │ │ │ │ │ str r3, [r2, #4] │ │ │ │ │ - str r3, [ip, #8] │ │ │ │ │ mov r2, r8 │ │ │ │ │ + str r3, [ip, #8] │ │ │ │ │ stm sp, {r3, r9} │ │ │ │ │ ldr r3, [sp, #40] @ 0x28 │ │ │ │ │ - mov r4, r0 │ │ │ │ │ - bl 1e60 │ │ │ │ │ + bl 2024 │ │ │ │ │ mov r5, r0 │ │ │ │ │ mov r0, r4 │ │ │ │ │ bl 0 │ │ │ │ │ R_ARM_CALL fftw_ifree │ │ │ │ │ mov r0, r5 │ │ │ │ │ add sp, sp, #12 │ │ │ │ │ - pop {r4, r5, r6, r7, r8, r9, pc} │ │ │ │ │ + ldrd r4, [sp] │ │ │ │ │ + ldrd r6, [sp, #8] │ │ │ │ │ + ldrd r8, [sp, #16] │ │ │ │ │ + add sp, sp, #24 │ │ │ │ │ + pop {pc} @ (ldr pc, [sp], #4) │ │ │ │ │ │ │ │ │ │ -00003b84 : │ │ │ │ │ +00003fbc : │ │ │ │ │ fftw_mpi_plan_dft_r2c_3d(): │ │ │ │ │ - push {r4, r5, r6, r7, r8, r9, lr} │ │ │ │ │ + strd r4, [sp, #-28]! @ 0xffffffe4 │ │ │ │ │ + mov r5, r2 │ │ │ │ │ + strd r6, [sp, #8] │ │ │ │ │ mov r7, r0 │ │ │ │ │ - sub sp, sp, #12 │ │ │ │ │ mov r0, #36 @ 0x24 │ │ │ │ │ - mov r5, r2 │ │ │ │ │ + strd r8, [sp, #16] │ │ │ │ │ mov r6, r1 │ │ │ │ │ - ldr r9, [sp, #48] @ 0x30 │ │ │ │ │ mov r8, r3 │ │ │ │ │ + str lr, [sp, #24] │ │ │ │ │ + sub sp, sp, #12 │ │ │ │ │ + ldr r9, [sp, #48] @ 0x30 │ │ │ │ │ bl 0 │ │ │ │ │ R_ARM_CALL fftw_malloc_plain │ │ │ │ │ - tst r9, #536870912 @ 0x20000000 │ │ │ │ │ - mov r3, #0 │ │ │ │ │ - mov r1, r8 │ │ │ │ │ mov ip, r0 │ │ │ │ │ - str r7, [r0, #8] │ │ │ │ │ str r7, [r0, #4] │ │ │ │ │ - moveq r2, r0 │ │ │ │ │ + mov r3, #0 │ │ │ │ │ + str r7, [r0, #8] │ │ │ │ │ + mov r1, r8 │ │ │ │ │ + mov r4, r0 │ │ │ │ │ str r7, [ip], #12 │ │ │ │ │ + tst r9, #536870912 @ 0x20000000 │ │ │ │ │ + str r6, [r0, #12] │ │ │ │ │ movne r2, ip │ │ │ │ │ + moveq r2, r0 │ │ │ │ │ + str r6, [r0, #16] │ │ │ │ │ tst r9, #1073741824 @ 0x40000000 │ │ │ │ │ - moveq ip, r0 │ │ │ │ │ str r6, [r0, #20] │ │ │ │ │ - str r6, [r0, #16] │ │ │ │ │ - str r6, [r0, #12] │ │ │ │ │ - str r5, [r0, #32] │ │ │ │ │ - str r5, [r0, #28] │ │ │ │ │ + moveq ip, r0 │ │ │ │ │ str r5, [r0, #24] │ │ │ │ │ + str r5, [r0, #28] │ │ │ │ │ + str r5, [r0, #32] │ │ │ │ │ str r3, [r2, #4] │ │ │ │ │ str r3, [ip, #8] │ │ │ │ │ stm sp, {r3, r9} │ │ │ │ │ ldrd r2, [sp, #40] @ 0x28 │ │ │ │ │ - mov r4, r0 │ │ │ │ │ - bl 1c94 │ │ │ │ │ + bl 1e3c │ │ │ │ │ mov r5, r0 │ │ │ │ │ mov r0, r4 │ │ │ │ │ bl 0 │ │ │ │ │ R_ARM_CALL fftw_ifree │ │ │ │ │ mov r0, r5 │ │ │ │ │ add sp, sp, #12 │ │ │ │ │ - pop {r4, r5, r6, r7, r8, r9, pc} │ │ │ │ │ + ldrd r4, [sp] │ │ │ │ │ + ldrd r6, [sp, #8] │ │ │ │ │ + ldrd r8, [sp, #16] │ │ │ │ │ + add sp, sp, #24 │ │ │ │ │ + pop {pc} @ (ldr pc, [sp], #4) │ │ │ │ │ │ │ │ │ │ -00003c1c : │ │ │ │ │ +00004070 : │ │ │ │ │ fftw_mpi_plan_dft_c2r(): │ │ │ │ │ - push {r4, r5, r6, r7, r8, r9, sl, lr} │ │ │ │ │ + strd r4, [sp, #-32]! @ 0xffffffe0 │ │ │ │ │ + mov r4, r1 │ │ │ │ │ + strd r6, [sp, #8] │ │ │ │ │ mov r6, r0 │ │ │ │ │ add r0, r0, r0, lsl #1 │ │ │ │ │ - sub sp, sp, #16 │ │ │ │ │ + strd r8, [sp, #16] │ │ │ │ │ + mov r9, r3 │ │ │ │ │ lsl r0, r0, #2 │ │ │ │ │ - ldr r8, [sp, #52] @ 0x34 │ │ │ │ │ - mov r4, r1 │ │ │ │ │ + str sl, [sp, #24] │ │ │ │ │ mov sl, r2 │ │ │ │ │ - mov r9, r3 │ │ │ │ │ + str lr, [sp, #28] │ │ │ │ │ + sub sp, sp, #16 │ │ │ │ │ + ldr r8, [sp, #52] @ 0x34 │ │ │ │ │ bl 0 │ │ │ │ │ R_ARM_CALL fftw_malloc_plain │ │ │ │ │ cmp r6, #0 │ │ │ │ │ mov r7, r0 │ │ │ │ │ - ble 3ca4 │ │ │ │ │ - sub r4, r4, #4 │ │ │ │ │ - mov ip, r0 │ │ │ │ │ + ble 4104 │ │ │ │ │ add r5, r4, r6, lsl #2 │ │ │ │ │ - ldr lr, [r4, #4]! │ │ │ │ │ - str lr, [ip, #8] │ │ │ │ │ + mov ip, r0 │ │ │ │ │ + ldr lr, [r4], #4 │ │ │ │ │ cmp r4, r5 │ │ │ │ │ str lr, [ip, #4] │ │ │ │ │ + str lr, [ip, #8] │ │ │ │ │ str lr, [ip], #12 │ │ │ │ │ - bne 3c5c │ │ │ │ │ + bne 40bc │ │ │ │ │ cmp r6, #1 │ │ │ │ │ - beq 3ce8 │ │ │ │ │ + beq 415c │ │ │ │ │ tst r8, #536870912 @ 0x20000000 │ │ │ │ │ addne r3, r7, #12 │ │ │ │ │ moveq r3, r7 │ │ │ │ │ mov r2, #0 │ │ │ │ │ tst r8, #1073741824 @ 0x40000000 │ │ │ │ │ str r2, [r3, #4] │ │ │ │ │ addne r3, r7, #12 │ │ │ │ │ moveq r3, r7 │ │ │ │ │ mov r2, #0 │ │ │ │ │ str r2, [r3, #8] │ │ │ │ │ mov r3, #4 │ │ │ │ │ - str r3, [sp, #8] │ │ │ │ │ - ldr r3, [sp, #48] @ 0x30 │ │ │ │ │ mov r2, #1 │ │ │ │ │ + str sl, [sp] │ │ │ │ │ mov r1, r7 │ │ │ │ │ - str r3, [sp, #4] │ │ │ │ │ mov r0, r6 │ │ │ │ │ + str r3, [sp, #8] │ │ │ │ │ + ldr r3, [sp, #48] @ 0x30 │ │ │ │ │ + str r3, [sp, #4] │ │ │ │ │ mov r3, r9 │ │ │ │ │ str r8, [sp, #12] │ │ │ │ │ - str sl, [sp] │ │ │ │ │ - bl 2008 │ │ │ │ │ + bl 21e8 │ │ │ │ │ mov r4, r0 │ │ │ │ │ mov r0, r7 │ │ │ │ │ bl 0 │ │ │ │ │ R_ARM_CALL fftw_ifree │ │ │ │ │ mov r0, r4 │ │ │ │ │ add sp, sp, #16 │ │ │ │ │ - pop {r4, r5, r6, r7, r8, r9, sl, pc} │ │ │ │ │ + ldrd r4, [sp] │ │ │ │ │ + ldrd r6, [sp, #8] │ │ │ │ │ + ldrd r8, [sp, #16] │ │ │ │ │ + ldr sl, [sp, #24] │ │ │ │ │ + add sp, sp, #28 │ │ │ │ │ + pop {pc} @ (ldr pc, [sp], #4) │ │ │ │ │ mov r3, #0 │ │ │ │ │ str r3, [r7, #4] │ │ │ │ │ str r3, [r7, #8] │ │ │ │ │ - b 3ca4 │ │ │ │ │ + b 4104 │ │ │ │ │ │ │ │ │ │ -00003cf8 : │ │ │ │ │ +0000416c : │ │ │ │ │ fftw_mpi_plan_dft_c2r_2d(): │ │ │ │ │ - push {r4, r5, r6, r7, r8, r9, lr} │ │ │ │ │ + strd r4, [sp, #-28]! @ 0xffffffe4 │ │ │ │ │ + mov r5, r1 │ │ │ │ │ + strd r6, [sp, #8] │ │ │ │ │ mov r6, r0 │ │ │ │ │ - sub sp, sp, #12 │ │ │ │ │ mov r0, #24 │ │ │ │ │ - mov r5, r1 │ │ │ │ │ - ldr r9, [sp, #44] @ 0x2c │ │ │ │ │ - mov r8, r2 │ │ │ │ │ + strd r8, [sp, #16] │ │ │ │ │ mov r7, r3 │ │ │ │ │ + mov r8, r2 │ │ │ │ │ + str lr, [sp, #24] │ │ │ │ │ + sub sp, sp, #12 │ │ │ │ │ + ldr r9, [sp, #44] @ 0x2c │ │ │ │ │ bl 0 │ │ │ │ │ R_ARM_CALL fftw_malloc_plain │ │ │ │ │ - tst r9, #536870912 @ 0x20000000 │ │ │ │ │ - mov r3, #0 │ │ │ │ │ - mov r1, r7 │ │ │ │ │ mov ip, r0 │ │ │ │ │ - str r6, [r0, #8] │ │ │ │ │ str r6, [r0, #4] │ │ │ │ │ - moveq r2, r0 │ │ │ │ │ + mov r3, #0 │ │ │ │ │ + str r6, [r0, #8] │ │ │ │ │ + mov r1, r7 │ │ │ │ │ + mov r4, r0 │ │ │ │ │ str r6, [ip], #12 │ │ │ │ │ + tst r9, #536870912 @ 0x20000000 │ │ │ │ │ + str r5, [r0, #12] │ │ │ │ │ movne r2, ip │ │ │ │ │ + moveq r2, r0 │ │ │ │ │ + str r5, [r0, #16] │ │ │ │ │ tst r9, #1073741824 @ 0x40000000 │ │ │ │ │ - moveq ip, r0 │ │ │ │ │ str r5, [r0, #20] │ │ │ │ │ - str r5, [r0, #16] │ │ │ │ │ - str r5, [r0, #12] │ │ │ │ │ + moveq ip, r0 │ │ │ │ │ str r3, [r2, #4] │ │ │ │ │ + mov r2, r8 │ │ │ │ │ str r3, [ip, #8] │ │ │ │ │ mov r3, #4 │ │ │ │ │ - mov r2, r8 │ │ │ │ │ str r3, [sp] │ │ │ │ │ - str r9, [sp, #4] │ │ │ │ │ ldr r3, [sp, #40] @ 0x28 │ │ │ │ │ - mov r4, r0 │ │ │ │ │ - bl 1e60 │ │ │ │ │ + str r9, [sp, #4] │ │ │ │ │ + bl 2024 │ │ │ │ │ mov r5, r0 │ │ │ │ │ mov r0, r4 │ │ │ │ │ bl 0 │ │ │ │ │ R_ARM_CALL fftw_ifree │ │ │ │ │ mov r0, r5 │ │ │ │ │ add sp, sp, #12 │ │ │ │ │ - pop {r4, r5, r6, r7, r8, r9, pc} │ │ │ │ │ + ldrd r4, [sp] │ │ │ │ │ + ldrd r6, [sp, #8] │ │ │ │ │ + ldrd r8, [sp, #16] │ │ │ │ │ + add sp, sp, #24 │ │ │ │ │ + pop {pc} @ (ldr pc, [sp], #4) │ │ │ │ │ │ │ │ │ │ -00003d90 : │ │ │ │ │ +00004220 : │ │ │ │ │ fftw_mpi_plan_dft_c2r_3d(): │ │ │ │ │ - push {r4, r5, r6, r7, r8, r9, lr} │ │ │ │ │ + strd r4, [sp, #-28]! @ 0xffffffe4 │ │ │ │ │ + mov r5, r2 │ │ │ │ │ + strd r6, [sp, #8] │ │ │ │ │ mov r7, r0 │ │ │ │ │ - sub sp, sp, #12 │ │ │ │ │ mov r0, #36 @ 0x24 │ │ │ │ │ - mov r5, r2 │ │ │ │ │ + strd r8, [sp, #16] │ │ │ │ │ mov r6, r1 │ │ │ │ │ - ldr r9, [sp, #48] @ 0x30 │ │ │ │ │ mov r8, r3 │ │ │ │ │ + str lr, [sp, #24] │ │ │ │ │ + sub sp, sp, #12 │ │ │ │ │ + ldr r9, [sp, #48] @ 0x30 │ │ │ │ │ bl 0 │ │ │ │ │ R_ARM_CALL fftw_malloc_plain │ │ │ │ │ - tst r9, #536870912 @ 0x20000000 │ │ │ │ │ - mov r3, #0 │ │ │ │ │ - ldr r1, [sp, #40] @ 0x28 │ │ │ │ │ mov ip, r0 │ │ │ │ │ - str r7, [r0, #8] │ │ │ │ │ str r7, [r0, #4] │ │ │ │ │ - moveq r2, r0 │ │ │ │ │ + mov r3, #0 │ │ │ │ │ + str r7, [r0, #8] │ │ │ │ │ + mov r4, r0 │ │ │ │ │ str r7, [ip], #12 │ │ │ │ │ + tst r9, #536870912 @ 0x20000000 │ │ │ │ │ + str r6, [r0, #12] │ │ │ │ │ movne r2, ip │ │ │ │ │ + moveq r2, r0 │ │ │ │ │ + str r6, [r0, #16] │ │ │ │ │ tst r9, #1073741824 @ 0x40000000 │ │ │ │ │ - moveq ip, r0 │ │ │ │ │ str r6, [r0, #20] │ │ │ │ │ - str r6, [r0, #16] │ │ │ │ │ - str r6, [r0, #12] │ │ │ │ │ - str r5, [r0, #32] │ │ │ │ │ - str r5, [r0, #28] │ │ │ │ │ + moveq ip, r0 │ │ │ │ │ str r5, [r0, #24] │ │ │ │ │ + str r5, [r0, #28] │ │ │ │ │ + str r5, [r0, #32] │ │ │ │ │ str r3, [r2, #4] │ │ │ │ │ + mov r2, r8 │ │ │ │ │ str r3, [ip, #8] │ │ │ │ │ mov r3, #4 │ │ │ │ │ - mov r2, r8 │ │ │ │ │ + ldr r1, [sp, #40] @ 0x28 │ │ │ │ │ str r3, [sp] │ │ │ │ │ - str r9, [sp, #4] │ │ │ │ │ ldr r3, [sp, #44] @ 0x2c │ │ │ │ │ - mov r4, r0 │ │ │ │ │ - bl 1c94 │ │ │ │ │ + str r9, [sp, #4] │ │ │ │ │ + bl 1e3c │ │ │ │ │ mov r5, r0 │ │ │ │ │ mov r0, r4 │ │ │ │ │ bl 0 │ │ │ │ │ R_ARM_CALL fftw_ifree │ │ │ │ │ mov r0, r5 │ │ │ │ │ add sp, sp, #12 │ │ │ │ │ - pop {r4, r5, r6, r7, r8, r9, pc} │ │ │ │ │ + ldrd r4, [sp] │ │ │ │ │ + ldrd r6, [sp, #8] │ │ │ │ │ + ldrd r8, [sp, #16] │ │ │ │ │ + add sp, sp, #24 │ │ │ │ │ + pop {pc} @ (ldr pc, [sp], #4) │ │ │ │ │ │ │ │ │ │ -00003e34 : │ │ │ │ │ +000042e0 : │ │ │ │ │ fftw_mpi_execute_dft(): │ │ │ │ │ b 0 │ │ │ │ │ R_ARM_JUMP24 fftw_execute_r2r │ │ │ │ │ │ │ │ │ │ -00003e38 : │ │ │ │ │ +000042e4 : │ │ │ │ │ fftw_mpi_execute_dft_r2c(): │ │ │ │ │ b 0 │ │ │ │ │ R_ARM_JUMP24 fftw_execute_r2r │ │ │ │ │ │ │ │ │ │ -00003e3c : │ │ │ │ │ +000042e8 : │ │ │ │ │ fftw_mpi_execute_dft_c2r(): │ │ │ │ │ b 0 │ │ │ │ │ R_ARM_JUMP24 fftw_execute_r2r │ │ │ │ │ │ │ │ │ │ -00003e40 : │ │ │ │ │ +000042ec : │ │ │ │ │ fftw_mpi_execute_r2r(): │ │ │ │ │ b 0 │ │ │ │ │ R_ARM_JUMP24 fftw_execute_r2r │ │ │ │ ├── readelf --wide --decompress --hex-dump=.rodata {} │ │ │ │ │ @@ -1,4 +1,4 @@ │ │ │ │ │ │ │ │ │ │ Hex dump of section '.rodata': │ │ │ │ │ - 0x00000000 000b000d 00050009 002f0035 00100016 ........./.5.... │ │ │ │ │ + 0x00000000 000d000f 00050009 00340039 00100016 .........4.9.... │ │ │ ├── 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: 2128 (bytes into file) │ │ │ │ │ + Start of section headers: 2368 (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 0x850: │ │ │ │ │ +There are 10 section headers, starting at offset 0x940: │ │ │ │ │ │ │ │ │ │ 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 00050c 00 AX 0 0 4 │ │ │ │ │ - [ 2] .rel.text REL 00000000 000788 000078 08 I 7 1 4 │ │ │ │ │ - [ 3] .data PROGBITS 00000000 000540 000000 00 WA 0 0 1 │ │ │ │ │ - [ 4] .bss NOBITS 00000000 000540 000000 00 WA 0 0 1 │ │ │ │ │ - [ 5] .note.GNU-stack PROGBITS 00000000 000540 000000 00 0 0 1 │ │ │ │ │ - [ 6] .ARM.attributes ARM_ATTRIBUTES 00000000 000540 00002b 00 0 0 1 │ │ │ │ │ - [ 7] .symtab SYMTAB 00000000 00056c 000100 10 8 2 4 │ │ │ │ │ - [ 8] .strtab STRTAB 00000000 00066c 000119 00 0 0 1 │ │ │ │ │ - [ 9] .shstrtab STRTAB 00000000 000800 000050 00 0 0 1 │ │ │ │ │ + [ 1] .text PROGBITS 00000000 000034 0005fc 00 AX 0 0 4 │ │ │ │ │ + [ 2] .rel.text REL 00000000 000878 000078 08 I 7 1 4 │ │ │ │ │ + [ 3] .data PROGBITS 00000000 000630 000000 00 WA 0 0 1 │ │ │ │ │ + [ 4] .bss NOBITS 00000000 000630 000000 00 WA 0 0 1 │ │ │ │ │ + [ 5] .note.GNU-stack PROGBITS 00000000 000630 000000 00 0 0 1 │ │ │ │ │ + [ 6] .ARM.attributes ARM_ATTRIBUTES 00000000 000630 00002b 00 0 0 1 │ │ │ │ │ + [ 7] .symtab SYMTAB 00000000 00065c 000100 10 8 2 4 │ │ │ │ │ + [ 8] .strtab STRTAB 00000000 00075c 000119 00 0 0 1 │ │ │ │ │ + [ 9] .shstrtab STRTAB 00000000 0008f0 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 $a │ │ │ │ │ - 2: 00000000 20 FUNC GLOBAL DEFAULT 1 fftw_mpi_num_blocks │ │ │ │ │ + 2: 00000000 32 FUNC GLOBAL DEFAULT 1 fftw_mpi_num_blocks │ │ │ │ │ 3: 00000000 0 NOTYPE GLOBAL DEFAULT UND __aeabi_idiv │ │ │ │ │ - 4: 00000014 68 FUNC GLOBAL DEFAULT 1 fftw_mpi_num_blocks_ok │ │ │ │ │ + 4: 00000020 80 FUNC GLOBAL DEFAULT 1 fftw_mpi_num_blocks_ok │ │ │ │ │ 5: 00000000 0 NOTYPE GLOBAL DEFAULT UND MPI_Comm_size │ │ │ │ │ - 6: 00000058 20 FUNC GLOBAL DEFAULT 1 fftw_mpi_default_block │ │ │ │ │ - 7: 0000006c 36 FUNC GLOBAL DEFAULT 1 fftw_mpi_block │ │ │ │ │ - 8: 00000090 104 FUNC GLOBAL DEFAULT 1 fftw_mpi_num_blocks_total │ │ │ │ │ - 9: 000000f8 116 FUNC GLOBAL DEFAULT 1 fftw_mpi_idle_process │ │ │ │ │ - 10: 0000016c 100 FUNC GLOBAL DEFAULT 1 fftw_mpi_block_coords │ │ │ │ │ + 6: 00000070 32 FUNC GLOBAL DEFAULT 1 fftw_mpi_default_block │ │ │ │ │ + 7: 00000090 36 FUNC GLOBAL DEFAULT 1 fftw_mpi_block │ │ │ │ │ + 8: 000000b4 132 FUNC GLOBAL DEFAULT 1 fftw_mpi_num_blocks_total │ │ │ │ │ + 9: 00000138 152 FUNC GLOBAL DEFAULT 1 fftw_mpi_idle_process │ │ │ │ │ + 10: 000001d0 128 FUNC GLOBAL DEFAULT 1 fftw_mpi_block_coords │ │ │ │ │ 11: 00000000 0 NOTYPE GLOBAL DEFAULT UND __aeabi_idivmod │ │ │ │ │ - 12: 000001d0 364 FUNC GLOBAL DEFAULT 1 fftw_mpi_total_block │ │ │ │ │ - 13: 0000033c 120 FUNC GLOBAL DEFAULT 1 fftw_mpi_is_local_after │ │ │ │ │ - 14: 000003b4 100 FUNC GLOBAL DEFAULT 1 fftw_mpi_is_local │ │ │ │ │ - 15: 00000418 244 FUNC GLOBAL DEFAULT 1 fftw_mpi_is_block1d │ │ │ │ │ + 12: 00000250 392 FUNC GLOBAL DEFAULT 1 fftw_mpi_total_block │ │ │ │ │ + 13: 000003d8 148 FUNC GLOBAL DEFAULT 1 fftw_mpi_is_local_after │ │ │ │ │ + 14: 0000046c 128 FUNC GLOBAL DEFAULT 1 fftw_mpi_is_local │ │ │ │ │ + 15: 000004ec 272 FUNC GLOBAL DEFAULT 1 fftw_mpi_is_block1d │ │ │ │ ├── readelf --wide --relocs {} │ │ │ │ │ @@ -1,18 +1,18 @@ │ │ │ │ │ │ │ │ │ │ -Relocation section '.rel.text' at offset 0x788 contains 15 entries: │ │ │ │ │ +Relocation section '.rel.text' at offset 0x878 contains 15 entries: │ │ │ │ │ Offset Info Type Sym. Value Symbol's Name │ │ │ │ │ -0000000c 0000031c R_ARM_CALL 00000000 __aeabi_idiv │ │ │ │ │ -0000002c 0000051c R_ARM_CALL 00000000 MPI_Comm_size │ │ │ │ │ -0000003c 0000031c R_ARM_CALL 00000000 __aeabi_idiv │ │ │ │ │ -00000064 0000031c R_ARM_CALL 00000000 __aeabi_idiv │ │ │ │ │ -000000d8 0000031c R_ARM_CALL 00000000 __aeabi_idiv │ │ │ │ │ -00000144 0000031c R_ARM_CALL 00000000 __aeabi_idiv │ │ │ │ │ -000001ac 0000031c R_ARM_CALL 00000000 __aeabi_idiv │ │ │ │ │ -000001b8 00000b1c R_ARM_CALL 00000000 __aeabi_idivmod │ │ │ │ │ -0000022c 0000031c R_ARM_CALL 00000000 __aeabi_idiv │ │ │ │ │ -00000290 0000031c R_ARM_CALL 00000000 __aeabi_idiv │ │ │ │ │ -0000029c 00000b1c R_ARM_CALL 00000000 __aeabi_idivmod │ │ │ │ │ -00000398 0000031c R_ARM_CALL 00000000 __aeabi_idiv │ │ │ │ │ -000003fc 0000031c R_ARM_CALL 00000000 __aeabi_idiv │ │ │ │ │ -00000464 0000031c R_ARM_CALL 00000000 __aeabi_idiv │ │ │ │ │ -000004f0 0000031c R_ARM_CALL 00000000 __aeabi_idiv │ │ │ │ │ +00000010 0000031c R_ARM_CALL 00000000 __aeabi_idiv │ │ │ │ │ +0000003c 0000051c R_ARM_CALL 00000000 MPI_Comm_size │ │ │ │ │ +0000004c 0000031c R_ARM_CALL 00000000 __aeabi_idiv │ │ │ │ │ +00000080 0000031c R_ARM_CALL 00000000 __aeabi_idiv │ │ │ │ │ +00000108 0000031c R_ARM_CALL 00000000 __aeabi_idiv │ │ │ │ │ +00000194 0000031c R_ARM_CALL 00000000 __aeabi_idiv │ │ │ │ │ +0000021c 0000031c R_ARM_CALL 00000000 __aeabi_idiv │ │ │ │ │ +00000228 00000b1c R_ARM_CALL 00000000 __aeabi_idivmod │ │ │ │ │ +000002bc 0000031c R_ARM_CALL 00000000 __aeabi_idiv │ │ │ │ │ +0000031c 0000031c R_ARM_CALL 00000000 __aeabi_idiv │ │ │ │ │ +00000328 00000b1c R_ARM_CALL 00000000 __aeabi_idivmod │ │ │ │ │ +00000440 0000031c R_ARM_CALL 00000000 __aeabi_idiv │ │ │ │ │ +000004c0 0000031c R_ARM_CALL 00000000 __aeabi_idiv │ │ │ │ │ +00000544 0000031c R_ARM_CALL 00000000 __aeabi_idiv │ │ │ │ │ +000005d0 0000031c R_ARM_CALL 00000000 __aeabi_idiv │ │ │ │ ├── objdump --line-numbers --disassemble --demangle --reloc --no-show-raw-insn --section=.text {} │ │ │ │ │ @@ -2,374 +2,434 @@ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ Disassembly of section .text: │ │ │ │ │ │ │ │ │ │ 00000000 : │ │ │ │ │ fftw_mpi_num_blocks(): │ │ │ │ │ add r0, r0, r1 │ │ │ │ │ - push {r4, lr} │ │ │ │ │ + str r4, [sp, #-8]! │ │ │ │ │ sub r0, r0, #1 │ │ │ │ │ + str lr, [sp, #4] │ │ │ │ │ bl 0 <__aeabi_idiv> │ │ │ │ │ R_ARM_CALL __aeabi_idiv │ │ │ │ │ - pop {r4, pc} │ │ │ │ │ + ldr r4, [sp] │ │ │ │ │ + add sp, sp, #4 │ │ │ │ │ + pop {pc} @ (ldr pc, [sp], #4) │ │ │ │ │ │ │ │ │ │ -00000014 : │ │ │ │ │ +00000020 : │ │ │ │ │ fftw_mpi_num_blocks_ok(): │ │ │ │ │ - push {r4, r5, lr} │ │ │ │ │ - sub sp, sp, #12 │ │ │ │ │ + strd r4, [sp, #-12]! │ │ │ │ │ mov r5, r1 │ │ │ │ │ mov r4, r0 │ │ │ │ │ - add r1, sp, #4 │ │ │ │ │ + str lr, [sp, #8] │ │ │ │ │ + sub sp, sp, #12 │ │ │ │ │ mov r0, r2 │ │ │ │ │ + add r1, sp, #4 │ │ │ │ │ bl 0 │ │ │ │ │ R_ARM_CALL MPI_Comm_size │ │ │ │ │ add r0, r4, r5 │ │ │ │ │ mov r1, r5 │ │ │ │ │ sub r0, r0, #1 │ │ │ │ │ bl 0 <__aeabi_idiv> │ │ │ │ │ R_ARM_CALL __aeabi_idiv │ │ │ │ │ ldr r3, [sp, #4] │ │ │ │ │ cmp r3, r0 │ │ │ │ │ movlt r0, #0 │ │ │ │ │ movge r0, #1 │ │ │ │ │ add sp, sp, #12 │ │ │ │ │ - pop {r4, r5, pc} │ │ │ │ │ + ldrd r4, [sp] │ │ │ │ │ + add sp, sp, #8 │ │ │ │ │ + pop {pc} @ (ldr pc, [sp], #4) │ │ │ │ │ │ │ │ │ │ -00000058 : │ │ │ │ │ +00000070 : │ │ │ │ │ fftw_mpi_default_block(): │ │ │ │ │ add r0, r0, r1 │ │ │ │ │ - push {r4, lr} │ │ │ │ │ + str r4, [sp, #-8]! │ │ │ │ │ sub r0, r0, #1 │ │ │ │ │ + str lr, [sp, #4] │ │ │ │ │ bl 0 <__aeabi_idiv> │ │ │ │ │ R_ARM_CALL __aeabi_idiv │ │ │ │ │ - pop {r4, pc} │ │ │ │ │ + ldr r4, [sp] │ │ │ │ │ + add sp, sp, #4 │ │ │ │ │ + pop {pc} @ (ldr pc, [sp], #4) │ │ │ │ │ │ │ │ │ │ -0000006c : │ │ │ │ │ +00000090 : │ │ │ │ │ fftw_mpi_block(): │ │ │ │ │ mul r2, r1, r2 │ │ │ │ │ sub r0, r0, r2 │ │ │ │ │ cmp r0, #0 │ │ │ │ │ - ble 88 │ │ │ │ │ + ble ac │ │ │ │ │ cmp r1, r0 │ │ │ │ │ movlt r0, r1 │ │ │ │ │ bx lr │ │ │ │ │ mov r0, #0 │ │ │ │ │ bx lr │ │ │ │ │ │ │ │ │ │ -00000090 : │ │ │ │ │ +000000b4 : │ │ │ │ │ fftw_mpi_num_blocks_total(): │ │ │ │ │ - push {r4, r5, r6, r7, r8, lr} │ │ │ │ │ + strd r4, [sp, #-24]! @ 0xffffffe8 │ │ │ │ │ + strd r6, [sp, #8] │ │ │ │ │ ldr r7, [r0] │ │ │ │ │ + str r8, [sp, #16] │ │ │ │ │ + str lr, [sp, #20] │ │ │ │ │ cmn r7, #-2147483647 @ 0x80000001 │ │ │ │ │ moveq r5, #0 │ │ │ │ │ - beq e8 │ │ │ │ │ + beq 118 │ │ │ │ │ cmp r7, #0 │ │ │ │ │ - ble f0 │ │ │ │ │ + ble 130 │ │ │ │ │ add r1, r0, r1, lsl #2 │ │ │ │ │ - add r7, r7, r7, lsl #1 │ │ │ │ │ - add r8, r1, #8 │ │ │ │ │ mov r4, #0 │ │ │ │ │ mov r5, #1 │ │ │ │ │ + add r7, r7, r7, lsl #1 │ │ │ │ │ add r6, r0, #4 │ │ │ │ │ + add r8, r1, #8 │ │ │ │ │ ldr r1, [r8, r4, lsl #2] │ │ │ │ │ ldr r0, [r6, r4, lsl #2] │ │ │ │ │ add r4, r4, #3 │ │ │ │ │ add r0, r1, r0 │ │ │ │ │ sub r0, r0, #1 │ │ │ │ │ bl 0 <__aeabi_idiv> │ │ │ │ │ R_ARM_CALL __aeabi_idiv │ │ │ │ │ cmp r4, r7 │ │ │ │ │ mul r5, r0, r5 │ │ │ │ │ - bne c4 │ │ │ │ │ + bne f4 │ │ │ │ │ + ldrd r6, [sp, #8] │ │ │ │ │ mov r0, r5 │ │ │ │ │ - pop {r4, r5, r6, r7, r8, pc} │ │ │ │ │ + ldrd r4, [sp] │ │ │ │ │ + ldr r8, [sp, #16] │ │ │ │ │ + add sp, sp, #20 │ │ │ │ │ + pop {pc} @ (ldr pc, [sp], #4) │ │ │ │ │ mov r5, #1 │ │ │ │ │ - b e8 │ │ │ │ │ + b 118 │ │ │ │ │ │ │ │ │ │ -000000f8 : │ │ │ │ │ +00000138 : │ │ │ │ │ fftw_mpi_idle_process(): │ │ │ │ │ - push {r4, r5, r6, r7, r8, r9, sl, lr} │ │ │ │ │ + strd r4, [sp, #-32]! @ 0xffffffe0 │ │ │ │ │ + strd r6, [sp, #8] │ │ │ │ │ ldr r7, [r0] │ │ │ │ │ + strd r8, [sp, #16] │ │ │ │ │ mov r8, r2 │ │ │ │ │ + str sl, [sp, #24] │ │ │ │ │ + str lr, [sp, #28] │ │ │ │ │ cmn r7, #-2147483647 @ 0x80000001 │ │ │ │ │ moveq r5, #0 │ │ │ │ │ - beq 154 │ │ │ │ │ + beq 1a4 │ │ │ │ │ cmp r7, #0 │ │ │ │ │ - ble 164 │ │ │ │ │ + ble 1c8 │ │ │ │ │ add r1, r0, r1, lsl #2 │ │ │ │ │ - add r7, r7, r7, lsl #1 │ │ │ │ │ - add r9, r1, #8 │ │ │ │ │ mov r4, #0 │ │ │ │ │ mov r5, #1 │ │ │ │ │ + add r7, r7, r7, lsl #1 │ │ │ │ │ add r6, r0, #4 │ │ │ │ │ + add r9, r1, #8 │ │ │ │ │ ldr r1, [r9, r4, lsl #2] │ │ │ │ │ ldr r0, [r6, r4, lsl #2] │ │ │ │ │ add r4, r4, #3 │ │ │ │ │ add r0, r1, r0 │ │ │ │ │ sub r0, r0, #1 │ │ │ │ │ bl 0 <__aeabi_idiv> │ │ │ │ │ R_ARM_CALL __aeabi_idiv │ │ │ │ │ cmp r4, r7 │ │ │ │ │ mul r5, r0, r5 │ │ │ │ │ - bne 130 │ │ │ │ │ + bne 180 │ │ │ │ │ + ldrd r6, [sp, #8] │ │ │ │ │ cmp r8, r5 │ │ │ │ │ movlt r0, #0 │ │ │ │ │ movge r0, #1 │ │ │ │ │ - pop {r4, r5, r6, r7, r8, r9, sl, pc} │ │ │ │ │ + ldrd r4, [sp] │ │ │ │ │ + ldrd r8, [sp, #16] │ │ │ │ │ + ldr sl, [sp, #24] │ │ │ │ │ + add sp, sp, #28 │ │ │ │ │ + pop {pc} @ (ldr pc, [sp], #4) │ │ │ │ │ mov r5, #1 │ │ │ │ │ - b 154 │ │ │ │ │ + b 1a4 │ │ │ │ │ │ │ │ │ │ -0000016c : │ │ │ │ │ +000001d0 : │ │ │ │ │ fftw_mpi_block_coords(): │ │ │ │ │ - push {r4, r5, r6, r7, r8, lr} │ │ │ │ │ + strd r4, [sp, #-24]! @ 0xffffffe8 │ │ │ │ │ mov r5, r2 │ │ │ │ │ ldr r2, [r0] │ │ │ │ │ + strd r6, [sp, #8] │ │ │ │ │ + str r8, [sp, #16] │ │ │ │ │ + str lr, [sp, #20] │ │ │ │ │ cmp r2, #0 │ │ │ │ │ - pople {r4, r5, r6, r7, r8, pc} │ │ │ │ │ + ble 23c │ │ │ │ │ add r4, r2, r2, lsl #1 │ │ │ │ │ mov r7, r0 │ │ │ │ │ mov r8, r1 │ │ │ │ │ - add r4, r0, r4, lsl #2 │ │ │ │ │ add r6, r3, r2, lsl #2 │ │ │ │ │ + add r4, r0, r4, lsl #2 │ │ │ │ │ sub r3, r4, #4 │ │ │ │ │ - ldr r1, [r3, r8, lsl #2] │ │ │ │ │ ldr r0, [r4, #-8] │ │ │ │ │ sub r4, r4, #12 │ │ │ │ │ + ldr r1, [r3, r8, lsl #2] │ │ │ │ │ add r0, r1, r0 │ │ │ │ │ sub r0, r0, #1 │ │ │ │ │ bl 0 <__aeabi_idiv> │ │ │ │ │ R_ARM_CALL __aeabi_idiv │ │ │ │ │ mov r1, r0 │ │ │ │ │ mov r0, r5 │ │ │ │ │ bl 0 <__aeabi_idivmod> │ │ │ │ │ R_ARM_CALL __aeabi_idivmod │ │ │ │ │ cmp r7, r4 │ │ │ │ │ mov r5, r0 │ │ │ │ │ str r1, [r6, #-4]! │ │ │ │ │ - bne 194 │ │ │ │ │ - pop {r4, r5, r6, r7, r8, pc} │ │ │ │ │ + bne 204 │ │ │ │ │ + ldrd r4, [sp] │ │ │ │ │ + ldrd r6, [sp, #8] │ │ │ │ │ + ldr r8, [sp, #16] │ │ │ │ │ + add sp, sp, #20 │ │ │ │ │ + pop {pc} @ (ldr pc, [sp], #4) │ │ │ │ │ │ │ │ │ │ -000001d0 : │ │ │ │ │ +00000250 : │ │ │ │ │ fftw_mpi_total_block(): │ │ │ │ │ - push {r4, r5, r6, r7, r8, r9, sl, fp, lr} │ │ │ │ │ + strd r4, [sp, #-36]! @ 0xffffffdc │ │ │ │ │ + mov r4, r2 │ │ │ │ │ + strd r6, [sp, #8] │ │ │ │ │ + mov r6, r1 │ │ │ │ │ + strd r8, [sp, #16] │ │ │ │ │ + strd sl, [sp, #24] │ │ │ │ │ add fp, sp, #32 │ │ │ │ │ + str lr, [sp, #32] │ │ │ │ │ sub sp, sp, #12 │ │ │ │ │ ldr r7, [r0] │ │ │ │ │ - mov r6, r1 │ │ │ │ │ - cmn r7, #-2147483647 @ 0x80000001 │ │ │ │ │ - mov r4, r2 │ │ │ │ │ str r0, [fp, #-44] @ 0xffffffd4 │ │ │ │ │ - beq 310 │ │ │ │ │ + cmn r7, #-2147483647 @ 0x80000001 │ │ │ │ │ + beq 398 │ │ │ │ │ cmp r7, #0 │ │ │ │ │ - ble 32c │ │ │ │ │ + ble 3c8 │ │ │ │ │ add r3, r7, r7, lsl #1 │ │ │ │ │ - str r3, [fp, #-40] @ 0xffffffd8 │ │ │ │ │ - add r3, r0, r1, lsl #2 │ │ │ │ │ - add r9, r3, #8 │ │ │ │ │ mov r5, #0 │ │ │ │ │ mov r8, #1 │ │ │ │ │ add sl, r0, #4 │ │ │ │ │ + str r3, [fp, #-40] @ 0xffffffd8 │ │ │ │ │ + add r3, r0, r1, lsl #2 │ │ │ │ │ + add r9, r3, #8 │ │ │ │ │ ldr r1, [r9, r5, lsl #2] │ │ │ │ │ ldr r0, [sl, r5, lsl #2] │ │ │ │ │ add r5, r5, #3 │ │ │ │ │ add r0, r1, r0 │ │ │ │ │ sub r0, r0, #1 │ │ │ │ │ bl 0 <__aeabi_idiv> │ │ │ │ │ R_ARM_CALL __aeabi_idiv │ │ │ │ │ ldr r3, [fp, #-40] @ 0xffffffd8 │ │ │ │ │ - cmp r5, r3 │ │ │ │ │ mul r8, r0, r8 │ │ │ │ │ - bne 218 │ │ │ │ │ + cmp r5, r3 │ │ │ │ │ + bne 2a8 │ │ │ │ │ cmp r4, r8 │ │ │ │ │ - bge 320 │ │ │ │ │ + bge 3a8 │ │ │ │ │ lsl r3, r7, #2 │ │ │ │ │ + sub r2, r7, #1 │ │ │ │ │ add r3, r3, #7 │ │ │ │ │ bic r3, r3, #7 │ │ │ │ │ sub sp, sp, r3 │ │ │ │ │ - sub r2, r7, #1 │ │ │ │ │ str sp, [fp, #-40] @ 0xffffffd8 │ │ │ │ │ ldr r3, [fp, #-44] @ 0xffffffd4 │ │ │ │ │ add r5, r2, r2, lsl #1 │ │ │ │ │ mov r8, r3 │ │ │ │ │ add r5, r3, r5, lsl #2 │ │ │ │ │ ldr r3, [fp, #-40] @ 0xffffffd8 │ │ │ │ │ - add r2, r2, #1 │ │ │ │ │ add sl, r3, r2, lsl #2 │ │ │ │ │ add r1, r5, #8 │ │ │ │ │ - ldr r1, [r1, r6, lsl #2] │ │ │ │ │ ldr r0, [r5, #4] │ │ │ │ │ + ldr r1, [r1, r6, lsl #2] │ │ │ │ │ add r0, r1, r0 │ │ │ │ │ sub r0, r0, #1 │ │ │ │ │ bl 0 <__aeabi_idiv> │ │ │ │ │ R_ARM_CALL __aeabi_idiv │ │ │ │ │ mov r1, r0 │ │ │ │ │ mov r0, r4 │ │ │ │ │ bl 0 <__aeabi_idivmod> │ │ │ │ │ R_ARM_CALL __aeabi_idivmod │ │ │ │ │ ldr r2, [fp, #-44] @ 0xffffffd4 │ │ │ │ │ + mov r4, r0 │ │ │ │ │ + str r1, [sl], #-4 │ │ │ │ │ cmp r5, r2 │ │ │ │ │ sub r5, r5, #12 │ │ │ │ │ - mov r4, r0 │ │ │ │ │ - str r1, [sl, #-4]! │ │ │ │ │ - bne 27c │ │ │ │ │ + bne 308 │ │ │ │ │ ldr r3, [fp, #-40] @ 0xffffffd8 │ │ │ │ │ mov r0, #1 │ │ │ │ │ - sub sl, r3, #4 │ │ │ │ │ mov ip, #0 │ │ │ │ │ + sub sl, r3, #4 │ │ │ │ │ add r3, r8, #8 │ │ │ │ │ - ldr r1, [r3, r6, lsl #2] │ │ │ │ │ ldr r2, [sl, #4]! │ │ │ │ │ + ldr r1, [r3, r6, lsl #2] │ │ │ │ │ ldr r3, [r8, #4] │ │ │ │ │ mul r2, r1, r2 │ │ │ │ │ sub r3, r3, r2 │ │ │ │ │ cmp r3, #0 │ │ │ │ │ movle r0, #0 │ │ │ │ │ - ble 2f8 │ │ │ │ │ + ble 384 │ │ │ │ │ cmp r3, r1 │ │ │ │ │ movge r3, r1 │ │ │ │ │ mul r0, r3, r0 │ │ │ │ │ add ip, ip, #1 │ │ │ │ │ - cmp r7, ip │ │ │ │ │ add r8, r8, #12 │ │ │ │ │ - bgt 2c8 │ │ │ │ │ - sub sp, fp, #32 │ │ │ │ │ - pop {r4, r5, r6, r7, r8, r9, sl, fp, pc} │ │ │ │ │ + cmp r7, ip │ │ │ │ │ + bgt 354 │ │ │ │ │ + b 3ac │ │ │ │ │ cmp r2, #0 │ │ │ │ │ mvnlt r2, #-2147483647 @ 0x80000001 │ │ │ │ │ strlt sp, [fp, #-40] @ 0xffffffd8 │ │ │ │ │ - blt 260 │ │ │ │ │ + blt 2f0 │ │ │ │ │ mov r0, #0 │ │ │ │ │ sub sp, fp, #32 │ │ │ │ │ - pop {r4, r5, r6, r7, r8, r9, sl, fp, pc} │ │ │ │ │ + ldrd r4, [sp] │ │ │ │ │ + ldrd r6, [sp, #8] │ │ │ │ │ + ldrd r8, [sp, #16] │ │ │ │ │ + ldrd sl, [sp, #24] │ │ │ │ │ + add sp, sp, #32 │ │ │ │ │ + pop {pc} @ (ldr pc, [sp], #4) │ │ │ │ │ cmp r2, #0 │ │ │ │ │ movgt r0, #0 │ │ │ │ │ movle r0, #1 │ │ │ │ │ - b 324 │ │ │ │ │ + b 3ac │ │ │ │ │ │ │ │ │ │ -0000033c : │ │ │ │ │ +000003d8 : │ │ │ │ │ fftw_mpi_is_local_after(): │ │ │ │ │ - push {r4, r5, r6, r7, r8, lr} │ │ │ │ │ + strd r4, [sp, #-24]! @ 0xffffffe8 │ │ │ │ │ + strd r6, [sp, #8] │ │ │ │ │ ldr r6, [r1] │ │ │ │ │ + str r8, [sp, #16] │ │ │ │ │ + str lr, [sp, #20] │ │ │ │ │ cmn r6, #-2147483647 @ 0x80000001 │ │ │ │ │ - beq 3ac │ │ │ │ │ + beq 454 │ │ │ │ │ cmp r6, r0 │ │ │ │ │ - ble 3ac │ │ │ │ │ + ble 454 │ │ │ │ │ sub r6, r6, r0 │ │ │ │ │ add r0, r0, r0, lsl #1 │ │ │ │ │ + mov r4, #0 │ │ │ │ │ + add r6, r6, r6, lsl #1 │ │ │ │ │ add r7, r1, r0, lsl #2 │ │ │ │ │ add r0, r0, r2 │ │ │ │ │ add r1, r1, r0, lsl #2 │ │ │ │ │ - add r6, r6, r6, lsl #1 │ │ │ │ │ add r7, r7, #4 │ │ │ │ │ add r5, r1, #8 │ │ │ │ │ - mov r4, #0 │ │ │ │ │ - b 388 │ │ │ │ │ + b 430 │ │ │ │ │ add r4, r4, #3 │ │ │ │ │ cmp r4, r6 │ │ │ │ │ - beq 3ac │ │ │ │ │ + beq 454 │ │ │ │ │ ldr r1, [r5, r4, lsl #2] │ │ │ │ │ ldr r0, [r7, r4, lsl #2] │ │ │ │ │ add r0, r1, r0 │ │ │ │ │ sub r0, r0, #1 │ │ │ │ │ bl 0 <__aeabi_idiv> │ │ │ │ │ R_ARM_CALL __aeabi_idiv │ │ │ │ │ cmp r0, #1 │ │ │ │ │ - ble 37c │ │ │ │ │ + ble 424 │ │ │ │ │ mov r0, #0 │ │ │ │ │ - pop {r4, r5, r6, r7, r8, pc} │ │ │ │ │ + b 458 │ │ │ │ │ mov r0, #1 │ │ │ │ │ - pop {r4, r5, r6, r7, r8, pc} │ │ │ │ │ + ldrd r4, [sp] │ │ │ │ │ + ldrd r6, [sp, #8] │ │ │ │ │ + ldr r8, [sp, #16] │ │ │ │ │ + add sp, sp, #20 │ │ │ │ │ + pop {pc} @ (ldr pc, [sp], #4) │ │ │ │ │ │ │ │ │ │ -000003b4 : │ │ │ │ │ +0000046c : │ │ │ │ │ fftw_mpi_is_local(): │ │ │ │ │ - push {r4, r5, r6, r7, r8, lr} │ │ │ │ │ + strd r4, [sp, #-24]! @ 0xffffffe8 │ │ │ │ │ + strd r6, [sp, #8] │ │ │ │ │ ldr r6, [r0] │ │ │ │ │ + str r8, [sp, #16] │ │ │ │ │ + str lr, [sp, #20] │ │ │ │ │ sub r3, r6, #1 │ │ │ │ │ cmn r3, #-2147483645 @ 0x80000003 │ │ │ │ │ - bhi 410 │ │ │ │ │ + bhi 4d4 │ │ │ │ │ add r1, r0, r1, lsl #2 │ │ │ │ │ - add r6, r6, r6, lsl #1 │ │ │ │ │ - add r7, r1, #8 │ │ │ │ │ mov r4, #0 │ │ │ │ │ add r5, r0, #4 │ │ │ │ │ - b 3ec │ │ │ │ │ + add r6, r6, r6, lsl #1 │ │ │ │ │ + add r7, r1, #8 │ │ │ │ │ + b 4b0 │ │ │ │ │ add r4, r4, #3 │ │ │ │ │ cmp r6, r4 │ │ │ │ │ - beq 410 │ │ │ │ │ + beq 4d4 │ │ │ │ │ ldr r1, [r7, r4, lsl #2] │ │ │ │ │ ldr r0, [r5, r4, lsl #2] │ │ │ │ │ add r0, r1, r0 │ │ │ │ │ sub r0, r0, #1 │ │ │ │ │ bl 0 <__aeabi_idiv> │ │ │ │ │ R_ARM_CALL __aeabi_idiv │ │ │ │ │ cmp r0, #1 │ │ │ │ │ - ble 3e0 │ │ │ │ │ + ble 4a4 │ │ │ │ │ mov r0, #0 │ │ │ │ │ - pop {r4, r5, r6, r7, r8, pc} │ │ │ │ │ + b 4d8 │ │ │ │ │ mov r0, #1 │ │ │ │ │ - pop {r4, r5, r6, r7, r8, pc} │ │ │ │ │ + ldrd r4, [sp] │ │ │ │ │ + ldrd r6, [sp, #8] │ │ │ │ │ + ldr r8, [sp, #16] │ │ │ │ │ + add sp, sp, #20 │ │ │ │ │ + pop {pc} @ (ldr pc, [sp], #4) │ │ │ │ │ │ │ │ │ │ -00000418 : │ │ │ │ │ +000004ec : │ │ │ │ │ fftw_mpi_is_block1d(): │ │ │ │ │ - push {r4, r5, r6, r7, r8, lr} │ │ │ │ │ + strd r4, [sp, #-24]! @ 0xffffffe8 │ │ │ │ │ + strd r6, [sp, #8] │ │ │ │ │ + str r8, [sp, #16] │ │ │ │ │ ldr r8, [r0] │ │ │ │ │ + str lr, [sp, #20] │ │ │ │ │ sub r3, r8, #1 │ │ │ │ │ cmn r3, #-2147483645 @ 0x80000003 │ │ │ │ │ - bhi 4fc │ │ │ │ │ + bhi 5dc │ │ │ │ │ mov r6, r0 │ │ │ │ │ mov r7, r1 │ │ │ │ │ mov r4, r0 │ │ │ │ │ mov r5, #0 │ │ │ │ │ - b 450 │ │ │ │ │ + b 530 │ │ │ │ │ add r5, r5, #1 │ │ │ │ │ - cmp r8, r5 │ │ │ │ │ add r4, r4, #12 │ │ │ │ │ - beq 4fc │ │ │ │ │ + cmp r8, r5 │ │ │ │ │ + beq 5dc │ │ │ │ │ add r3, r4, #8 │ │ │ │ │ - ldr r1, [r3, r7, lsl #2] │ │ │ │ │ ldr r0, [r4, #4] │ │ │ │ │ + ldr r1, [r3, r7, lsl #2] │ │ │ │ │ add r0, r1, r0 │ │ │ │ │ sub r0, r0, #1 │ │ │ │ │ bl 0 <__aeabi_idiv> │ │ │ │ │ R_ARM_CALL __aeabi_idiv │ │ │ │ │ cmp r0, #1 │ │ │ │ │ - beq 440 │ │ │ │ │ + beq 520 │ │ │ │ │ cmp r5, #1 │ │ │ │ │ movle r0, #1 │ │ │ │ │ movgt r0, #0 │ │ │ │ │ cmp r8, r5 │ │ │ │ │ movle r0, #0 │ │ │ │ │ cmp r0, #0 │ │ │ │ │ - popeq {r4, r5, r6, r7, r8, pc} │ │ │ │ │ + beq 5e0 │ │ │ │ │ cmp r5, #0 │ │ │ │ │ moveq r3, #1 │ │ │ │ │ movne r3, #2 │ │ │ │ │ cmp r8, r3 │ │ │ │ │ - ble 504 │ │ │ │ │ + ble 5f4 │ │ │ │ │ sub r8, r8, r5 │ │ │ │ │ + rsb r5, r5, #0 │ │ │ │ │ add r8, r8, r8, lsl #1 │ │ │ │ │ sub r4, r8, #3 │ │ │ │ │ - rsb r8, r5, #0 │ │ │ │ │ - and r8, r8, #12 │ │ │ │ │ - add r5, r5, r5, lsl #1 │ │ │ │ │ - add r1, r5, r7 │ │ │ │ │ + and r8, r5, #12 │ │ │ │ │ + and r5, r5, #3 │ │ │ │ │ add r8, r8, #16 │ │ │ │ │ + add r1, r5, r7 │ │ │ │ │ add r8, r6, r8 │ │ │ │ │ add r6, r6, r1, lsl #2 │ │ │ │ │ - add r6, r6, #20 │ │ │ │ │ mov r5, #0 │ │ │ │ │ - b 4e0 │ │ │ │ │ + add r6, r6, #20 │ │ │ │ │ + b 5c0 │ │ │ │ │ add r5, r5, #3 │ │ │ │ │ cmp r5, r4 │ │ │ │ │ - beq 504 │ │ │ │ │ + beq 5f4 │ │ │ │ │ ldr r1, [r6, r5, lsl #2] │ │ │ │ │ ldr r0, [r8, r5, lsl #2] │ │ │ │ │ add r0, r1, r0 │ │ │ │ │ sub r0, r0, #1 │ │ │ │ │ bl 0 <__aeabi_idiv> │ │ │ │ │ R_ARM_CALL __aeabi_idiv │ │ │ │ │ cmp r0, #1 │ │ │ │ │ - ble 4d4 │ │ │ │ │ + ble 5b4 │ │ │ │ │ mov r0, #0 │ │ │ │ │ - pop {r4, r5, r6, r7, r8, pc} │ │ │ │ │ + ldrd r4, [sp] │ │ │ │ │ + ldrd r6, [sp, #8] │ │ │ │ │ + ldr r8, [sp, #16] │ │ │ │ │ + add sp, sp, #20 │ │ │ │ │ + pop {pc} @ (ldr pc, [sp], #4) │ │ │ │ │ mov r0, #1 │ │ │ │ │ - pop {r4, r5, r6, r7, r8, pc} │ │ │ │ │ + b 5e0 │ │ │ ├── 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: 632 (bytes into file) │ │ │ │ │ + Start of section headers: 660 (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 0x278: │ │ │ │ │ +There are 10 section headers, starting at offset 0x294: │ │ │ │ │ │ │ │ │ │ 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 0000cc 00 AX 0 0 4 │ │ │ │ │ - [ 2] .rel.text REL 00000000 0001f8 000030 08 I 7 1 4 │ │ │ │ │ - [ 3] .data PROGBITS 00000000 000100 000000 00 WA 0 0 1 │ │ │ │ │ - [ 4] .bss NOBITS 00000000 000100 000000 00 WA 0 0 1 │ │ │ │ │ - [ 5] .note.GNU-stack PROGBITS 00000000 000100 000000 00 0 0 1 │ │ │ │ │ - [ 6] .ARM.attributes ARM_ATTRIBUTES 00000000 000100 00002b 00 0 0 1 │ │ │ │ │ - [ 7] .symtab SYMTAB 00000000 00012c 000070 10 8 2 4 │ │ │ │ │ - [ 8] .strtab STRTAB 00000000 00019c 000059 00 0 0 1 │ │ │ │ │ - [ 9] .shstrtab STRTAB 00000000 000228 000050 00 0 0 1 │ │ │ │ │ + [ 1] .text PROGBITS 00000000 000034 0000e8 00 AX 0 0 4 │ │ │ │ │ + [ 2] .rel.text REL 00000000 000214 000030 08 I 7 1 4 │ │ │ │ │ + [ 3] .data PROGBITS 00000000 00011c 000000 00 WA 0 0 1 │ │ │ │ │ + [ 4] .bss NOBITS 00000000 00011c 000000 00 WA 0 0 1 │ │ │ │ │ + [ 5] .note.GNU-stack PROGBITS 00000000 00011c 000000 00 0 0 1 │ │ │ │ │ + [ 6] .ARM.attributes ARM_ATTRIBUTES 00000000 00011c 00002b 00 0 0 1 │ │ │ │ │ + [ 7] .symtab SYMTAB 00000000 000148 000070 10 8 2 4 │ │ │ │ │ + [ 8] .strtab STRTAB 00000000 0001b8 000059 00 0 0 1 │ │ │ │ │ + [ 9] .shstrtab STRTAB 00000000 000244 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 $a │ │ │ │ │ - 2: 00000000 204 FUNC GLOBAL DEFAULT 1 fftw_mpi_choose_radix │ │ │ │ │ + 2: 00000000 232 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,9 +1,9 @@ │ │ │ │ │ │ │ │ │ │ -Relocation section '.rel.text' at offset 0x1f8 contains 6 entries: │ │ │ │ │ +Relocation section '.rel.text' at offset 0x214 contains 6 entries: │ │ │ │ │ Offset Info Type Sym. Value Symbol's Name │ │ │ │ │ -0000001c 0000031c R_ARM_CALL 00000000 __aeabi_idivmod │ │ │ │ │ -00000054 0000041c R_ARM_CALL 00000000 __aeabi_idiv │ │ │ │ │ -00000074 0000051c R_ARM_CALL 00000000 fftw_mpi_default_block │ │ │ │ │ -00000088 0000051c R_ARM_CALL 00000000 fftw_mpi_default_block │ │ │ │ │ -000000a4 0000061c R_ARM_CALL 00000000 fftw_isqrt │ │ │ │ │ -000000bc 0000031c R_ARM_CALL 00000000 __aeabi_idivmod │ │ │ │ │ +0000002c 0000031c R_ARM_CALL 00000000 __aeabi_idivmod │ │ │ │ │ +00000060 0000041c R_ARM_CALL 00000000 __aeabi_idiv │ │ │ │ │ +00000080 0000051c R_ARM_CALL 00000000 fftw_mpi_default_block │ │ │ │ │ +00000094 0000051c R_ARM_CALL 00000000 fftw_mpi_default_block │ │ │ │ │ +000000c0 0000061c R_ARM_CALL 00000000 fftw_isqrt │ │ │ │ │ +000000d8 0000031c R_ARM_CALL 00000000 __aeabi_idivmod │ │ │ │ ├── objdump --line-numbers --disassemble --demangle --reloc --no-show-raw-insn --section=.text {} │ │ │ │ │ @@ -1,64 +1,71 @@ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ Disassembly of section .text: │ │ │ │ │ │ │ │ │ │ 00000000 : │ │ │ │ │ fftw_mpi_choose_radix(): │ │ │ │ │ - push {r4, r5, r6, r7, r8, lr} │ │ │ │ │ + strd r4, [sp, #-24]! @ 0xffffffe8 │ │ │ │ │ + mov r5, r0 │ │ │ │ │ + strd r6, [sp, #8] │ │ │ │ │ + mov r6, r3 │ │ │ │ │ + str r8, [sp, #16] │ │ │ │ │ + str lr, [sp, #20] │ │ │ │ │ sub sp, sp, #16 │ │ │ │ │ add ip, sp, #16 │ │ │ │ │ + ldr r8, [sp, #48] @ 0x30 │ │ │ │ │ stmdb ip, {r0, r1, r2} │ │ │ │ │ mov r1, r3 │ │ │ │ │ - mov r6, r3 │ │ │ │ │ - mov r5, r0 │ │ │ │ │ bl 0 <__aeabi_idivmod> │ │ │ │ │ R_ARM_CALL __aeabi_idivmod │ │ │ │ │ - ldr r8, [sp, #48] @ 0x30 │ │ │ │ │ - ldr r7, [sp, #52] @ 0x34 │ │ │ │ │ cmp r1, #0 │ │ │ │ │ - bne a0 │ │ │ │ │ + ldr r7, [sp, #52] @ 0x34 │ │ │ │ │ + bne bc │ │ │ │ │ cmp r0, r6 │ │ │ │ │ mov r4, r0 │ │ │ │ │ - blt a0 │ │ │ │ │ + blt bc │ │ │ │ │ cmp r4, #1 │ │ │ │ │ cmpne r4, r5 │ │ │ │ │ moveq r5, #0 │ │ │ │ │ - beq 94 │ │ │ │ │ + beq a0 │ │ │ │ │ mov r1, r4 │ │ │ │ │ mov r0, r5 │ │ │ │ │ bl 0 <__aeabi_idiv> │ │ │ │ │ R_ARM_CALL __aeabi_idiv │ │ │ │ │ ldr r2, [sp, #44] @ 0x2c │ │ │ │ │ + mov r5, r0 │ │ │ │ │ mov r1, r6 │ │ │ │ │ cmn r2, #1 │ │ │ │ │ - mov r5, r0 │ │ │ │ │ moveq r5, r4 │ │ │ │ │ moveq r4, r0 │ │ │ │ │ mov r0, r5 │ │ │ │ │ bl 0 │ │ │ │ │ R_ARM_CALL fftw_mpi_default_block │ │ │ │ │ mov r1, r6 │ │ │ │ │ - str r0, [r8, #4] │ │ │ │ │ str r0, [r8] │ │ │ │ │ + str r0, [r8, #4] │ │ │ │ │ mov r0, r4 │ │ │ │ │ bl 0 │ │ │ │ │ R_ARM_CALL fftw_mpi_default_block │ │ │ │ │ - str r0, [r7, #4] │ │ │ │ │ str r0, [r7] │ │ │ │ │ + str r0, [r7, #4] │ │ │ │ │ mov r0, r5 │ │ │ │ │ add sp, sp, #16 │ │ │ │ │ - pop {r4, r5, r6, r7, r8, pc} │ │ │ │ │ + ldrd r4, [sp] │ │ │ │ │ + ldrd r6, [sp, #8] │ │ │ │ │ + ldr r8, [sp, #16] │ │ │ │ │ + add sp, sp, #20 │ │ │ │ │ + pop {pc} @ (ldr pc, [sp], #4) │ │ │ │ │ mov r0, r5 │ │ │ │ │ bl 0 │ │ │ │ │ R_ARM_CALL fftw_isqrt │ │ │ │ │ mov r4, r0 │ │ │ │ │ - b b4 │ │ │ │ │ + b d0 │ │ │ │ │ add r4, r4, #1 │ │ │ │ │ mov r1, r4 │ │ │ │ │ mov r0, r5 │ │ │ │ │ bl 0 <__aeabi_idivmod> │ │ │ │ │ R_ARM_CALL __aeabi_idivmod │ │ │ │ │ cmp r1, #0 │ │ │ │ │ - bne b0 │ │ │ │ │ - b 3c │ │ │ │ │ + bne cc │ │ │ │ │ + b 48 │ │ │ ├── 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: 2060 (bytes into file) │ │ │ │ │ + Start of section headers: 2228 (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 0x80c: │ │ │ │ │ +There are 11 section headers, starting at offset 0x8b4: │ │ │ │ │ │ │ │ │ │ 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 0003f8 00 AX 0 0 4 │ │ │ │ │ - [ 2] .rel.text REL 00000000 00070c 0000a0 08 I 8 1 4 │ │ │ │ │ - [ 3] .data PROGBITS 00000000 00042c 000000 00 WA 0 0 1 │ │ │ │ │ - [ 4] .bss NOBITS 00000000 00042c 000000 00 WA 0 0 1 │ │ │ │ │ - [ 5] .rodata.str1.4 PROGBITS 00000000 00042c 00002c 01 AMS 0 0 4 │ │ │ │ │ - [ 6] .note.GNU-stack PROGBITS 00000000 000458 000000 00 0 0 1 │ │ │ │ │ - [ 7] .ARM.attributes ARM_ATTRIBUTES 00000000 000458 00002b 00 0 0 1 │ │ │ │ │ - [ 8] .symtab SYMTAB 00000000 000484 000170 10 9 10 4 │ │ │ │ │ - [ 9] .strtab STRTAB 00000000 0005f4 000117 00 0 0 1 │ │ │ │ │ - [10] .shstrtab STRTAB 00000000 0007ac 00005f 00 0 0 1 │ │ │ │ │ + [ 1] .text PROGBITS 00000000 000034 000490 00 AX 0 0 4 │ │ │ │ │ + [ 2] .rel.text REL 00000000 0007a4 0000b0 08 I 8 1 4 │ │ │ │ │ + [ 3] .data PROGBITS 00000000 0004c4 000000 00 WA 0 0 1 │ │ │ │ │ + [ 4] .bss NOBITS 00000000 0004c4 000000 00 WA 0 0 1 │ │ │ │ │ + [ 5] .rodata.str1.4 PROGBITS 00000000 0004c4 00002c 01 AMS 0 0 4 │ │ │ │ │ + [ 6] .note.GNU-stack PROGBITS 00000000 0004f0 000000 00 0 0 1 │ │ │ │ │ + [ 7] .ARM.attributes ARM_ATTRIBUTES 00000000 0004f0 00002b 00 0 0 1 │ │ │ │ │ + [ 8] .symtab SYMTAB 00000000 00051c 000170 10 9 10 4 │ │ │ │ │ + [ 9] .strtab STRTAB 00000000 00068c 000117 00 0 0 1 │ │ │ │ │ + [10] .shstrtab STRTAB 00000000 000854 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: 000003e0 0 NOTYPE LOCAL DEFAULT 1 $d │ │ │ │ │ - 10: 00000000 48 FUNC GLOBAL DEFAULT 1 fftw_mpi_mkdtensor │ │ │ │ │ + 9: 00000478 0 NOTYPE LOCAL DEFAULT 1 $d │ │ │ │ │ + 10: 00000000 84 FUNC GLOBAL DEFAULT 1 fftw_mpi_mkdtensor │ │ │ │ │ 11: 00000000 0 NOTYPE GLOBAL DEFAULT UND fftw_malloc_plain │ │ │ │ │ - 12: 00000030 4 FUNC GLOBAL DEFAULT 1 fftw_mpi_dtensor_destroy │ │ │ │ │ + 12: 00000054 4 FUNC GLOBAL DEFAULT 1 fftw_mpi_dtensor_destroy │ │ │ │ │ 13: 00000000 0 NOTYPE GLOBAL DEFAULT UND fftw_ifree │ │ │ │ │ - 14: 00000034 100 FUNC GLOBAL DEFAULT 1 fftw_mpi_dtensor_md5 │ │ │ │ │ + 14: 00000058 128 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: 00000098 96 FUNC GLOBAL DEFAULT 1 fftw_mpi_dtensor_copy │ │ │ │ │ + 17: 000000d8 132 FUNC GLOBAL DEFAULT 1 fftw_mpi_dtensor_copy │ │ │ │ │ 18: 00000000 0 NOTYPE GLOBAL DEFAULT UND memmove │ │ │ │ │ - 19: 000000f8 392 FUNC GLOBAL DEFAULT 1 fftw_mpi_dtensor_canonical │ │ │ │ │ + 19: 0000015c 428 FUNC GLOBAL DEFAULT 1 fftw_mpi_dtensor_canonical │ │ │ │ │ 20: 00000000 0 NOTYPE GLOBAL DEFAULT UND fftw_mpi_num_blocks │ │ │ │ │ - 21: 00000280 100 FUNC GLOBAL DEFAULT 1 fftw_mpi_dtensor_validp │ │ │ │ │ - 22: 000002e4 276 FUNC GLOBAL DEFAULT 1 fftw_mpi_dtensor_print │ │ │ │ │ + 21: 00000308 100 FUNC GLOBAL DEFAULT 1 fftw_mpi_dtensor_validp │ │ │ │ │ + 22: 0000036c 292 FUNC GLOBAL DEFAULT 1 fftw_mpi_dtensor_print │ │ │ │ ├── readelf --wide --relocs {} │ │ │ │ │ @@ -1,23 +1,25 @@ │ │ │ │ │ │ │ │ │ │ -Relocation section '.rel.text' at offset 0x70c contains 20 entries: │ │ │ │ │ +Relocation section '.rel.text' at offset 0x7a4 contains 22 entries: │ │ │ │ │ Offset Info Type Sym. Value Symbol's Name │ │ │ │ │ -00000024 00000b1c R_ARM_CALL 00000000 fftw_malloc_plain │ │ │ │ │ -00000030 00000d1d R_ARM_JUMP24 00000000 fftw_ifree │ │ │ │ │ -00000044 00000f1c R_ARM_CALL 00000000 fftw_md5int │ │ │ │ │ -00000068 0000101c R_ARM_CALL 00000000 fftw_md5INT │ │ │ │ │ -00000074 0000101c R_ARM_CALL 00000000 fftw_md5INT │ │ │ │ │ -00000080 0000101c R_ARM_CALL 00000000 fftw_md5INT │ │ │ │ │ -000000c0 00000b1c R_ARM_CALL 00000000 fftw_malloc_plain │ │ │ │ │ -000000ec 0000121c R_ARM_CALL 00000000 memmove │ │ │ │ │ -00000164 00000b1c R_ARM_CALL 00000000 fftw_malloc_plain │ │ │ │ │ -00000198 00000b1c R_ARM_CALL 00000000 fftw_malloc_plain │ │ │ │ │ -000001fc 0000141c R_ARM_CALL 00000000 fftw_mpi_num_blocks │ │ │ │ │ -00000230 0000141c R_ARM_CALL 00000000 fftw_mpi_num_blocks │ │ │ │ │ -0000025c 00000b1c R_ARM_CALL 00000000 fftw_malloc_plain │ │ │ │ │ -0000026c 00000b1c R_ARM_CALL 00000000 fftw_malloc_plain │ │ │ │ │ -000003e0 00000303 R_ARM_REL32 00000000 .LC0 │ │ │ │ │ -000003e4 00000603 R_ARM_REL32 0000000c .LC3 │ │ │ │ │ -000003e8 00000503 R_ARM_REL32 00000008 .LC2 │ │ │ │ │ -000003ec 00000703 R_ARM_REL32 0000001c .LC4 │ │ │ │ │ -000003f0 00000403 R_ARM_REL32 00000004 .LC1 │ │ │ │ │ -000003f4 00000803 R_ARM_REL32 00000020 .LC5 │ │ │ │ │ +00000028 00000b1c R_ARM_CALL 00000000 fftw_malloc_plain │ │ │ │ │ +00000040 00000b1c R_ARM_CALL 00000000 fftw_malloc_plain │ │ │ │ │ +00000054 00000d1d R_ARM_JUMP24 00000000 fftw_ifree │ │ │ │ │ +00000074 00000f1c R_ARM_CALL 00000000 fftw_md5int │ │ │ │ │ +0000009c 0000101c R_ARM_CALL 00000000 fftw_md5INT │ │ │ │ │ +000000a8 0000101c R_ARM_CALL 00000000 fftw_md5INT │ │ │ │ │ +000000b4 0000101c R_ARM_CALL 00000000 fftw_md5INT │ │ │ │ │ +00000108 00000b1c R_ARM_CALL 00000000 fftw_malloc_plain │ │ │ │ │ +00000134 0000121c R_ARM_CALL 00000000 memmove │ │ │ │ │ +00000150 00000b1c R_ARM_CALL 00000000 fftw_malloc_plain │ │ │ │ │ +000001dc 00000b1c R_ARM_CALL 00000000 fftw_malloc_plain │ │ │ │ │ +00000228 00000b1c R_ARM_CALL 00000000 fftw_malloc_plain │ │ │ │ │ +000002a4 0000141c R_ARM_CALL 00000000 fftw_mpi_num_blocks │ │ │ │ │ +000002c0 0000141c R_ARM_CALL 00000000 fftw_mpi_num_blocks │ │ │ │ │ +000002e8 00000b1c R_ARM_CALL 00000000 fftw_malloc_plain │ │ │ │ │ +000002f8 00000b1c R_ARM_CALL 00000000 fftw_malloc_plain │ │ │ │ │ +00000478 00000303 R_ARM_REL32 00000000 .LC0 │ │ │ │ │ +0000047c 00000603 R_ARM_REL32 0000000c .LC3 │ │ │ │ │ +00000480 00000503 R_ARM_REL32 00000008 .LC2 │ │ │ │ │ +00000484 00000703 R_ARM_REL32 0000001c .LC4 │ │ │ │ │ +00000488 00000403 R_ARM_REL32 00000004 .LC1 │ │ │ │ │ +0000048c 00000803 R_ARM_REL32 00000020 .LC5 │ │ │ │ ├── objdump --line-numbers --disassemble --demangle --reloc --no-show-raw-insn --section=.text {} │ │ │ │ │ @@ -2,298 +2,338 @@ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ Disassembly of section .text: │ │ │ │ │ │ │ │ │ │ 00000000 : │ │ │ │ │ fftw_mpi_mkdtensor(): │ │ │ │ │ sub r3, r0, #2 │ │ │ │ │ - cmn r3, #-2147483644 @ 0x80000004 │ │ │ │ │ - push {r4, lr} │ │ │ │ │ + str r4, [sp, #-8]! │ │ │ │ │ mov r4, r0 │ │ │ │ │ - subls r0, r0, #1 │ │ │ │ │ - addls r0, r0, r0, lsl #1 │ │ │ │ │ - lslls r0, r0, #2 │ │ │ │ │ - addls r0, r0, #16 │ │ │ │ │ - movhi r0, #16 │ │ │ │ │ + cmn r3, #-2147483644 @ 0x80000004 │ │ │ │ │ + str lr, [sp, #4] │ │ │ │ │ + bhi 3c │ │ │ │ │ + sub r0, r0, #1 │ │ │ │ │ + add r0, r0, r0, lsl #1 │ │ │ │ │ + lsl r0, r0, #2 │ │ │ │ │ + add r0, r0, #16 │ │ │ │ │ bl 0 │ │ │ │ │ R_ARM_CALL fftw_malloc_plain │ │ │ │ │ str r4, [r0] │ │ │ │ │ - pop {r4, pc} │ │ │ │ │ + ldr r4, [sp] │ │ │ │ │ + add sp, sp, #4 │ │ │ │ │ + pop {pc} @ (ldr pc, [sp], #4) │ │ │ │ │ + mov r0, #16 │ │ │ │ │ + bl 0 │ │ │ │ │ + R_ARM_CALL fftw_malloc_plain │ │ │ │ │ + str r4, [r0] │ │ │ │ │ + ldr r4, [sp] │ │ │ │ │ + add sp, sp, #4 │ │ │ │ │ + pop {pc} @ (ldr pc, [sp], #4) │ │ │ │ │ │ │ │ │ │ -00000030 : │ │ │ │ │ +00000054 : │ │ │ │ │ fftw_mpi_dtensor_destroy(): │ │ │ │ │ b 0 │ │ │ │ │ R_ARM_JUMP24 fftw_ifree │ │ │ │ │ │ │ │ │ │ -00000034 : │ │ │ │ │ +00000058 : │ │ │ │ │ fftw_mpi_dtensor_md5(): │ │ │ │ │ - push {r4, r5, r6, r7, r8, lr} │ │ │ │ │ + strd r4, [sp, #-24]! @ 0xffffffe8 │ │ │ │ │ + mov r5, r0 │ │ │ │ │ + strd r6, [sp, #8] │ │ │ │ │ mov r7, r1 │ │ │ │ │ ldr r1, [r1] │ │ │ │ │ - mov r5, r0 │ │ │ │ │ + str r8, [sp, #16] │ │ │ │ │ + str lr, [sp, #20] │ │ │ │ │ bl 0 │ │ │ │ │ R_ARM_CALL fftw_md5int │ │ │ │ │ ldr r3, [r7] │ │ │ │ │ sub r3, r3, #1 │ │ │ │ │ cmn r3, #-2147483645 @ 0x80000003 │ │ │ │ │ - pophi {r4, r5, r6, r7, r8, pc} │ │ │ │ │ + bhi c4 │ │ │ │ │ mov r4, r7 │ │ │ │ │ mov r6, #0 │ │ │ │ │ ldr r1, [r4, #4] │ │ │ │ │ mov r0, r5 │ │ │ │ │ + add r6, r6, #1 │ │ │ │ │ bl 0 │ │ │ │ │ R_ARM_CALL fftw_md5INT │ │ │ │ │ ldr r1, [r4, #8] │ │ │ │ │ mov r0, r5 │ │ │ │ │ bl 0 │ │ │ │ │ R_ARM_CALL fftw_md5INT │ │ │ │ │ ldr r1, [r4, #12]! │ │ │ │ │ mov r0, r5 │ │ │ │ │ bl 0 │ │ │ │ │ R_ARM_CALL fftw_md5INT │ │ │ │ │ ldr r3, [r7] │ │ │ │ │ - add r6, r6, #1 │ │ │ │ │ cmp r3, r6 │ │ │ │ │ - bgt 60 │ │ │ │ │ - pop {r4, r5, r6, r7, r8, pc} │ │ │ │ │ + bgt 90 │ │ │ │ │ + ldrd r4, [sp] │ │ │ │ │ + ldrd r6, [sp, #8] │ │ │ │ │ + ldr r8, [sp, #16] │ │ │ │ │ + add sp, sp, #20 │ │ │ │ │ + pop {pc} @ (ldr pc, [sp], #4) │ │ │ │ │ │ │ │ │ │ -00000098 : │ │ │ │ │ +000000d8 : │ │ │ │ │ fftw_mpi_dtensor_copy(): │ │ │ │ │ - push {r4, r5, r6, lr} │ │ │ │ │ - ldr r6, [r0] │ │ │ │ │ + strd r4, [sp, #-16]! │ │ │ │ │ mov r5, r0 │ │ │ │ │ + str r6, [sp, #8] │ │ │ │ │ + ldr r6, [r0] │ │ │ │ │ + str lr, [sp, #12] │ │ │ │ │ sub r3, r6, #2 │ │ │ │ │ cmn r3, #-2147483644 @ 0x80000004 │ │ │ │ │ - subls r0, r6, #1 │ │ │ │ │ - addls r0, r0, r0, lsl #1 │ │ │ │ │ - lslls r0, r0, #2 │ │ │ │ │ - addls r0, r0, #16 │ │ │ │ │ - movhi r0, #16 │ │ │ │ │ + bhi 14c │ │ │ │ │ + sub r0, r6, #1 │ │ │ │ │ + add r0, r0, r0, lsl #1 │ │ │ │ │ + lsl r0, r0, #2 │ │ │ │ │ + add r0, r0, #16 │ │ │ │ │ bl 0 │ │ │ │ │ R_ARM_CALL fftw_malloc_plain │ │ │ │ │ - str r6, [r0] │ │ │ │ │ - ldr r2, [r5] │ │ │ │ │ mov r4, r0 │ │ │ │ │ + str r6, [r4] │ │ │ │ │ + ldr r2, [r5] │ │ │ │ │ sub r3, r2, #1 │ │ │ │ │ cmn r3, #-2147483645 @ 0x80000003 │ │ │ │ │ - bhi f0 │ │ │ │ │ + bhi 138 │ │ │ │ │ add r2, r2, r2, lsl #1 │ │ │ │ │ - lsl r2, r2, #2 │ │ │ │ │ add r1, r5, #4 │ │ │ │ │ - add r0, r0, #4 │ │ │ │ │ + add r0, r4, #4 │ │ │ │ │ + lsl r2, r2, #2 │ │ │ │ │ bl 0 │ │ │ │ │ R_ARM_CALL memmove │ │ │ │ │ + ldr r6, [sp, #8] │ │ │ │ │ mov r0, r4 │ │ │ │ │ - pop {r4, r5, r6, pc} │ │ │ │ │ + ldrd r4, [sp] │ │ │ │ │ + add sp, sp, #12 │ │ │ │ │ + pop {pc} @ (ldr pc, [sp], #4) │ │ │ │ │ + mov r0, #16 │ │ │ │ │ + bl 0 │ │ │ │ │ + R_ARM_CALL fftw_malloc_plain │ │ │ │ │ + mov r4, r0 │ │ │ │ │ + b 110 │ │ │ │ │ │ │ │ │ │ -000000f8 : │ │ │ │ │ +0000015c : │ │ │ │ │ fftw_mpi_dtensor_canonical(): │ │ │ │ │ - push {r3, r4, r5, r6, r7, r8, r9, sl, fp, lr} │ │ │ │ │ + strd r4, [sp, #-36]! @ 0xffffffdc │ │ │ │ │ ldr r4, [r0] │ │ │ │ │ + strd r6, [sp, #8] │ │ │ │ │ + strd r8, [sp, #16] │ │ │ │ │ + strd sl, [sp, #24] │ │ │ │ │ + str lr, [sp, #32] │ │ │ │ │ + sub sp, sp, #4 │ │ │ │ │ cmn r4, #-2147483647 @ 0x80000001 │ │ │ │ │ - beq 268 │ │ │ │ │ + beq 2f4 │ │ │ │ │ cmp r4, #0 │ │ │ │ │ - mov r5, r0 │ │ │ │ │ - mov r6, r1 │ │ │ │ │ + mov r6, r0 │ │ │ │ │ + mov r7, r1 │ │ │ │ │ movle r4, #0 │ │ │ │ │ - ble 258 │ │ │ │ │ + ble 2e4 │ │ │ │ │ + clz r0, r1 │ │ │ │ │ mov r3, #0 │ │ │ │ │ - add lr, r4, r4, lsl #1 │ │ │ │ │ - clz r1, r1 │ │ │ │ │ + add r1, r4, r4, lsl #1 │ │ │ │ │ + lsr r0, r0, #5 │ │ │ │ │ mov r4, r3 │ │ │ │ │ - lsr r1, r1, #5 │ │ │ │ │ - add r0, r0, #4 │ │ │ │ │ - b 154 │ │ │ │ │ + add lr, r6, #4 │ │ │ │ │ + b 1cc │ │ │ │ │ add r3, r3, #3 │ │ │ │ │ cmp r2, #1 │ │ │ │ │ - moveq ip, r1 │ │ │ │ │ - orrne ip, r1, #1 │ │ │ │ │ - cmp r3, lr │ │ │ │ │ + moveq ip, r0 │ │ │ │ │ + orrne ip, r0, #1 │ │ │ │ │ + cmp r3, r1 │ │ │ │ │ add r4, r4, ip │ │ │ │ │ - beq 17c │ │ │ │ │ - ldr r2, [r0, r3, lsl #2] │ │ │ │ │ + beq 20c │ │ │ │ │ + ldr r2, [lr, r3, lsl #2] │ │ │ │ │ cmp r2, #0 │ │ │ │ │ - bgt 138 │ │ │ │ │ + bgt 1b0 │ │ │ │ │ mov r0, #16 │ │ │ │ │ bl 0 │ │ │ │ │ R_ARM_CALL fftw_malloc_plain │ │ │ │ │ + mov r8, r0 │ │ │ │ │ mvn r3, #-2147483648 @ 0x80000000 │ │ │ │ │ - mov r9, r0 │ │ │ │ │ str r3, [r0] │ │ │ │ │ - mov r0, r9 │ │ │ │ │ - pop {r3, r4, r5, r6, r7, r8, r9, sl, fp, pc} │ │ │ │ │ + mov r0, r8 │ │ │ │ │ + add sp, sp, #4 │ │ │ │ │ + ldrd r4, [sp] │ │ │ │ │ + ldrd r6, [sp, #8] │ │ │ │ │ + ldrd r8, [sp, #16] │ │ │ │ │ + ldrd sl, [sp, #24] │ │ │ │ │ + add sp, sp, #32 │ │ │ │ │ + pop {pc} @ (ldr pc, [sp], #4) │ │ │ │ │ sub r3, r4, #2 │ │ │ │ │ cmn r3, #-2147483644 @ 0x80000004 │ │ │ │ │ - bhi 258 │ │ │ │ │ + bhi 2e4 │ │ │ │ │ sub r3, r4, #1 │ │ │ │ │ add r3, r3, r3, lsl #1 │ │ │ │ │ lsl r0, r3, #2 │ │ │ │ │ add r0, r0, #16 │ │ │ │ │ bl 0 │ │ │ │ │ R_ARM_CALL fftw_malloc_plain │ │ │ │ │ - mov r9, r0 │ │ │ │ │ - str r4, [r9] │ │ │ │ │ - ldr r3, [r5] │ │ │ │ │ + mov r8, r0 │ │ │ │ │ + str r4, [r8] │ │ │ │ │ + ldr r3, [r6] │ │ │ │ │ cmp r3, #0 │ │ │ │ │ - ble 174 │ │ │ │ │ - mov r7, #0 │ │ │ │ │ - mov r4, r5 │ │ │ │ │ - mov sl, r7 │ │ │ │ │ - cmp r6, #0 │ │ │ │ │ + ble 1ec │ │ │ │ │ + mov sl, #0 │ │ │ │ │ + mov r4, r6 │ │ │ │ │ + mov r9, sl │ │ │ │ │ + cmp r7, #0 │ │ │ │ │ ldr r0, [r4, #4] │ │ │ │ │ - beq 1ec │ │ │ │ │ + beq 27c │ │ │ │ │ cmp r0, #1 │ │ │ │ │ - bgt 1ec │ │ │ │ │ - add sl, sl, #1 │ │ │ │ │ - cmp sl, r3 │ │ │ │ │ + bgt 27c │ │ │ │ │ + add r9, r9, #1 │ │ │ │ │ add r4, r4, #12 │ │ │ │ │ - bge 174 │ │ │ │ │ + cmp r9, r3 │ │ │ │ │ + bge 1ec │ │ │ │ │ ldr r0, [r4, #4] │ │ │ │ │ cmp r0, #1 │ │ │ │ │ - ble 1d0 │ │ │ │ │ - add fp, r7, r7, lsl #1 │ │ │ │ │ - add fp, r9, fp, lsl #2 │ │ │ │ │ + ble 260 │ │ │ │ │ + lsl r5, sl, #1 │ │ │ │ │ + add r9, r9, #1 │ │ │ │ │ + add r4, r4, #12 │ │ │ │ │ + add fp, r5, sl │ │ │ │ │ + add r5, r5, sl │ │ │ │ │ + add fp, r8, fp, lsl #2 │ │ │ │ │ + add sl, sl, #1 │ │ │ │ │ + add r5, r8, r5, lsl #2 │ │ │ │ │ str r0, [fp, #4] │ │ │ │ │ - ldr r1, [r4, #8] │ │ │ │ │ + ldr r1, [r4, #-4] │ │ │ │ │ bl 0 │ │ │ │ │ R_ARM_CALL fftw_mpi_num_blocks │ │ │ │ │ - lsl r8, r7, #1 │ │ │ │ │ - add r8, r8, r7 │ │ │ │ │ - add r8, r9, r8, lsl #2 │ │ │ │ │ - add sl, sl, #1 │ │ │ │ │ - add r7, r7, #1 │ │ │ │ │ - add r4, r4, #12 │ │ │ │ │ cmp r0, #1 │ │ │ │ │ ldrne r3, [r4, #-4] │ │ │ │ │ ldreq r3, [r4, #-8] │ │ │ │ │ str r3, [fp, #8] │ │ │ │ │ - ldr r1, [r4] │ │ │ │ │ ldr r0, [r4, #-8] │ │ │ │ │ + ldr r1, [r4] │ │ │ │ │ bl 0 │ │ │ │ │ R_ARM_CALL fftw_mpi_num_blocks │ │ │ │ │ cmp r0, #1 │ │ │ │ │ ldreq r3, [r4, #-8] │ │ │ │ │ ldrne r3, [r4] │ │ │ │ │ - str r3, [r8, #12] │ │ │ │ │ - ldr r3, [r5] │ │ │ │ │ - cmp r3, sl │ │ │ │ │ - bgt 1bc │ │ │ │ │ - mov r0, r9 │ │ │ │ │ - pop {r3, r4, r5, r6, r7, r8, r9, sl, fp, pc} │ │ │ │ │ + str r3, [r5, #12] │ │ │ │ │ + ldr r3, [r6] │ │ │ │ │ + cmp r3, r9 │ │ │ │ │ + bgt 24c │ │ │ │ │ + b 1ec │ │ │ │ │ mov r0, #16 │ │ │ │ │ bl 0 │ │ │ │ │ R_ARM_CALL fftw_malloc_plain │ │ │ │ │ - mov r9, r0 │ │ │ │ │ - b 1a0 │ │ │ │ │ + mov r8, r0 │ │ │ │ │ + b 230 │ │ │ │ │ mov r0, #16 │ │ │ │ │ bl 0 │ │ │ │ │ R_ARM_CALL fftw_malloc_plain │ │ │ │ │ - mov r9, r0 │ │ │ │ │ + mov r8, r0 │ │ │ │ │ str r4, [r0] │ │ │ │ │ - mov r0, r9 │ │ │ │ │ - pop {r3, r4, r5, r6, r7, r8, r9, sl, fp, pc} │ │ │ │ │ + b 1ec │ │ │ │ │ │ │ │ │ │ -00000280 : │ │ │ │ │ +00000308 : │ │ │ │ │ fftw_mpi_dtensor_validp(): │ │ │ │ │ ldr r1, [r0] │ │ │ │ │ cmp r1, #0 │ │ │ │ │ - blt 2d4 │ │ │ │ │ + blt 35c │ │ │ │ │ sub r3, r1, #1 │ │ │ │ │ cmn r3, #-2147483645 @ 0x80000003 │ │ │ │ │ - bhi 2dc │ │ │ │ │ + bhi 364 │ │ │ │ │ mov r3, #0 │ │ │ │ │ - b 2c8 │ │ │ │ │ + b 350 │ │ │ │ │ ldr r2, [r0, #8] │ │ │ │ │ cmp r2, #0 │ │ │ │ │ - ble 2d4 │ │ │ │ │ + ble 35c │ │ │ │ │ ldr r2, [r0, #12] │ │ │ │ │ cmp r2, #0 │ │ │ │ │ - ble 2d4 │ │ │ │ │ + ble 35c │ │ │ │ │ add r3, r3, #1 │ │ │ │ │ - cmp r1, r3 │ │ │ │ │ add r0, r0, #12 │ │ │ │ │ - beq 2dc │ │ │ │ │ + cmp r1, r3 │ │ │ │ │ + beq 364 │ │ │ │ │ ldr r2, [r0, #4] │ │ │ │ │ cmp r2, #0 │ │ │ │ │ - bge 2a0 │ │ │ │ │ + bge 328 │ │ │ │ │ mov r0, #0 │ │ │ │ │ bx lr │ │ │ │ │ mov r0, #1 │ │ │ │ │ bx lr │ │ │ │ │ │ │ │ │ │ -000002e4 : │ │ │ │ │ +0000036c : │ │ │ │ │ fftw_mpi_dtensor_print(): │ │ │ │ │ ldr r2, [r0] │ │ │ │ │ - push {r4, r5, r6, r7, r8, r9, lr} │ │ │ │ │ - cmn r2, #-2147483647 @ 0x80000001 │ │ │ │ │ + strd r4, [sp, #-28]! @ 0xffffffe4 │ │ │ │ │ + mov r5, r1 │ │ │ │ │ ldr r3, [r1] │ │ │ │ │ + strd r6, [sp, #8] │ │ │ │ │ + strd r8, [sp, #16] │ │ │ │ │ + cmn r2, #-2147483647 @ 0x80000001 │ │ │ │ │ + str lr, [sp, #24] │ │ │ │ │ sub sp, sp, #12 │ │ │ │ │ - mov r5, r1 │ │ │ │ │ - beq 3c8 │ │ │ │ │ - ldr r1, [pc, #216] @ 3e0 │ │ │ │ │ + beq 46c │ │ │ │ │ + ldr r1, [pc, #220] @ 478 │ │ │ │ │ mov r7, r0 │ │ │ │ │ - add r1, pc, r1 │ │ │ │ │ mov r0, r5 │ │ │ │ │ + add r1, pc, r1 │ │ │ │ │ blx r3 │ │ │ │ │ ldr r3, [r7] │ │ │ │ │ cmp r3, #0 │ │ │ │ │ - ble 3ac │ │ │ │ │ - ldr r8, [pc, #188] @ 3e4 │ │ │ │ │ + ble 440 │ │ │ │ │ ldr r3, [r7, #12] │ │ │ │ │ - ldr r2, [pc, #184] @ 3e8 │ │ │ │ │ + mov r0, r5 │ │ │ │ │ + ldr r8, [pc, #184] @ 47c │ │ │ │ │ + ldr r2, [pc, #184] @ 480 │ │ │ │ │ str r3, [sp, #4] │ │ │ │ │ - add r8, pc, r8 │ │ │ │ │ ldr r3, [r7, #8] │ │ │ │ │ - str r3, [sp] │ │ │ │ │ + add r8, pc, r8 │ │ │ │ │ + mov r1, r8 │ │ │ │ │ add r2, pc, r2 │ │ │ │ │ + str r3, [sp] │ │ │ │ │ ldr r4, [r5] │ │ │ │ │ ldr r3, [r7, #4] │ │ │ │ │ - mov r1, r8 │ │ │ │ │ - mov r0, r5 │ │ │ │ │ blx r4 │ │ │ │ │ mov r4, r7 │ │ │ │ │ ldr r3, [r4], #12 │ │ │ │ │ cmp r3, #1 │ │ │ │ │ - ble 3ac │ │ │ │ │ - ldr r9, [pc, #128] @ 3ec │ │ │ │ │ + ble 440 │ │ │ │ │ + ldr r9, [pc, #132] @ 484 │ │ │ │ │ mov r6, #1 │ │ │ │ │ add r9, pc, r9 │ │ │ │ │ ldr r3, [r4, #12] │ │ │ │ │ - str r3, [sp, #4] │ │ │ │ │ - ldr r3, [r4, #8] │ │ │ │ │ - str r3, [sp] │ │ │ │ │ mov r2, r9 │ │ │ │ │ - ldr r3, [r4, #4] │ │ │ │ │ - ldr ip, [r5] │ │ │ │ │ mov r1, r8 │ │ │ │ │ mov r0, r5 │ │ │ │ │ + add r6, r6, #1 │ │ │ │ │ + add r4, r4, #12 │ │ │ │ │ + str r3, [sp, #4] │ │ │ │ │ + ldr r3, [r4, #-4] │ │ │ │ │ + str r3, [sp] │ │ │ │ │ + ldr r3, [r4, #-8] │ │ │ │ │ + ldr ip, [r5] │ │ │ │ │ blx ip │ │ │ │ │ ldr r3, [r7] │ │ │ │ │ - add r6, r6, #1 │ │ │ │ │ cmp r3, r6 │ │ │ │ │ - add r4, r4, #12 │ │ │ │ │ - bgt 370 │ │ │ │ │ - ldr r1, [pc, #60] @ 3f0 │ │ │ │ │ - mov r0, r5 │ │ │ │ │ - add r1, pc, r1 │ │ │ │ │ + bgt 404 │ │ │ │ │ + ldr r1, [pc, #64] @ 488 │ │ │ │ │ ldr r3, [r5] │ │ │ │ │ - add sp, sp, #12 │ │ │ │ │ - pop {r4, r5, r6, r7, r8, r9, lr} │ │ │ │ │ - bx r3 │ │ │ │ │ - ldr r1, [pc, #36] @ 3f4 │ │ │ │ │ - mov r0, r5 │ │ │ │ │ add r1, pc, r1 │ │ │ │ │ + mov r0, r5 │ │ │ │ │ add sp, sp, #12 │ │ │ │ │ - pop {r4, r5, r6, r7, r8, r9, lr} │ │ │ │ │ + ldrd r4, [sp] │ │ │ │ │ + ldrd r6, [sp, #8] │ │ │ │ │ + ldrd r8, [sp, #16] │ │ │ │ │ + ldr lr, [sp, #24] │ │ │ │ │ + add sp, sp, #28 │ │ │ │ │ bx r3 │ │ │ │ │ + ldr r1, [pc, #24] @ 48c │ │ │ │ │ + add r1, pc, r1 │ │ │ │ │ + b 44c │ │ │ │ │ .word 0x000000d0 │ │ │ │ │ R_ARM_REL32 .LC0 │ │ │ │ │ - .word 0x000000ac │ │ │ │ │ + .word 0x000000a8 │ │ │ │ │ R_ARM_REL32 .LC3 │ │ │ │ │ .word 0x000000a4 │ │ │ │ │ R_ARM_REL32 .LC2 │ │ │ │ │ - .word 0x00000078 │ │ │ │ │ + .word 0x0000007c │ │ │ │ │ R_ARM_REL32 .LC4 │ │ │ │ │ - .word 0x00000034 │ │ │ │ │ + .word 0x00000038 │ │ │ │ │ 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: 852 (bytes into file) │ │ │ │ │ + Start of section headers: 856 (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 0x354: │ │ │ │ │ +There are 11 section headers, starting at offset 0x358: │ │ │ │ │ │ │ │ │ │ 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 0001a4 00 AX 0 0 4 │ │ │ │ │ - [ 2] .rel.text REL 00000000 0002c4 000038 08 I 8 1 4 │ │ │ │ │ - [ 3] .data PROGBITS 00000000 0001d8 000000 00 WA 0 0 1 │ │ │ │ │ - [ 4] .bss NOBITS 00000000 0001d8 000000 00 WA 0 0 1 │ │ │ │ │ - [ 5] .rodata PROGBITS 00000000 0001d8 000005 00 A 0 0 1 │ │ │ │ │ - [ 6] .note.GNU-stack PROGBITS 00000000 0001dd 000000 00 0 0 1 │ │ │ │ │ - [ 7] .ARM.attributes ARM_ATTRIBUTES 00000000 0001dd 00002b 00 0 0 1 │ │ │ │ │ - [ 8] .symtab SYMTAB 00000000 000208 000070 10 9 4 4 │ │ │ │ │ - [ 9] .strtab STRTAB 00000000 000278 00004b 00 0 0 1 │ │ │ │ │ - [10] .shstrtab STRTAB 00000000 0002fc 000058 00 0 0 1 │ │ │ │ │ + [ 1] .text PROGBITS 00000000 000034 0001a8 00 AX 0 0 4 │ │ │ │ │ + [ 2] .rel.text REL 00000000 0002c8 000038 08 I 8 1 4 │ │ │ │ │ + [ 3] .data PROGBITS 00000000 0001dc 000000 00 WA 0 0 1 │ │ │ │ │ + [ 4] .bss NOBITS 00000000 0001dc 000000 00 WA 0 0 1 │ │ │ │ │ + [ 5] .rodata PROGBITS 00000000 0001dc 000005 00 A 0 0 1 │ │ │ │ │ + [ 6] .note.GNU-stack PROGBITS 00000000 0001e1 000000 00 0 0 1 │ │ │ │ │ + [ 7] .ARM.attributes ARM_ATTRIBUTES 00000000 0001e1 00002b 00 0 0 1 │ │ │ │ │ + [ 8] .symtab SYMTAB 00000000 00020c 000070 10 9 4 4 │ │ │ │ │ + [ 9] .strtab STRTAB 00000000 00027c 00004b 00 0 0 1 │ │ │ │ │ + [10] .shstrtab STRTAB 00000000 000300 000058 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 $a │ │ │ │ │ 2: 00000000 0 SECTION LOCAL DEFAULT 5 .rodata │ │ │ │ │ - 3: 000001a0 0 NOTYPE LOCAL DEFAULT 1 $d │ │ │ │ │ - 4: 00000000 300 FUNC GLOBAL DEFAULT 1 fftw_mpi_rearrange_applicable │ │ │ │ │ + 3: 000001a4 0 NOTYPE LOCAL DEFAULT 1 $d │ │ │ │ │ + 4: 00000000 304 FUNC GLOBAL DEFAULT 1 fftw_mpi_rearrange_applicable │ │ │ │ │ 5: 00000000 0 NOTYPE GLOBAL DEFAULT UND __aeabi_idivmod │ │ │ │ │ - 6: 0000012c 120 FUNC GLOBAL DEFAULT 1 fftw_mpi_rearrange_ny │ │ │ │ │ + 6: 00000130 120 FUNC GLOBAL DEFAULT 1 fftw_mpi_rearrange_ny │ │ │ │ ├── readelf --wide --relocs {} │ │ │ │ │ @@ -1,10 +1,10 @@ │ │ │ │ │ │ │ │ │ │ -Relocation section '.rel.text' at offset 0x2c4 contains 7 entries: │ │ │ │ │ +Relocation section '.rel.text' at offset 0x2c8 contains 7 entries: │ │ │ │ │ Offset Info Type Sym. Value Symbol's Name │ │ │ │ │ -00000054 0000051c R_ARM_CALL 00000000 __aeabi_idivmod │ │ │ │ │ -0000007c 0000051c R_ARM_CALL 00000000 __aeabi_idivmod │ │ │ │ │ -000000a8 0000051c R_ARM_CALL 00000000 __aeabi_idivmod │ │ │ │ │ -000000d0 0000051c R_ARM_CALL 00000000 __aeabi_idivmod │ │ │ │ │ -000000f4 0000051c R_ARM_CALL 00000000 __aeabi_idivmod │ │ │ │ │ -0000011c 0000051c R_ARM_CALL 00000000 __aeabi_idivmod │ │ │ │ │ -000001a0 00000203 R_ARM_REL32 00000000 .rodata │ │ │ │ │ +00000060 0000051c R_ARM_CALL 00000000 __aeabi_idivmod │ │ │ │ │ +00000088 0000051c R_ARM_CALL 00000000 __aeabi_idivmod │ │ │ │ │ +000000b0 0000051c R_ARM_CALL 00000000 __aeabi_idivmod │ │ │ │ │ +000000d4 0000051c R_ARM_CALL 00000000 __aeabi_idivmod │ │ │ │ │ +000000f8 0000051c R_ARM_CALL 00000000 __aeabi_idivmod │ │ │ │ │ +00000120 0000051c R_ARM_CALL 00000000 __aeabi_idivmod │ │ │ │ │ +000001a4 00000203 R_ARM_REL32 00000000 .rodata │ │ │ │ ├── objdump --line-numbers --disassemble --demangle --reloc --no-show-raw-insn --section=.text {} │ │ │ │ │ @@ -1,105 +1,106 @@ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ Disassembly of section .text: │ │ │ │ │ │ │ │ │ │ 00000000 : │ │ │ │ │ fftw_mpi_rearrange_applicable(): │ │ │ │ │ + strd r4, [sp, #-12]! │ │ │ │ │ mov ip, r0 │ │ │ │ │ - push {r4, r5, lr} │ │ │ │ │ + str lr, [sp, #8] │ │ │ │ │ sub sp, sp, #20 │ │ │ │ │ - add r0, sp, #16 │ │ │ │ │ cmp ip, #1 │ │ │ │ │ + add r0, sp, #16 │ │ │ │ │ stmdb r0, {r1, r2, r3} │ │ │ │ │ ldr r0, [sp, #32] │ │ │ │ │ - beq 8c │ │ │ │ │ + beq 98 │ │ │ │ │ cmp ip, #2 │ │ │ │ │ ldr r4, [sp, #8] │ │ │ │ │ - beq 48 │ │ │ │ │ + beq 54 │ │ │ │ │ cmp ip, #4 │ │ │ │ │ - beq e0 │ │ │ │ │ + beq e4 │ │ │ │ │ cmp ip, #3 │ │ │ │ │ movne r0, #1 │ │ │ │ │ - beq bc │ │ │ │ │ + beq c0 │ │ │ │ │ add sp, sp, #20 │ │ │ │ │ - pop {r4, r5, pc} │ │ │ │ │ + ldrd r4, [sp] │ │ │ │ │ + add sp, sp, #8 │ │ │ │ │ + pop {pc} @ (ldr pc, [sp], #4) │ │ │ │ │ cmp r0, r4 │ │ │ │ │ - ble 98 │ │ │ │ │ + ble a4 │ │ │ │ │ mov r1, r4 │ │ │ │ │ bl 0 <__aeabi_idivmod> │ │ │ │ │ R_ARM_CALL __aeabi_idivmod │ │ │ │ │ ldr r3, [sp, #36] @ 0x24 │ │ │ │ │ - cmp r3, r4 │ │ │ │ │ clz r0, r1 │ │ │ │ │ lsr r0, r0, #5 │ │ │ │ │ + cmp r3, r4 │ │ │ │ │ movge r0, #0 │ │ │ │ │ cmp r0, #0 │ │ │ │ │ - beq 40 │ │ │ │ │ + beq 44 │ │ │ │ │ mov r1, r3 │ │ │ │ │ mov r0, r4 │ │ │ │ │ bl 0 <__aeabi_idivmod> │ │ │ │ │ R_ARM_CALL __aeabi_idivmod │ │ │ │ │ clz r0, r1 │ │ │ │ │ lsr r0, r0, #5 │ │ │ │ │ - b 40 │ │ │ │ │ + b 44 │ │ │ │ │ ldr r3, [sp, #36] @ 0x24 │ │ │ │ │ cmp r3, r0 │ │ │ │ │ - blt a4 │ │ │ │ │ + blt ac │ │ │ │ │ mov r0, #0 │ │ │ │ │ - add sp, sp, #20 │ │ │ │ │ - pop {r4, r5, pc} │ │ │ │ │ + b 44 │ │ │ │ │ mov r1, r3 │ │ │ │ │ bl 0 <__aeabi_idivmod> │ │ │ │ │ R_ARM_CALL __aeabi_idivmod │ │ │ │ │ clz r0, r1 │ │ │ │ │ lsr r0, r0, #5 │ │ │ │ │ - add sp, sp, #20 │ │ │ │ │ - pop {r4, r5, pc} │ │ │ │ │ + b 44 │ │ │ │ │ ldr r3, [sp, #4] │ │ │ │ │ ldr r1, [sp, #36] @ 0x24 │ │ │ │ │ mul r1, r3, r1 │ │ │ │ │ cmp r1, r0 │ │ │ │ │ - bge 98 │ │ │ │ │ + bge a4 │ │ │ │ │ bl 0 <__aeabi_idivmod> │ │ │ │ │ R_ARM_CALL __aeabi_idivmod │ │ │ │ │ clz r0, r1 │ │ │ │ │ lsr r0, r0, #5 │ │ │ │ │ - b 40 │ │ │ │ │ + b 44 │ │ │ │ │ ldr r5, [sp, #12] │ │ │ │ │ cmp r5, r4 │ │ │ │ │ cmpne r0, r5 │ │ │ │ │ - ble 98 │ │ │ │ │ + ble a4 │ │ │ │ │ mov r1, r5 │ │ │ │ │ bl 0 <__aeabi_idivmod> │ │ │ │ │ R_ARM_CALL __aeabi_idivmod │ │ │ │ │ ldr r3, [sp, #36] @ 0x24 │ │ │ │ │ - cmp r3, r5 │ │ │ │ │ clz r0, r1 │ │ │ │ │ lsr r0, r0, #5 │ │ │ │ │ + cmp r3, r5 │ │ │ │ │ movge r0, #0 │ │ │ │ │ cmp r0, #0 │ │ │ │ │ - beq 40 │ │ │ │ │ + beq 44 │ │ │ │ │ mov r1, r3 │ │ │ │ │ mov r0, r5 │ │ │ │ │ bl 0 <__aeabi_idivmod> │ │ │ │ │ R_ARM_CALL __aeabi_idivmod │ │ │ │ │ clz r0, r1 │ │ │ │ │ lsr r0, r0, #5 │ │ │ │ │ - b 40 │ │ │ │ │ + b 44 │ │ │ │ │ │ │ │ │ │ -0000012c : │ │ │ │ │ +00000130 : │ │ │ │ │ fftw_mpi_rearrange_ny(): │ │ │ │ │ sub sp, sp, #16 │ │ │ │ │ add ip, sp, #16 │ │ │ │ │ stmdb ip, {r1, r2, r3} │ │ │ │ │ - ldr r3, [pc, #96] @ 1a0 │ │ │ │ │ + ldr r3, [pc, #96] @ 1a4 │ │ │ │ │ add r3, pc, r3 │ │ │ │ │ cmp r0, #4 │ │ │ │ │ - bhi 198 │ │ │ │ │ + bhi 19c │ │ │ │ │ ldrb r0, [r3, r0] │ │ │ │ │ add pc, pc, r0, lsl #2 │ │ │ │ │ nop @ (mov r0, r0) │ │ │ │ │ ldr r0, [sp, #20] │ │ │ │ │ add sp, sp, #16 │ │ │ │ │ bx lr │ │ │ │ │ ldr r0, [sp, #16] │ │ │ │ │ @@ -113,10 +114,10 @@ │ │ │ │ │ bx lr │ │ │ │ │ ldr r3, [sp, #4] │ │ │ │ │ ldr r0, [sp, #20] │ │ │ │ │ mul r0, r3, r0 │ │ │ │ │ add sp, sp, #16 │ │ │ │ │ bx lr │ │ │ │ │ mov r0, #0 │ │ │ │ │ - b 158 │ │ │ │ │ + b 15c │ │ │ │ │ .word 0x0000005c │ │ │ │ │ R_ARM_REL32 .rodata │ │ │ ├── wisdom-api.o │ │ │ │ ├── readelf --wide --sections {} │ │ │ │ │ @@ -1,19 +1,19 @@ │ │ │ │ │ There are 10 section headers, starting at offset 0x6ec: │ │ │ │ │ │ │ │ │ │ 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 0002ac 00 AX 0 0 4 │ │ │ │ │ - [ 2] .rel.text REL 00000000 00058c 000110 08 I 7 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] .note.GNU-stack PROGBITS 00000000 0002e0 000000 00 0 0 1 │ │ │ │ │ - [ 6] .ARM.attributes ARM_ATTRIBUTES 00000000 0002e0 00002b 00 0 0 1 │ │ │ │ │ - [ 7] .symtab SYMTAB 00000000 00030c 000170 10 8 5 4 │ │ │ │ │ - [ 8] .strtab STRTAB 00000000 00047c 00010e 00 0 0 1 │ │ │ │ │ + [ 1] .text PROGBITS 00000000 000034 0002bc 00 AX 0 0 4 │ │ │ │ │ + [ 2] .rel.text REL 00000000 00059c 000100 08 I 7 1 4 │ │ │ │ │ + [ 3] .data PROGBITS 00000000 0002f0 000000 00 WA 0 0 1 │ │ │ │ │ + [ 4] .bss NOBITS 00000000 0002f0 000000 00 WA 0 0 1 │ │ │ │ │ + [ 5] .note.GNU-stack PROGBITS 00000000 0002f0 000000 00 0 0 1 │ │ │ │ │ + [ 6] .ARM.attributes ARM_ATTRIBUTES 00000000 0002f0 00002b 00 0 0 1 │ │ │ │ │ + [ 7] .symtab SYMTAB 00000000 00031c 000170 10 8 5 4 │ │ │ │ │ + [ 8] .strtab STRTAB 00000000 00048c 00010e 00 0 0 1 │ │ │ │ │ [ 9] .shstrtab STRTAB 00000000 00069c 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,26 +1,26 @@ │ │ │ │ │ │ │ │ │ │ Symbol table '.symtab' contains 23 entries: │ │ │ │ │ Num: Value Size Type Bind Vis Ndx Name │ │ │ │ │ 0: 00000000 0 NOTYPE LOCAL DEFAULT UND │ │ │ │ │ 1: 00000000 0 NOTYPE LOCAL DEFAULT 1 $a │ │ │ │ │ - 2: 00000194 0 NOTYPE LOCAL DEFAULT 1 $d │ │ │ │ │ - 3: 0000019c 0 NOTYPE LOCAL DEFAULT 1 $a │ │ │ │ │ - 4: 000002a4 0 NOTYPE LOCAL DEFAULT 1 $d │ │ │ │ │ - 5: 00000000 412 FUNC GLOBAL DEFAULT 1 fftw_mpi_gather_wisdom │ │ │ │ │ + 2: 0000019c 0 NOTYPE LOCAL DEFAULT 1 $d │ │ │ │ │ + 3: 000001a4 0 NOTYPE LOCAL DEFAULT 1 $a │ │ │ │ │ + 4: 000002b4 0 NOTYPE LOCAL DEFAULT 1 $d │ │ │ │ │ + 5: 00000000 420 FUNC GLOBAL DEFAULT 1 fftw_mpi_gather_wisdom │ │ │ │ │ 6: 00000000 0 NOTYPE GLOBAL DEFAULT UND MPI_Comm_dup │ │ │ │ │ 7: 00000000 0 NOTYPE GLOBAL DEFAULT UND MPI_Comm_rank │ │ │ │ │ 8: 00000000 0 NOTYPE GLOBAL DEFAULT UND MPI_Comm_size │ │ │ │ │ 9: 00000000 0 NOTYPE GLOBAL DEFAULT UND MPI_Comm_free │ │ │ │ │ 10: 00000000 0 NOTYPE GLOBAL DEFAULT UND MPI_Recv │ │ │ │ │ 11: 00000000 0 NOTYPE GLOBAL DEFAULT UND fftw_malloc_plain │ │ │ │ │ 12: 00000000 0 NOTYPE GLOBAL DEFAULT UND fftw_import_wisdom_from_string │ │ │ │ │ 13: 00000000 0 NOTYPE GLOBAL DEFAULT UND fftw_ifree │ │ │ │ │ 14: 00000000 0 NOTYPE GLOBAL DEFAULT UND MPI_Comm_split │ │ │ │ │ 15: 00000000 0 NOTYPE GLOBAL DEFAULT UND fftw_export_wisdom_to_string │ │ │ │ │ 16: 00000000 0 NOTYPE GLOBAL DEFAULT UND strlen │ │ │ │ │ 17: 00000000 0 NOTYPE GLOBAL DEFAULT UND MPI_Send │ │ │ │ │ 18: 00000000 0 NOTYPE GLOBAL DEFAULT UND free │ │ │ │ │ 19: 00000000 0 NOTYPE GLOBAL DEFAULT UND MPI_Abort │ │ │ │ │ - 20: 0000019c 272 FUNC GLOBAL DEFAULT 1 fftw_mpi_broadcast_wisdom │ │ │ │ │ + 20: 000001a4 280 FUNC GLOBAL DEFAULT 1 fftw_mpi_broadcast_wisdom │ │ │ │ │ 21: 00000000 0 NOTYPE GLOBAL DEFAULT UND MPI_Bcast │ │ │ │ │ 22: 00000000 0 NOTYPE GLOBAL DEFAULT UND fftw_free │ │ │ │ ├── readelf --wide --relocs {} │ │ │ │ │ @@ -1,37 +1,35 @@ │ │ │ │ │ │ │ │ │ │ -Relocation section '.rel.text' at offset 0x58c contains 34 entries: │ │ │ │ │ +Relocation section '.rel.text' at offset 0x59c contains 32 entries: │ │ │ │ │ Offset Info Type Sym. Value Symbol's Name │ │ │ │ │ -00000010 0000061c R_ARM_CALL 00000000 MPI_Comm_dup │ │ │ │ │ -0000001c 0000071c R_ARM_CALL 00000000 MPI_Comm_rank │ │ │ │ │ -00000028 0000081c R_ARM_CALL 00000000 MPI_Comm_size │ │ │ │ │ -00000050 0000091c R_ARM_CALL 00000000 MPI_Comm_free │ │ │ │ │ -00000088 00000a1c R_ARM_CALL 00000000 MPI_Recv │ │ │ │ │ -00000090 00000b1c R_ARM_CALL 00000000 fftw_malloc_plain │ │ │ │ │ -000000b8 00000a1c R_ARM_CALL 00000000 MPI_Recv │ │ │ │ │ -000000c0 00000c1c R_ARM_CALL 00000000 fftw_import_wisdom_from_string │ │ │ │ │ -000000d0 00000d1c R_ARM_CALL 00000000 fftw_ifree │ │ │ │ │ -000000d8 0000091c R_ARM_CALL 00000000 MPI_Comm_free │ │ │ │ │ -00000100 00000e1c R_ARM_CALL 00000000 MPI_Comm_split │ │ │ │ │ -00000108 0000051c R_ARM_CALL 00000000 fftw_mpi_gather_wisdom │ │ │ │ │ -00000110 0000091c R_ARM_CALL 00000000 MPI_Comm_free │ │ │ │ │ -0000011c 00000f1c R_ARM_CALL 00000000 fftw_export_wisdom_to_string │ │ │ │ │ -00000124 0000101c R_ARM_CALL 00000000 strlen │ │ │ │ │ -00000150 0000111c R_ARM_CALL 00000000 MPI_Send │ │ │ │ │ -00000174 0000111c R_ARM_CALL 00000000 MPI_Send │ │ │ │ │ -0000017c 0000121c R_ARM_CALL 00000000 free │ │ │ │ │ -0000018c 0000131c R_ARM_CALL 00000000 MPI_Abort │ │ │ │ │ -000001ac 0000061c R_ARM_CALL 00000000 MPI_Comm_dup │ │ │ │ │ -000001b8 0000071c R_ARM_CALL 00000000 MPI_Comm_rank │ │ │ │ │ -000001e0 0000151c R_ARM_CALL 00000000 MPI_Bcast │ │ │ │ │ -000001e8 00000b1c R_ARM_CALL 00000000 fftw_malloc_plain │ │ │ │ │ -00000204 0000151c R_ARM_CALL 00000000 MPI_Bcast │ │ │ │ │ -0000020c 00000c1c R_ARM_CALL 00000000 fftw_import_wisdom_from_string │ │ │ │ │ -0000021c 00000d1c R_ARM_CALL 00000000 fftw_ifree │ │ │ │ │ -00000224 0000091c R_ARM_CALL 00000000 MPI_Comm_free │ │ │ │ │ -00000230 00000f1c R_ARM_CALL 00000000 fftw_export_wisdom_to_string │ │ │ │ │ -00000238 0000101c R_ARM_CALL 00000000 strlen │ │ │ │ │ -0000025c 0000151c R_ARM_CALL 00000000 MPI_Bcast │ │ │ │ │ +00000018 0000061c R_ARM_CALL 00000000 MPI_Comm_dup │ │ │ │ │ +00000024 0000071c R_ARM_CALL 00000000 MPI_Comm_rank │ │ │ │ │ +00000030 0000081c R_ARM_CALL 00000000 MPI_Comm_size │ │ │ │ │ +00000058 0000091c R_ARM_CALL 00000000 MPI_Comm_free │ │ │ │ │ +0000009c 00000a1c R_ARM_CALL 00000000 MPI_Recv │ │ │ │ │ +000000a4 00000b1c R_ARM_CALL 00000000 fftw_malloc_plain │ │ │ │ │ +000000cc 00000a1c R_ARM_CALL 00000000 MPI_Recv │ │ │ │ │ +000000d4 00000c1c R_ARM_CALL 00000000 fftw_import_wisdom_from_string │ │ │ │ │ +000000e4 00000d1c R_ARM_CALL 00000000 fftw_ifree │ │ │ │ │ +00000108 00000e1c R_ARM_CALL 00000000 MPI_Comm_split │ │ │ │ │ +00000110 0000051c R_ARM_CALL 00000000 fftw_mpi_gather_wisdom │ │ │ │ │ +00000118 0000091c R_ARM_CALL 00000000 MPI_Comm_free │ │ │ │ │ +00000124 00000f1c R_ARM_CALL 00000000 fftw_export_wisdom_to_string │ │ │ │ │ +0000012c 0000101c R_ARM_CALL 00000000 strlen │ │ │ │ │ +00000158 0000111c R_ARM_CALL 00000000 MPI_Send │ │ │ │ │ +0000017c 0000111c R_ARM_CALL 00000000 MPI_Send │ │ │ │ │ +00000184 0000121c R_ARM_CALL 00000000 free │ │ │ │ │ +00000194 0000131c R_ARM_CALL 00000000 MPI_Abort │ │ │ │ │ +000001bc 0000061c R_ARM_CALL 00000000 MPI_Comm_dup │ │ │ │ │ +000001c8 0000071c R_ARM_CALL 00000000 MPI_Comm_rank │ │ │ │ │ +000001f0 0000151c R_ARM_CALL 00000000 MPI_Bcast │ │ │ │ │ +000001f8 00000b1c R_ARM_CALL 00000000 fftw_malloc_plain │ │ │ │ │ +00000214 0000151c R_ARM_CALL 00000000 MPI_Bcast │ │ │ │ │ +0000021c 00000c1c R_ARM_CALL 00000000 fftw_import_wisdom_from_string │ │ │ │ │ +0000022c 00000d1c R_ARM_CALL 00000000 fftw_ifree │ │ │ │ │ +00000234 0000091c R_ARM_CALL 00000000 MPI_Comm_free │ │ │ │ │ +0000024c 00000f1c R_ARM_CALL 00000000 fftw_export_wisdom_to_string │ │ │ │ │ +00000254 0000101c R_ARM_CALL 00000000 strlen │ │ │ │ │ 00000278 0000151c R_ARM_CALL 00000000 MPI_Bcast │ │ │ │ │ -00000280 0000161c R_ARM_CALL 00000000 fftw_free │ │ │ │ │ -00000288 0000091c R_ARM_CALL 00000000 MPI_Comm_free │ │ │ │ │ -0000029c 0000131c R_ARM_CALL 00000000 MPI_Abort │ │ │ │ │ +00000294 0000151c R_ARM_CALL 00000000 MPI_Bcast │ │ │ │ │ +0000029c 0000161c R_ARM_CALL 00000000 fftw_free │ │ │ │ │ +000002ac 0000131c R_ARM_CALL 00000000 MPI_Abort │ │ │ │ ├── objdump --line-numbers --disassemble --demangle --reloc --no-show-raw-insn --section=.text {} │ │ │ │ │ @@ -1,215 +1,217 @@ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ Disassembly of section .text: │ │ │ │ │ │ │ │ │ │ 00000000 : │ │ │ │ │ fftw_mpi_gather_wisdom(): │ │ │ │ │ - push {r4, r5, r6, lr} │ │ │ │ │ + strd r4, [sp, #-16]! │ │ │ │ │ + str r6, [sp, #8] │ │ │ │ │ + str lr, [sp, #12] │ │ │ │ │ sub sp, sp, #56 @ 0x38 │ │ │ │ │ add r4, sp, #16 │ │ │ │ │ mov r1, r4 │ │ │ │ │ bl 0 │ │ │ │ │ R_ARM_CALL MPI_Comm_dup │ │ │ │ │ - add r1, sp, #24 │ │ │ │ │ ldr r0, [sp, #16] │ │ │ │ │ + add r1, sp, #24 │ │ │ │ │ bl 0 │ │ │ │ │ R_ARM_CALL MPI_Comm_rank │ │ │ │ │ ldr r0, [sp, #16] │ │ │ │ │ add r1, sp, #28 │ │ │ │ │ bl 0 │ │ │ │ │ R_ARM_CALL MPI_Comm_size │ │ │ │ │ ldr r3, [sp, #28] │ │ │ │ │ cmp r3, #2 │ │ │ │ │ - bgt e4 │ │ │ │ │ + bgt ec │ │ │ │ │ cmp r3, #1 │ │ │ │ │ - ble 4c │ │ │ │ │ + ble 54 │ │ │ │ │ ldr r5, [sp, #24] │ │ │ │ │ cmp r5, #1 │ │ │ │ │ - ble 5c │ │ │ │ │ + ble 70 │ │ │ │ │ mov r0, r4 │ │ │ │ │ bl 0 │ │ │ │ │ R_ARM_CALL MPI_Comm_free │ │ │ │ │ add sp, sp, #56 @ 0x38 │ │ │ │ │ - pop {r4, r5, r6, pc} │ │ │ │ │ - beq 11c │ │ │ │ │ + ldrd r4, [sp] │ │ │ │ │ + ldr r6, [sp, #8] │ │ │ │ │ + add sp, sp, #12 │ │ │ │ │ + pop {pc} @ (ldr pc, [sp], #4) │ │ │ │ │ + beq 124 │ │ │ │ │ ldr r3, [sp, #16] │ │ │ │ │ + add r6, sp, #36 @ 0x24 │ │ │ │ │ + add r0, sp, #32 │ │ │ │ │ + ldr r2, [pc, #276] @ 19c │ │ │ │ │ str r3, [sp, #4] │ │ │ │ │ mov r3, #111 @ 0x6f │ │ │ │ │ - add r6, sp, #36 @ 0x24 │ │ │ │ │ str r3, [sp] │ │ │ │ │ mov r3, #1 │ │ │ │ │ mov r1, r3 │ │ │ │ │ - ldr r2, [pc, #272] @ 194 │ │ │ │ │ - add r0, sp, #32 │ │ │ │ │ str r6, [sp, #8] │ │ │ │ │ bl 0 │ │ │ │ │ R_ARM_CALL MPI_Recv │ │ │ │ │ ldr r0, [sp, #32] │ │ │ │ │ bl 0 │ │ │ │ │ R_ARM_CALL fftw_malloc_plain │ │ │ │ │ ldr r3, [sp, #16] │ │ │ │ │ + mov r5, r0 │ │ │ │ │ + ldr r1, [sp, #32] │ │ │ │ │ + ldr r2, [pc, #228] @ 1a0 │ │ │ │ │ str r3, [sp, #4] │ │ │ │ │ mov r3, #222 @ 0xde │ │ │ │ │ - ldr r2, [pc, #240] @ 198 │ │ │ │ │ - ldr r1, [sp, #32] │ │ │ │ │ - str r3, [sp] │ │ │ │ │ str r6, [sp, #8] │ │ │ │ │ + str r3, [sp] │ │ │ │ │ mov r3, #1 │ │ │ │ │ - mov r5, r0 │ │ │ │ │ bl 0 │ │ │ │ │ R_ARM_CALL MPI_Recv │ │ │ │ │ mov r0, r5 │ │ │ │ │ bl 0 │ │ │ │ │ R_ARM_CALL fftw_import_wisdom_from_string │ │ │ │ │ cmp r0, #0 │ │ │ │ │ - beq 184 │ │ │ │ │ + beq 18c │ │ │ │ │ mov r0, r5 │ │ │ │ │ bl 0 │ │ │ │ │ R_ARM_CALL fftw_ifree │ │ │ │ │ - mov r0, r4 │ │ │ │ │ - bl 0 │ │ │ │ │ - R_ARM_CALL MPI_Comm_free │ │ │ │ │ - add sp, sp, #56 @ 0x38 │ │ │ │ │ - pop {r4, r5, r6, pc} │ │ │ │ │ - ldr r2, [sp, #24] │ │ │ │ │ + b 54 │ │ │ │ │ add r5, sp, #20 │ │ │ │ │ + ldr r0, [sp, #16] │ │ │ │ │ + mov r3, r5 │ │ │ │ │ + ldr r2, [sp, #24] │ │ │ │ │ cmp r2, #0 │ │ │ │ │ and r1, r2, #1 │ │ │ │ │ - mov r3, r5 │ │ │ │ │ rsblt r1, r1, #0 │ │ │ │ │ - ldr r0, [sp, #16] │ │ │ │ │ bl 0 │ │ │ │ │ R_ARM_CALL MPI_Comm_split │ │ │ │ │ ldr r0, [sp, #20] │ │ │ │ │ bl 0 │ │ │ │ │ R_ARM_CALL fftw_mpi_gather_wisdom │ │ │ │ │ mov r0, r5 │ │ │ │ │ bl 0 │ │ │ │ │ R_ARM_CALL MPI_Comm_free │ │ │ │ │ ldr r3, [sp, #28] │ │ │ │ │ - b 38 │ │ │ │ │ + b 40 │ │ │ │ │ bl 0 │ │ │ │ │ R_ARM_CALL fftw_export_wisdom_to_string │ │ │ │ │ mov r6, r0 │ │ │ │ │ bl 0 │ │ │ │ │ R_ARM_CALL strlen │ │ │ │ │ ldr r3, [sp, #16] │ │ │ │ │ + add r0, r0, #1 │ │ │ │ │ + mov r1, r5 │ │ │ │ │ + ldr r2, [pc, #88] @ 19c │ │ │ │ │ str r3, [sp, #4] │ │ │ │ │ mov r3, #111 @ 0x6f │ │ │ │ │ - mov r1, r5 │ │ │ │ │ str r3, [sp] │ │ │ │ │ - ldr r2, [pc, #80] @ 194 │ │ │ │ │ mov r3, #0 │ │ │ │ │ - add r0, r0, #1 │ │ │ │ │ str r0, [sp, #32] │ │ │ │ │ add r0, sp, #32 │ │ │ │ │ bl 0 │ │ │ │ │ R_ARM_CALL MPI_Send │ │ │ │ │ ldr r3, [sp, #16] │ │ │ │ │ + mov r0, r6 │ │ │ │ │ + ldr r1, [sp, #32] │ │ │ │ │ + ldr r2, [pc, #48] @ 1a0 │ │ │ │ │ str r3, [sp, #4] │ │ │ │ │ mov r3, #222 @ 0xde │ │ │ │ │ str r3, [sp] │ │ │ │ │ - ldr r2, [pc, #44] @ 198 │ │ │ │ │ - ldr r1, [sp, #32] │ │ │ │ │ mov r3, #0 │ │ │ │ │ - mov r0, r6 │ │ │ │ │ bl 0 │ │ │ │ │ R_ARM_CALL MPI_Send │ │ │ │ │ mov r0, r6 │ │ │ │ │ bl 0 │ │ │ │ │ R_ARM_CALL free │ │ │ │ │ - b 4c │ │ │ │ │ + b 54 │ │ │ │ │ ldr r0, [sp, #16] │ │ │ │ │ mov r1, #1 │ │ │ │ │ bl 0 │ │ │ │ │ R_ARM_CALL MPI_Abort │ │ │ │ │ - b cc │ │ │ │ │ + b e0 │ │ │ │ │ .word 0x4c000406 │ │ │ │ │ .word 0x4c000101 │ │ │ │ │ │ │ │ │ │ -0000019c : │ │ │ │ │ +000001a4 : │ │ │ │ │ fftw_mpi_broadcast_wisdom(): │ │ │ │ │ - push {r4, r5, r6, lr} │ │ │ │ │ + strd r4, [sp, #-16]! │ │ │ │ │ + str r6, [sp, #8] │ │ │ │ │ + str lr, [sp, #12] │ │ │ │ │ sub sp, sp, #24 │ │ │ │ │ add r4, sp, #12 │ │ │ │ │ mov r1, r4 │ │ │ │ │ bl 0 │ │ │ │ │ R_ARM_CALL MPI_Comm_dup │ │ │ │ │ ldr r0, [sp, #12] │ │ │ │ │ add r1, sp, #16 │ │ │ │ │ bl 0 │ │ │ │ │ R_ARM_CALL MPI_Comm_rank │ │ │ │ │ ldr r5, [sp, #16] │ │ │ │ │ cmp r5, #0 │ │ │ │ │ - beq 230 │ │ │ │ │ + beq 24c │ │ │ │ │ ldr r3, [sp, #12] │ │ │ │ │ - ldr r2, [pc, #208] @ 2a4 │ │ │ │ │ mov r1, #1 │ │ │ │ │ - str r3, [sp] │ │ │ │ │ add r0, sp, #20 │ │ │ │ │ + ldr r2, [pc, #200] @ 2b4 │ │ │ │ │ + str r3, [sp] │ │ │ │ │ mov r3, #0 │ │ │ │ │ bl 0 │ │ │ │ │ R_ARM_CALL MPI_Bcast │ │ │ │ │ ldr r0, [sp, #20] │ │ │ │ │ bl 0 │ │ │ │ │ R_ARM_CALL fftw_malloc_plain │ │ │ │ │ ldr r3, [sp, #12] │ │ │ │ │ - ldr r2, [pc, #176] @ 2a8 │ │ │ │ │ + mov r5, r0 │ │ │ │ │ ldr r1, [sp, #20] │ │ │ │ │ + ldr r2, [pc, #168] @ 2b8 │ │ │ │ │ str r3, [sp] │ │ │ │ │ mov r3, #0 │ │ │ │ │ - mov r5, r0 │ │ │ │ │ bl 0 │ │ │ │ │ R_ARM_CALL MPI_Bcast │ │ │ │ │ mov r0, r5 │ │ │ │ │ bl 0 │ │ │ │ │ R_ARM_CALL fftw_import_wisdom_from_string │ │ │ │ │ cmp r0, #0 │ │ │ │ │ - beq 294 │ │ │ │ │ + beq 2a4 │ │ │ │ │ mov r0, r5 │ │ │ │ │ bl 0 │ │ │ │ │ R_ARM_CALL fftw_ifree │ │ │ │ │ mov r0, r4 │ │ │ │ │ bl 0 │ │ │ │ │ R_ARM_CALL MPI_Comm_free │ │ │ │ │ add sp, sp, #24 │ │ │ │ │ - pop {r4, r5, r6, pc} │ │ │ │ │ + ldrd r4, [sp] │ │ │ │ │ + ldr r6, [sp, #8] │ │ │ │ │ + add sp, sp, #12 │ │ │ │ │ + pop {pc} @ (ldr pc, [sp], #4) │ │ │ │ │ bl 0 │ │ │ │ │ R_ARM_CALL fftw_export_wisdom_to_string │ │ │ │ │ mov r6, r0 │ │ │ │ │ bl 0 │ │ │ │ │ R_ARM_CALL strlen │ │ │ │ │ ldr r3, [sp, #12] │ │ │ │ │ + add r0, r0, #1 │ │ │ │ │ + mov r1, #1 │ │ │ │ │ + ldr r2, [pc, #72] @ 2b4 │ │ │ │ │ str r3, [sp] │ │ │ │ │ - ldr r2, [pc, #88] @ 2a4 │ │ │ │ │ mov r3, r5 │ │ │ │ │ - mov r1, #1 │ │ │ │ │ - add r0, r0, #1 │ │ │ │ │ str r0, [sp, #20] │ │ │ │ │ add r0, sp, #20 │ │ │ │ │ bl 0 │ │ │ │ │ R_ARM_CALL MPI_Bcast │ │ │ │ │ ldr r3, [sp, #12] │ │ │ │ │ - ldr r2, [pc, #60] @ 2a8 │ │ │ │ │ + mov r0, r6 │ │ │ │ │ ldr r1, [sp, #20] │ │ │ │ │ + ldr r2, [pc, #40] @ 2b8 │ │ │ │ │ str r3, [sp] │ │ │ │ │ - mov r0, r6 │ │ │ │ │ mov r3, r5 │ │ │ │ │ bl 0 │ │ │ │ │ R_ARM_CALL MPI_Bcast │ │ │ │ │ mov r0, r6 │ │ │ │ │ bl 0 │ │ │ │ │ R_ARM_CALL fftw_free │ │ │ │ │ - mov r0, r4 │ │ │ │ │ - bl 0 │ │ │ │ │ - R_ARM_CALL MPI_Comm_free │ │ │ │ │ - add sp, sp, #24 │ │ │ │ │ - pop {r4, r5, r6, pc} │ │ │ │ │ + b 230 │ │ │ │ │ ldr r0, [sp, #12] │ │ │ │ │ mov r1, #1 │ │ │ │ │ bl 0 │ │ │ │ │ R_ARM_CALL MPI_Abort │ │ │ │ │ - b 218 │ │ │ │ │ + b 228 │ │ │ │ │ .word 0x4c000406 │ │ │ │ │ .word 0x4c000101 │ │ │ ├── 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: 5584 (bytes into file) │ │ │ │ │ + Start of section headers: 6580 (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 0x15d0: │ │ │ │ │ +There are 10 section headers, starting at offset 0x19b4: │ │ │ │ │ │ │ │ │ │ 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 000898 00 AX 0 0 4 │ │ │ │ │ - [ 2] .rel.text REL 00000000 001390 0001f0 08 I 7 1 4 │ │ │ │ │ - [ 3] .data PROGBITS 00000000 0008cc 000000 00 WA 0 0 1 │ │ │ │ │ - [ 4] .bss NOBITS 00000000 0008cc 000000 00 WA 0 0 1 │ │ │ │ │ - [ 5] .note.GNU-stack PROGBITS 00000000 0008cc 000000 00 0 0 1 │ │ │ │ │ - [ 6] .ARM.attributes ARM_ATTRIBUTES 00000000 0008cc 00002b 00 0 0 1 │ │ │ │ │ - [ 7] .symtab SYMTAB 00000000 0008f8 000410 10 8 2 4 │ │ │ │ │ - [ 8] .strtab STRTAB 00000000 000d08 000685 00 0 0 1 │ │ │ │ │ - [ 9] .shstrtab STRTAB 00000000 001580 000050 00 0 0 1 │ │ │ │ │ + [ 1] .text PROGBITS 00000000 000034 000c7c 00 AX 0 0 4 │ │ │ │ │ + [ 2] .rel.text REL 00000000 001774 0001f0 08 I 7 1 4 │ │ │ │ │ + [ 3] .data PROGBITS 00000000 000cb0 000000 00 WA 0 0 1 │ │ │ │ │ + [ 4] .bss NOBITS 00000000 000cb0 000000 00 WA 0 0 1 │ │ │ │ │ + [ 5] .note.GNU-stack PROGBITS 00000000 000cb0 000000 00 0 0 1 │ │ │ │ │ + [ 6] .ARM.attributes ARM_ATTRIBUTES 00000000 000cb0 00002b 00 0 0 1 │ │ │ │ │ + [ 7] .symtab SYMTAB 00000000 000cdc 000410 10 8 2 4 │ │ │ │ │ + [ 8] .strtab STRTAB 00000000 0010ec 000685 00 0 0 1 │ │ │ │ │ + [ 9] .shstrtab STRTAB 00000000 001964 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 $a │ │ │ │ │ - 2: 00000000 100 FUNC GLOBAL DEFAULT 1 fftw_mpi_local_size_many_transposed_f03 │ │ │ │ │ + 2: 00000000 136 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: 00000064 68 FUNC GLOBAL DEFAULT 1 fftw_mpi_local_size_many_f03 │ │ │ │ │ + 5: 00000088 104 FUNC GLOBAL DEFAULT 1 fftw_mpi_local_size_many_f03 │ │ │ │ │ 6: 00000000 0 NOTYPE GLOBAL DEFAULT UND fftw_mpi_local_size_many │ │ │ │ │ - 7: 000000a8 68 FUNC GLOBAL DEFAULT 1 fftw_mpi_local_size_transposed_f03 │ │ │ │ │ + 7: 000000f0 104 FUNC GLOBAL DEFAULT 1 fftw_mpi_local_size_transposed_f03 │ │ │ │ │ 8: 00000000 0 NOTYPE GLOBAL DEFAULT UND fftw_mpi_local_size_transposed │ │ │ │ │ - 9: 000000ec 56 FUNC GLOBAL DEFAULT 1 fftw_mpi_local_size_f03 │ │ │ │ │ + 9: 00000158 84 FUNC GLOBAL DEFAULT 1 fftw_mpi_local_size_f03 │ │ │ │ │ 10: 00000000 0 NOTYPE GLOBAL DEFAULT UND fftw_mpi_local_size │ │ │ │ │ - 11: 00000124 88 FUNC GLOBAL DEFAULT 1 fftw_mpi_local_size_many_1d_f03 │ │ │ │ │ + 11: 000001ac 124 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: 0000017c 72 FUNC GLOBAL DEFAULT 1 fftw_mpi_local_size_1d_f03 │ │ │ │ │ + 13: 00000228 108 FUNC GLOBAL DEFAULT 1 fftw_mpi_local_size_1d_f03 │ │ │ │ │ 14: 00000000 0 NOTYPE GLOBAL DEFAULT UND fftw_mpi_local_size_1d │ │ │ │ │ - 15: 000001c4 56 FUNC GLOBAL DEFAULT 1 fftw_mpi_local_size_2d_f03 │ │ │ │ │ + 15: 00000294 84 FUNC GLOBAL DEFAULT 1 fftw_mpi_local_size_2d_f03 │ │ │ │ │ 16: 00000000 0 NOTYPE GLOBAL DEFAULT UND fftw_mpi_local_size_2d │ │ │ │ │ - 17: 000001fc 68 FUNC GLOBAL DEFAULT 1 fftw_mpi_local_size_2d_transposed_f03 │ │ │ │ │ + 17: 000002e8 104 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: 00000240 64 FUNC GLOBAL DEFAULT 1 fftw_mpi_local_size_3d_f03 │ │ │ │ │ + 19: 00000350 92 FUNC GLOBAL DEFAULT 1 fftw_mpi_local_size_3d_f03 │ │ │ │ │ 20: 00000000 0 NOTYPE GLOBAL DEFAULT UND fftw_mpi_local_size_3d │ │ │ │ │ - 21: 00000280 72 FUNC GLOBAL DEFAULT 1 fftw_mpi_local_size_3d_transposed_f03 │ │ │ │ │ + 21: 000003ac 108 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: 000002c8 92 FUNC GLOBAL DEFAULT 1 fftw_mpi_plan_many_transpose_f03 │ │ │ │ │ + 23: 00000418 128 FUNC GLOBAL DEFAULT 1 fftw_mpi_plan_many_transpose_f03 │ │ │ │ │ 24: 00000000 0 NOTYPE GLOBAL DEFAULT UND fftw_mpi_plan_many_transpose │ │ │ │ │ - 25: 00000324 64 FUNC GLOBAL DEFAULT 1 fftw_mpi_plan_transpose_f03 │ │ │ │ │ + 25: 00000498 92 FUNC GLOBAL DEFAULT 1 fftw_mpi_plan_transpose_f03 │ │ │ │ │ 26: 00000000 0 NOTYPE GLOBAL DEFAULT UND fftw_mpi_plan_transpose │ │ │ │ │ - 27: 00000364 100 FUNC GLOBAL DEFAULT 1 fftw_mpi_plan_many_dft_f03 │ │ │ │ │ + 27: 000004f4 136 FUNC GLOBAL DEFAULT 1 fftw_mpi_plan_many_dft_f03 │ │ │ │ │ 28: 00000000 0 NOTYPE GLOBAL DEFAULT UND fftw_mpi_plan_many_dft │ │ │ │ │ - 29: 000003c8 68 FUNC GLOBAL DEFAULT 1 fftw_mpi_plan_dft_f03 │ │ │ │ │ + 29: 0000057c 104 FUNC GLOBAL DEFAULT 1 fftw_mpi_plan_dft_f03 │ │ │ │ │ 30: 00000000 0 NOTYPE GLOBAL DEFAULT UND fftw_mpi_plan_dft │ │ │ │ │ - 31: 0000040c 64 FUNC GLOBAL DEFAULT 1 fftw_mpi_plan_dft_1d_f03 │ │ │ │ │ + 31: 000005e4 92 FUNC GLOBAL DEFAULT 1 fftw_mpi_plan_dft_1d_f03 │ │ │ │ │ 32: 00000000 0 NOTYPE GLOBAL DEFAULT UND fftw_mpi_plan_dft_1d │ │ │ │ │ - 33: 0000044c 68 FUNC GLOBAL DEFAULT 1 fftw_mpi_plan_dft_2d_f03 │ │ │ │ │ + 33: 00000640 104 FUNC GLOBAL DEFAULT 1 fftw_mpi_plan_dft_2d_f03 │ │ │ │ │ 34: 00000000 0 NOTYPE GLOBAL DEFAULT UND fftw_mpi_plan_dft_2d │ │ │ │ │ - 35: 00000490 76 FUNC GLOBAL DEFAULT 1 fftw_mpi_plan_dft_3d_f03 │ │ │ │ │ + 35: 000006a8 112 FUNC GLOBAL DEFAULT 1 fftw_mpi_plan_dft_3d_f03 │ │ │ │ │ 36: 00000000 0 NOTYPE GLOBAL DEFAULT UND fftw_mpi_plan_dft_3d │ │ │ │ │ - 37: 000004dc 100 FUNC GLOBAL DEFAULT 1 fftw_mpi_plan_many_r2r_f03 │ │ │ │ │ + 37: 00000718 136 FUNC GLOBAL DEFAULT 1 fftw_mpi_plan_many_r2r_f03 │ │ │ │ │ 38: 00000000 0 NOTYPE GLOBAL DEFAULT UND fftw_mpi_plan_many_r2r │ │ │ │ │ - 39: 00000540 68 FUNC GLOBAL DEFAULT 1 fftw_mpi_plan_r2r_f03 │ │ │ │ │ + 39: 000007a0 104 FUNC GLOBAL DEFAULT 1 fftw_mpi_plan_r2r_f03 │ │ │ │ │ 40: 00000000 0 NOTYPE GLOBAL DEFAULT UND fftw_mpi_plan_r2r │ │ │ │ │ - 41: 00000584 72 FUNC GLOBAL DEFAULT 1 fftw_mpi_plan_r2r_2d_f03 │ │ │ │ │ + 41: 00000808 108 FUNC GLOBAL DEFAULT 1 fftw_mpi_plan_r2r_2d_f03 │ │ │ │ │ 42: 00000000 0 NOTYPE GLOBAL DEFAULT UND fftw_mpi_plan_r2r_2d │ │ │ │ │ - 43: 000005cc 100 FUNC GLOBAL DEFAULT 1 fftw_mpi_plan_r2r_3d_f03 │ │ │ │ │ + 43: 00000874 136 FUNC GLOBAL DEFAULT 1 fftw_mpi_plan_r2r_3d_f03 │ │ │ │ │ 44: 00000000 0 NOTYPE GLOBAL DEFAULT UND fftw_mpi_plan_r2r_3d │ │ │ │ │ - 45: 00000630 92 FUNC GLOBAL DEFAULT 1 fftw_mpi_plan_many_dft_r2c_f03 │ │ │ │ │ + 45: 000008fc 128 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: 0000068c 64 FUNC GLOBAL DEFAULT 1 fftw_mpi_plan_dft_r2c_f03 │ │ │ │ │ + 47: 0000097c 92 FUNC GLOBAL DEFAULT 1 fftw_mpi_plan_dft_r2c_f03 │ │ │ │ │ 48: 00000000 0 NOTYPE GLOBAL DEFAULT UND fftw_mpi_plan_dft_r2c │ │ │ │ │ - 49: 000006cc 64 FUNC GLOBAL DEFAULT 1 fftw_mpi_plan_dft_r2c_2d_f03 │ │ │ │ │ + 49: 000009d8 92 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: 0000070c 72 FUNC GLOBAL DEFAULT 1 fftw_mpi_plan_dft_r2c_3d_f03 │ │ │ │ │ + 51: 00000a34 108 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: 00000754 92 FUNC GLOBAL DEFAULT 1 fftw_mpi_plan_many_dft_c2r_f03 │ │ │ │ │ + 53: 00000aa0 128 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: 000007b0 64 FUNC GLOBAL DEFAULT 1 fftw_mpi_plan_dft_c2r_f03 │ │ │ │ │ + 55: 00000b20 92 FUNC GLOBAL DEFAULT 1 fftw_mpi_plan_dft_c2r_f03 │ │ │ │ │ 56: 00000000 0 NOTYPE GLOBAL DEFAULT UND fftw_mpi_plan_dft_c2r │ │ │ │ │ - 57: 000007f0 64 FUNC GLOBAL DEFAULT 1 fftw_mpi_plan_dft_c2r_2d_f03 │ │ │ │ │ + 57: 00000b7c 92 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: 00000830 72 FUNC GLOBAL DEFAULT 1 fftw_mpi_plan_dft_c2r_3d_f03 │ │ │ │ │ + 59: 00000bd8 108 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: 00000878 16 FUNC GLOBAL DEFAULT 1 fftw_mpi_gather_wisdom_f03 │ │ │ │ │ + 61: 00000c44 28 FUNC GLOBAL DEFAULT 1 fftw_mpi_gather_wisdom_f03 │ │ │ │ │ 62: 00000000 0 NOTYPE GLOBAL DEFAULT UND fftw_mpi_gather_wisdom │ │ │ │ │ - 63: 00000888 16 FUNC GLOBAL DEFAULT 1 fftw_mpi_broadcast_wisdom_f03 │ │ │ │ │ + 63: 00000c60 28 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 0x1390 contains 62 entries: │ │ │ │ │ +Relocation section '.rel.text' at offset 0x1774 contains 62 entries: │ │ │ │ │ Offset Info Type Sym. Value Symbol's Name │ │ │ │ │ -0000002c 0000031c R_ARM_CALL 00000000 MPI_Comm_f2c │ │ │ │ │ -00000060 0000041d R_ARM_JUMP24 00000000 fftw_mpi_local_size_many_transposed │ │ │ │ │ -00000080 0000031c R_ARM_CALL 00000000 MPI_Comm_f2c │ │ │ │ │ -000000a4 0000061d R_ARM_JUMP24 00000000 fftw_mpi_local_size_many │ │ │ │ │ -000000c4 0000031c R_ARM_CALL 00000000 MPI_Comm_f2c │ │ │ │ │ -000000e8 0000081d R_ARM_JUMP24 00000000 fftw_mpi_local_size_transposed │ │ │ │ │ -00000104 0000031c R_ARM_CALL 00000000 MPI_Comm_f2c │ │ │ │ │ -00000120 00000a1d R_ARM_JUMP24 00000000 fftw_mpi_local_size │ │ │ │ │ -00000148 0000031c R_ARM_CALL 00000000 MPI_Comm_f2c │ │ │ │ │ -00000178 00000c1d R_ARM_JUMP24 00000000 fftw_mpi_local_size_many_1d │ │ │ │ │ -00000198 0000031c R_ARM_CALL 00000000 MPI_Comm_f2c │ │ │ │ │ -000001c0 00000e1d R_ARM_JUMP24 00000000 fftw_mpi_local_size_1d │ │ │ │ │ -000001dc 0000031c R_ARM_CALL 00000000 MPI_Comm_f2c │ │ │ │ │ -000001f8 0000101d R_ARM_JUMP24 00000000 fftw_mpi_local_size_2d │ │ │ │ │ -00000218 0000031c R_ARM_CALL 00000000 MPI_Comm_f2c │ │ │ │ │ -0000023c 0000121d R_ARM_JUMP24 00000000 fftw_mpi_local_size_2d_transposed │ │ │ │ │ -0000025c 0000031c R_ARM_CALL 00000000 MPI_Comm_f2c │ │ │ │ │ -0000027c 0000141d R_ARM_JUMP24 00000000 fftw_mpi_local_size_3d │ │ │ │ │ -0000029c 0000031c R_ARM_CALL 00000000 MPI_Comm_f2c │ │ │ │ │ -000002c4 0000161d R_ARM_JUMP24 00000000 fftw_mpi_local_size_3d_transposed │ │ │ │ │ -000002f0 0000031c R_ARM_CALL 00000000 MPI_Comm_f2c │ │ │ │ │ -00000320 0000181d R_ARM_JUMP24 00000000 fftw_mpi_plan_many_transpose │ │ │ │ │ -00000340 0000031c R_ARM_CALL 00000000 MPI_Comm_f2c │ │ │ │ │ -00000360 00001a1d R_ARM_JUMP24 00000000 fftw_mpi_plan_transpose │ │ │ │ │ -00000390 0000031c R_ARM_CALL 00000000 MPI_Comm_f2c │ │ │ │ │ -000003c4 00001c1d R_ARM_JUMP24 00000000 fftw_mpi_plan_many_dft │ │ │ │ │ -000003e4 0000031c R_ARM_CALL 00000000 MPI_Comm_f2c │ │ │ │ │ -00000408 00001e1d R_ARM_JUMP24 00000000 fftw_mpi_plan_dft │ │ │ │ │ -00000428 0000031c R_ARM_CALL 00000000 MPI_Comm_f2c │ │ │ │ │ -00000448 0000201d R_ARM_JUMP24 00000000 fftw_mpi_plan_dft_1d │ │ │ │ │ -00000468 0000031c R_ARM_CALL 00000000 MPI_Comm_f2c │ │ │ │ │ -0000048c 0000221d R_ARM_JUMP24 00000000 fftw_mpi_plan_dft_2d │ │ │ │ │ -000004b0 0000031c R_ARM_CALL 00000000 MPI_Comm_f2c │ │ │ │ │ -000004d8 0000241d R_ARM_JUMP24 00000000 fftw_mpi_plan_dft_3d │ │ │ │ │ -00000508 0000031c R_ARM_CALL 00000000 MPI_Comm_f2c │ │ │ │ │ -0000053c 0000261d R_ARM_JUMP24 00000000 fftw_mpi_plan_many_r2r │ │ │ │ │ -0000055c 0000031c R_ARM_CALL 00000000 MPI_Comm_f2c │ │ │ │ │ -00000580 0000281d R_ARM_JUMP24 00000000 fftw_mpi_plan_r2r │ │ │ │ │ -000005a0 0000031c R_ARM_CALL 00000000 MPI_Comm_f2c │ │ │ │ │ -000005c8 00002a1d R_ARM_JUMP24 00000000 fftw_mpi_plan_r2r_2d │ │ │ │ │ -000005f8 0000031c R_ARM_CALL 00000000 MPI_Comm_f2c │ │ │ │ │ -0000062c 00002c1d R_ARM_JUMP24 00000000 fftw_mpi_plan_r2r_3d │ │ │ │ │ -00000658 0000031c R_ARM_CALL 00000000 MPI_Comm_f2c │ │ │ │ │ -00000688 00002e1d R_ARM_JUMP24 00000000 fftw_mpi_plan_many_dft_r2c │ │ │ │ │ -000006a8 0000031c R_ARM_CALL 00000000 MPI_Comm_f2c │ │ │ │ │ -000006c8 0000301d R_ARM_JUMP24 00000000 fftw_mpi_plan_dft_r2c │ │ │ │ │ -000006e8 0000031c R_ARM_CALL 00000000 MPI_Comm_f2c │ │ │ │ │ -00000708 0000321d R_ARM_JUMP24 00000000 fftw_mpi_plan_dft_r2c_2d │ │ │ │ │ -0000072c 0000031c R_ARM_CALL 00000000 MPI_Comm_f2c │ │ │ │ │ -00000750 0000341d R_ARM_JUMP24 00000000 fftw_mpi_plan_dft_r2c_3d │ │ │ │ │ -0000077c 0000031c R_ARM_CALL 00000000 MPI_Comm_f2c │ │ │ │ │ -000007ac 0000361d R_ARM_JUMP24 00000000 fftw_mpi_plan_many_dft_c2r │ │ │ │ │ +0000003c 0000031c R_ARM_CALL 00000000 MPI_Comm_f2c │ │ │ │ │ +00000084 0000041d R_ARM_JUMP24 00000000 fftw_mpi_local_size_many_transposed │ │ │ │ │ +000000b4 0000031c R_ARM_CALL 00000000 MPI_Comm_f2c │ │ │ │ │ +000000ec 0000061d R_ARM_JUMP24 00000000 fftw_mpi_local_size_many │ │ │ │ │ +0000011c 0000031c R_ARM_CALL 00000000 MPI_Comm_f2c │ │ │ │ │ +00000154 0000081d R_ARM_JUMP24 00000000 fftw_mpi_local_size_transposed │ │ │ │ │ +0000017c 0000031c R_ARM_CALL 00000000 MPI_Comm_f2c │ │ │ │ │ +000001a8 00000a1d R_ARM_JUMP24 00000000 fftw_mpi_local_size │ │ │ │ │ +000001e0 0000031c R_ARM_CALL 00000000 MPI_Comm_f2c │ │ │ │ │ +00000224 00000c1d R_ARM_JUMP24 00000000 fftw_mpi_local_size_many_1d │ │ │ │ │ +00000254 0000031c R_ARM_CALL 00000000 MPI_Comm_f2c │ │ │ │ │ +00000290 00000e1d R_ARM_JUMP24 00000000 fftw_mpi_local_size_1d │ │ │ │ │ +000002b8 0000031c R_ARM_CALL 00000000 MPI_Comm_f2c │ │ │ │ │ +000002e4 0000101d R_ARM_JUMP24 00000000 fftw_mpi_local_size_2d │ │ │ │ │ +00000314 0000031c R_ARM_CALL 00000000 MPI_Comm_f2c │ │ │ │ │ +0000034c 0000121d R_ARM_JUMP24 00000000 fftw_mpi_local_size_2d_transposed │ │ │ │ │ +00000378 0000031c R_ARM_CALL 00000000 MPI_Comm_f2c │ │ │ │ │ +000003a8 0000141d R_ARM_JUMP24 00000000 fftw_mpi_local_size_3d │ │ │ │ │ +000003d8 0000031c R_ARM_CALL 00000000 MPI_Comm_f2c │ │ │ │ │ +00000414 0000161d R_ARM_JUMP24 00000000 fftw_mpi_local_size_3d_transposed │ │ │ │ │ +00000450 0000031c R_ARM_CALL 00000000 MPI_Comm_f2c │ │ │ │ │ +00000494 0000181d R_ARM_JUMP24 00000000 fftw_mpi_plan_many_transpose │ │ │ │ │ +000004c0 0000031c R_ARM_CALL 00000000 MPI_Comm_f2c │ │ │ │ │ +000004f0 00001a1d R_ARM_JUMP24 00000000 fftw_mpi_plan_transpose │ │ │ │ │ +00000530 0000031c R_ARM_CALL 00000000 MPI_Comm_f2c │ │ │ │ │ +00000578 00001c1d R_ARM_JUMP24 00000000 fftw_mpi_plan_many_dft │ │ │ │ │ +000005a8 0000031c R_ARM_CALL 00000000 MPI_Comm_f2c │ │ │ │ │ +000005e0 00001e1d R_ARM_JUMP24 00000000 fftw_mpi_plan_dft │ │ │ │ │ +0000060c 0000031c R_ARM_CALL 00000000 MPI_Comm_f2c │ │ │ │ │ +0000063c 0000201d R_ARM_JUMP24 00000000 fftw_mpi_plan_dft_1d │ │ │ │ │ +0000066c 0000031c R_ARM_CALL 00000000 MPI_Comm_f2c │ │ │ │ │ +000006a4 0000221d R_ARM_JUMP24 00000000 fftw_mpi_plan_dft_2d │ │ │ │ │ +000006d8 0000031c R_ARM_CALL 00000000 MPI_Comm_f2c │ │ │ │ │ +00000714 0000241d R_ARM_JUMP24 00000000 fftw_mpi_plan_dft_3d │ │ │ │ │ +00000754 0000031c R_ARM_CALL 00000000 MPI_Comm_f2c │ │ │ │ │ +0000079c 0000261d R_ARM_JUMP24 00000000 fftw_mpi_plan_many_r2r │ │ │ │ │ 000007cc 0000031c R_ARM_CALL 00000000 MPI_Comm_f2c │ │ │ │ │ -000007ec 0000381d R_ARM_JUMP24 00000000 fftw_mpi_plan_dft_c2r │ │ │ │ │ -0000080c 0000031c R_ARM_CALL 00000000 MPI_Comm_f2c │ │ │ │ │ -0000082c 00003a1d R_ARM_JUMP24 00000000 fftw_mpi_plan_dft_c2r_2d │ │ │ │ │ -00000850 0000031c R_ARM_CALL 00000000 MPI_Comm_f2c │ │ │ │ │ -00000874 00003c1d R_ARM_JUMP24 00000000 fftw_mpi_plan_dft_c2r_3d │ │ │ │ │ -0000087c 0000031c R_ARM_CALL 00000000 MPI_Comm_f2c │ │ │ │ │ -00000884 00003e1d R_ARM_JUMP24 00000000 fftw_mpi_gather_wisdom │ │ │ │ │ -0000088c 0000031c R_ARM_CALL 00000000 MPI_Comm_f2c │ │ │ │ │ -00000894 0000401d R_ARM_JUMP24 00000000 fftw_mpi_broadcast_wisdom │ │ │ │ │ +00000804 0000281d R_ARM_JUMP24 00000000 fftw_mpi_plan_r2r │ │ │ │ │ +00000834 0000031c R_ARM_CALL 00000000 MPI_Comm_f2c │ │ │ │ │ +00000870 00002a1d R_ARM_JUMP24 00000000 fftw_mpi_plan_r2r_2d │ │ │ │ │ +000008b0 0000031c R_ARM_CALL 00000000 MPI_Comm_f2c │ │ │ │ │ +000008f8 00002c1d R_ARM_JUMP24 00000000 fftw_mpi_plan_r2r_3d │ │ │ │ │ +00000934 0000031c R_ARM_CALL 00000000 MPI_Comm_f2c │ │ │ │ │ +00000978 00002e1d R_ARM_JUMP24 00000000 fftw_mpi_plan_many_dft_r2c │ │ │ │ │ +000009a4 0000031c R_ARM_CALL 00000000 MPI_Comm_f2c │ │ │ │ │ +000009d4 0000301d R_ARM_JUMP24 00000000 fftw_mpi_plan_dft_r2c │ │ │ │ │ +00000a00 0000031c R_ARM_CALL 00000000 MPI_Comm_f2c │ │ │ │ │ +00000a30 0000321d R_ARM_JUMP24 00000000 fftw_mpi_plan_dft_r2c_2d │ │ │ │ │ +00000a64 0000031c R_ARM_CALL 00000000 MPI_Comm_f2c │ │ │ │ │ +00000a9c 0000341d R_ARM_JUMP24 00000000 fftw_mpi_plan_dft_r2c_3d │ │ │ │ │ +00000ad8 0000031c R_ARM_CALL 00000000 MPI_Comm_f2c │ │ │ │ │ +00000b1c 0000361d R_ARM_JUMP24 00000000 fftw_mpi_plan_many_dft_c2r │ │ │ │ │ +00000b48 0000031c R_ARM_CALL 00000000 MPI_Comm_f2c │ │ │ │ │ +00000b78 0000381d R_ARM_JUMP24 00000000 fftw_mpi_plan_dft_c2r │ │ │ │ │ +00000ba4 0000031c R_ARM_CALL 00000000 MPI_Comm_f2c │ │ │ │ │ +00000bd4 00003a1d R_ARM_JUMP24 00000000 fftw_mpi_plan_dft_c2r_2d │ │ │ │ │ +00000c08 0000031c R_ARM_CALL 00000000 MPI_Comm_f2c │ │ │ │ │ +00000c40 00003c1d R_ARM_JUMP24 00000000 fftw_mpi_plan_dft_c2r_3d │ │ │ │ │ +00000c4c 0000031c R_ARM_CALL 00000000 MPI_Comm_f2c │ │ │ │ │ +00000c5c 00003e1d R_ARM_JUMP24 00000000 fftw_mpi_gather_wisdom │ │ │ │ │ +00000c68 0000031c R_ARM_CALL 00000000 MPI_Comm_f2c │ │ │ │ │ +00000c78 0000401d R_ARM_JUMP24 00000000 fftw_mpi_broadcast_wisdom │ │ │ │ ├── objdump --line-numbers --disassemble --demangle --reloc --no-show-raw-insn --section=.text {} │ │ │ │ │ @@ -1,709 +1,958 @@ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ Disassembly of section .text: │ │ │ │ │ │ │ │ │ │ 00000000 : │ │ │ │ │ fftw_mpi_local_size_many_transposed_f03(): │ │ │ │ │ - push {r4, r5, r6, r7, r8, r9, sl, fp, lr} │ │ │ │ │ + strd r4, [sp, #-36]! @ 0xffffffdc │ │ │ │ │ + mov r5, r1 │ │ │ │ │ + strd r6, [sp, #8] │ │ │ │ │ + mov r6, r2 │ │ │ │ │ + mov r7, r3 │ │ │ │ │ + strd r8, [sp, #16] │ │ │ │ │ + strd sl, [sp, #24] │ │ │ │ │ + str lr, [sp, #32] │ │ │ │ │ sub sp, sp, #12 │ │ │ │ │ - str r0, [sp, #4] │ │ │ │ │ add r9, sp, #56 @ 0x38 │ │ │ │ │ + ldr r8, [sp, #48] @ 0x30 │ │ │ │ │ + str r0, [sp, #4] │ │ │ │ │ ldr r0, [sp, #52] @ 0x34 │ │ │ │ │ ldm r9, {r9, sl, fp} │ │ │ │ │ - ldr r8, [sp, #48] @ 0x30 │ │ │ │ │ ldr r4, [sp, #68] @ 0x44 │ │ │ │ │ - mov r5, r1 │ │ │ │ │ - mov r6, r2 │ │ │ │ │ - mov r7, r3 │ │ │ │ │ bl 0 │ │ │ │ │ R_ARM_CALL MPI_Comm_f2c │ │ │ │ │ mov r3, r7 │ │ │ │ │ mov r2, r6 │ │ │ │ │ - mov r1, r5 │ │ │ │ │ - str r4, [sp, #68] @ 0x44 │ │ │ │ │ - str fp, [sp, #64] @ 0x40 │ │ │ │ │ - str sl, [sp, #60] @ 0x3c │ │ │ │ │ - str r9, [sp, #56] @ 0x38 │ │ │ │ │ str r8, [sp, #48] @ 0x30 │ │ │ │ │ str r0, [sp, #52] @ 0x34 │ │ │ │ │ + mov r1, r5 │ │ │ │ │ ldr r0, [sp, #4] │ │ │ │ │ + str r9, [sp, #56] @ 0x38 │ │ │ │ │ + str sl, [sp, #60] @ 0x3c │ │ │ │ │ + str fp, [sp, #64] @ 0x40 │ │ │ │ │ + str r4, [sp, #68] @ 0x44 │ │ │ │ │ add sp, sp, #12 │ │ │ │ │ - pop {r4, r5, r6, r7, r8, r9, sl, fp, lr} │ │ │ │ │ + ldrd r4, [sp] │ │ │ │ │ + ldrd r6, [sp, #8] │ │ │ │ │ + ldrd r8, [sp, #16] │ │ │ │ │ + ldrd sl, [sp, #24] │ │ │ │ │ + ldr lr, [sp, #32] │ │ │ │ │ + add sp, sp, #36 @ 0x24 │ │ │ │ │ b 0 │ │ │ │ │ R_ARM_JUMP24 fftw_mpi_local_size_many_transposed │ │ │ │ │ │ │ │ │ │ -00000064 : │ │ │ │ │ +00000088 : │ │ │ │ │ fftw_mpi_local_size_many_f03(): │ │ │ │ │ - push {r4, r5, r6, r7, r8, r9, sl, lr} │ │ │ │ │ + strd r4, [sp, #-32]! @ 0xffffffe0 │ │ │ │ │ mov r4, r0 │ │ │ │ │ add r0, sp, #32 │ │ │ │ │ - ldm r0, {r0, r8, r9} │ │ │ │ │ mov r5, r1 │ │ │ │ │ + strd r6, [sp, #8] │ │ │ │ │ mov r6, r2 │ │ │ │ │ + strd r8, [sp, #16] │ │ │ │ │ mov r7, r3 │ │ │ │ │ + ldm r0, {r0, r8, r9} │ │ │ │ │ + str sl, [sp, #24] │ │ │ │ │ + str lr, [sp, #28] │ │ │ │ │ bl 0 │ │ │ │ │ R_ARM_CALL MPI_Comm_f2c │ │ │ │ │ + ldr sl, [sp, #24] │ │ │ │ │ mov r3, r7 │ │ │ │ │ mov r2, r6 │ │ │ │ │ mov r1, r5 │ │ │ │ │ - str r9, [sp, #40] @ 0x28 │ │ │ │ │ - str r8, [sp, #36] @ 0x24 │ │ │ │ │ str r0, [sp, #32] │ │ │ │ │ mov r0, r4 │ │ │ │ │ - pop {r4, r5, r6, r7, r8, r9, sl, lr} │ │ │ │ │ + ldrd r4, [sp] │ │ │ │ │ + str r8, [sp, #36] @ 0x24 │ │ │ │ │ + ldrd r6, [sp, #8] │ │ │ │ │ + str r9, [sp, #40] @ 0x28 │ │ │ │ │ + ldrd r8, [sp, #16] │ │ │ │ │ + ldr lr, [sp, #28] │ │ │ │ │ + add sp, sp, #32 │ │ │ │ │ b 0 │ │ │ │ │ R_ARM_JUMP24 fftw_mpi_local_size_many │ │ │ │ │ │ │ │ │ │ -000000a8 : │ │ │ │ │ +000000f0 : │ │ │ │ │ fftw_mpi_local_size_transposed_f03(): │ │ │ │ │ - push {r4, r5, r6, r7, r8, r9, sl, lr} │ │ │ │ │ + strd r4, [sp, #-32]! @ 0xffffffe0 │ │ │ │ │ mov r4, r0 │ │ │ │ │ - add r7, sp, #32 │ │ │ │ │ mov r0, r2 │ │ │ │ │ - ldm r7, {r7, r8, r9} │ │ │ │ │ + strd r6, [sp, #8] │ │ │ │ │ + add r7, sp, #32 │ │ │ │ │ mov r5, r1 │ │ │ │ │ + strd r8, [sp, #16] │ │ │ │ │ mov r6, r3 │ │ │ │ │ + ldm r7, {r7, r8, r9} │ │ │ │ │ + str sl, [sp, #24] │ │ │ │ │ + str lr, [sp, #28] │ │ │ │ │ bl 0 │ │ │ │ │ R_ARM_CALL MPI_Comm_f2c │ │ │ │ │ + ldr sl, [sp, #24] │ │ │ │ │ + mov r2, r0 │ │ │ │ │ mov r3, r6 │ │ │ │ │ mov r1, r5 │ │ │ │ │ - str r9, [sp, #40] @ 0x28 │ │ │ │ │ - str r8, [sp, #36] @ 0x24 │ │ │ │ │ - str r7, [sp, #32] │ │ │ │ │ - mov r2, r0 │ │ │ │ │ mov r0, r4 │ │ │ │ │ - pop {r4, r5, r6, r7, r8, r9, sl, lr} │ │ │ │ │ + str r7, [sp, #32] │ │ │ │ │ + ldrd r4, [sp] │ │ │ │ │ + str r8, [sp, #36] @ 0x24 │ │ │ │ │ + ldrd r6, [sp, #8] │ │ │ │ │ + str r9, [sp, #40] @ 0x28 │ │ │ │ │ + ldrd r8, [sp, #16] │ │ │ │ │ + ldr lr, [sp, #28] │ │ │ │ │ + add sp, sp, #32 │ │ │ │ │ b 0 │ │ │ │ │ R_ARM_JUMP24 fftw_mpi_local_size_transposed │ │ │ │ │ │ │ │ │ │ -000000ec : │ │ │ │ │ +00000158 : │ │ │ │ │ fftw_mpi_local_size_f03(): │ │ │ │ │ - push {r4, r5, r6, r7, r8, lr} │ │ │ │ │ + strd r4, [sp, #-24]! @ 0xffffffe8 │ │ │ │ │ mov r4, r0 │ │ │ │ │ mov r0, r2 │ │ │ │ │ - ldr r7, [sp, #24] │ │ │ │ │ + strd r6, [sp, #8] │ │ │ │ │ mov r5, r1 │ │ │ │ │ mov r6, r3 │ │ │ │ │ + ldr r7, [sp, #24] │ │ │ │ │ + str r8, [sp, #16] │ │ │ │ │ + str lr, [sp, #20] │ │ │ │ │ bl 0 │ │ │ │ │ R_ARM_CALL MPI_Comm_f2c │ │ │ │ │ + ldr r8, [sp, #16] │ │ │ │ │ + mov r2, r0 │ │ │ │ │ mov r3, r6 │ │ │ │ │ mov r1, r5 │ │ │ │ │ - str r7, [sp, #24] │ │ │ │ │ - mov r2, r0 │ │ │ │ │ mov r0, r4 │ │ │ │ │ - pop {r4, r5, r6, r7, r8, lr} │ │ │ │ │ + str r7, [sp, #24] │ │ │ │ │ + ldrd r4, [sp] │ │ │ │ │ + ldrd r6, [sp, #8] │ │ │ │ │ + ldr lr, [sp, #20] │ │ │ │ │ + add sp, sp, #24 │ │ │ │ │ b 0 │ │ │ │ │ R_ARM_JUMP24 fftw_mpi_local_size │ │ │ │ │ │ │ │ │ │ -00000124 : │ │ │ │ │ +000001ac : │ │ │ │ │ fftw_mpi_local_size_many_1d_f03(): │ │ │ │ │ - push {r4, r5, r6, r7, r8, r9, sl, fp, lr} │ │ │ │ │ - sub sp, sp, #4 │ │ │ │ │ + strd r4, [sp, #-36]! @ 0xffffffdc │ │ │ │ │ mov r4, r0 │ │ │ │ │ - add r7, sp, #40 @ 0x28 │ │ │ │ │ mov r0, r2 │ │ │ │ │ - ldm r7, {r7, r8, r9, sl} │ │ │ │ │ - ldr fp, [sp, #56] @ 0x38 │ │ │ │ │ + strd r6, [sp, #8] │ │ │ │ │ mov r5, r1 │ │ │ │ │ mov r6, r3 │ │ │ │ │ + strd r8, [sp, #16] │ │ │ │ │ + strd sl, [sp, #24] │ │ │ │ │ + str lr, [sp, #32] │ │ │ │ │ + sub sp, sp, #4 │ │ │ │ │ + add r7, sp, #40 @ 0x28 │ │ │ │ │ + ldr fp, [sp, #56] @ 0x38 │ │ │ │ │ + ldm r7, {r7, r8, r9, sl} │ │ │ │ │ bl 0 │ │ │ │ │ R_ARM_CALL MPI_Comm_f2c │ │ │ │ │ + mov r2, r0 │ │ │ │ │ mov r3, r6 │ │ │ │ │ mov r1, r5 │ │ │ │ │ - str fp, [sp, #56] @ 0x38 │ │ │ │ │ - str sl, [sp, #52] @ 0x34 │ │ │ │ │ - str r9, [sp, #48] @ 0x30 │ │ │ │ │ - str r8, [sp, #44] @ 0x2c │ │ │ │ │ - str r7, [sp, #40] @ 0x28 │ │ │ │ │ - mov r2, r0 │ │ │ │ │ mov r0, r4 │ │ │ │ │ + str r7, [sp, #40] @ 0x28 │ │ │ │ │ + str r8, [sp, #44] @ 0x2c │ │ │ │ │ + str r9, [sp, #48] @ 0x30 │ │ │ │ │ + str sl, [sp, #52] @ 0x34 │ │ │ │ │ + str fp, [sp, #56] @ 0x38 │ │ │ │ │ add sp, sp, #4 │ │ │ │ │ - pop {r4, r5, r6, r7, r8, r9, sl, fp, lr} │ │ │ │ │ + ldrd r4, [sp] │ │ │ │ │ + ldrd r6, [sp, #8] │ │ │ │ │ + ldrd r8, [sp, #16] │ │ │ │ │ + ldrd sl, [sp, #24] │ │ │ │ │ + ldr lr, [sp, #32] │ │ │ │ │ + add sp, sp, #36 @ 0x24 │ │ │ │ │ b 0 │ │ │ │ │ R_ARM_JUMP24 fftw_mpi_local_size_many_1d │ │ │ │ │ │ │ │ │ │ -0000017c : │ │ │ │ │ +00000228 : │ │ │ │ │ fftw_mpi_local_size_1d_f03(): │ │ │ │ │ - push {r4, r5, r6, r7, r8, r9, sl, lr} │ │ │ │ │ + strd r4, [sp, #-32]! @ 0xffffffe0 │ │ │ │ │ mov r4, r0 │ │ │ │ │ - add r7, sp, #32 │ │ │ │ │ mov r0, r1 │ │ │ │ │ - ldm r7, {r7, r8, r9, sl} │ │ │ │ │ + strd r6, [sp, #8] │ │ │ │ │ + add r7, sp, #32 │ │ │ │ │ mov r5, r2 │ │ │ │ │ + strd r8, [sp, #16] │ │ │ │ │ mov r6, r3 │ │ │ │ │ + str sl, [sp, #24] │ │ │ │ │ + ldm r7, {r7, r8, r9, sl} │ │ │ │ │ + str lr, [sp, #28] │ │ │ │ │ bl 0 │ │ │ │ │ R_ARM_CALL MPI_Comm_f2c │ │ │ │ │ + ldr lr, [sp, #28] │ │ │ │ │ + mov r1, r0 │ │ │ │ │ mov r3, r6 │ │ │ │ │ mov r2, r5 │ │ │ │ │ - str sl, [sp, #44] @ 0x2c │ │ │ │ │ - str r9, [sp, #40] @ 0x28 │ │ │ │ │ - str r8, [sp, #36] @ 0x24 │ │ │ │ │ - str r7, [sp, #32] │ │ │ │ │ - mov r1, r0 │ │ │ │ │ mov r0, r4 │ │ │ │ │ - pop {r4, r5, r6, r7, r8, r9, sl, lr} │ │ │ │ │ + str r7, [sp, #32] │ │ │ │ │ + ldrd r4, [sp] │ │ │ │ │ + str r8, [sp, #36] @ 0x24 │ │ │ │ │ + ldrd r6, [sp, #8] │ │ │ │ │ + str r9, [sp, #40] @ 0x28 │ │ │ │ │ + ldrd r8, [sp, #16] │ │ │ │ │ + str sl, [sp, #44] @ 0x2c │ │ │ │ │ + ldr sl, [sp, #24] │ │ │ │ │ + add sp, sp, #32 │ │ │ │ │ b 0 │ │ │ │ │ R_ARM_JUMP24 fftw_mpi_local_size_1d │ │ │ │ │ │ │ │ │ │ -000001c4 : │ │ │ │ │ +00000294 : │ │ │ │ │ fftw_mpi_local_size_2d_f03(): │ │ │ │ │ - push {r4, r5, r6, r7, r8, lr} │ │ │ │ │ + strd r4, [sp, #-24]! @ 0xffffffe8 │ │ │ │ │ mov r4, r0 │ │ │ │ │ mov r0, r2 │ │ │ │ │ - ldr r7, [sp, #24] │ │ │ │ │ + strd r6, [sp, #8] │ │ │ │ │ mov r5, r1 │ │ │ │ │ mov r6, r3 │ │ │ │ │ + ldr r7, [sp, #24] │ │ │ │ │ + str r8, [sp, #16] │ │ │ │ │ + str lr, [sp, #20] │ │ │ │ │ bl 0 │ │ │ │ │ R_ARM_CALL MPI_Comm_f2c │ │ │ │ │ + ldr r8, [sp, #16] │ │ │ │ │ + mov r2, r0 │ │ │ │ │ mov r3, r6 │ │ │ │ │ mov r1, r5 │ │ │ │ │ - str r7, [sp, #24] │ │ │ │ │ - mov r2, r0 │ │ │ │ │ mov r0, r4 │ │ │ │ │ - pop {r4, r5, r6, r7, r8, lr} │ │ │ │ │ + str r7, [sp, #24] │ │ │ │ │ + ldrd r4, [sp] │ │ │ │ │ + ldrd r6, [sp, #8] │ │ │ │ │ + ldr lr, [sp, #20] │ │ │ │ │ + add sp, sp, #24 │ │ │ │ │ b 0 │ │ │ │ │ R_ARM_JUMP24 fftw_mpi_local_size_2d │ │ │ │ │ │ │ │ │ │ -000001fc : │ │ │ │ │ +000002e8 : │ │ │ │ │ fftw_mpi_local_size_2d_transposed_f03(): │ │ │ │ │ - push {r4, r5, r6, r7, r8, r9, sl, lr} │ │ │ │ │ + strd r4, [sp, #-32]! @ 0xffffffe0 │ │ │ │ │ mov r4, r0 │ │ │ │ │ - add r7, sp, #32 │ │ │ │ │ mov r0, r2 │ │ │ │ │ - ldm r7, {r7, r8, r9} │ │ │ │ │ + strd r6, [sp, #8] │ │ │ │ │ + add r7, sp, #32 │ │ │ │ │ mov r5, r1 │ │ │ │ │ + strd r8, [sp, #16] │ │ │ │ │ mov r6, r3 │ │ │ │ │ + ldm r7, {r7, r8, r9} │ │ │ │ │ + str sl, [sp, #24] │ │ │ │ │ + str lr, [sp, #28] │ │ │ │ │ bl 0 │ │ │ │ │ R_ARM_CALL MPI_Comm_f2c │ │ │ │ │ + ldr sl, [sp, #24] │ │ │ │ │ + mov r2, r0 │ │ │ │ │ mov r3, r6 │ │ │ │ │ mov r1, r5 │ │ │ │ │ - str r9, [sp, #40] @ 0x28 │ │ │ │ │ - str r8, [sp, #36] @ 0x24 │ │ │ │ │ - str r7, [sp, #32] │ │ │ │ │ - mov r2, r0 │ │ │ │ │ mov r0, r4 │ │ │ │ │ - pop {r4, r5, r6, r7, r8, r9, sl, lr} │ │ │ │ │ + str r7, [sp, #32] │ │ │ │ │ + ldrd r4, [sp] │ │ │ │ │ + str r8, [sp, #36] @ 0x24 │ │ │ │ │ + ldrd r6, [sp, #8] │ │ │ │ │ + str r9, [sp, #40] @ 0x28 │ │ │ │ │ + ldrd r8, [sp, #16] │ │ │ │ │ + ldr lr, [sp, #28] │ │ │ │ │ + add sp, sp, #32 │ │ │ │ │ b 0 │ │ │ │ │ R_ARM_JUMP24 fftw_mpi_local_size_2d_transposed │ │ │ │ │ │ │ │ │ │ -00000240 : │ │ │ │ │ +00000350 : │ │ │ │ │ fftw_mpi_local_size_3d_f03(): │ │ │ │ │ - push {r4, r5, r6, r7, r8, lr} │ │ │ │ │ + strd r4, [sp, #-24]! @ 0xffffffe8 │ │ │ │ │ mov r4, r0 │ │ │ │ │ mov r0, r3 │ │ │ │ │ - ldr r7, [sp, #24] │ │ │ │ │ - ldr r8, [sp, #28] │ │ │ │ │ + strd r6, [sp, #8] │ │ │ │ │ mov r5, r1 │ │ │ │ │ mov r6, r2 │ │ │ │ │ + ldr r7, [sp, #24] │ │ │ │ │ + str r8, [sp, #16] │ │ │ │ │ + ldr r8, [sp, #28] │ │ │ │ │ + str lr, [sp, #20] │ │ │ │ │ bl 0 │ │ │ │ │ R_ARM_CALL MPI_Comm_f2c │ │ │ │ │ + ldr lr, [sp, #20] │ │ │ │ │ + mov r3, r0 │ │ │ │ │ mov r2, r6 │ │ │ │ │ mov r1, r5 │ │ │ │ │ - str r8, [sp, #28] │ │ │ │ │ - str r7, [sp, #24] │ │ │ │ │ - mov r3, r0 │ │ │ │ │ mov r0, r4 │ │ │ │ │ - pop {r4, r5, r6, r7, r8, lr} │ │ │ │ │ + str r7, [sp, #24] │ │ │ │ │ + ldrd r4, [sp] │ │ │ │ │ + str r8, [sp, #28] │ │ │ │ │ + ldrd r6, [sp, #8] │ │ │ │ │ + ldr r8, [sp, #16] │ │ │ │ │ + add sp, sp, #24 │ │ │ │ │ b 0 │ │ │ │ │ R_ARM_JUMP24 fftw_mpi_local_size_3d │ │ │ │ │ │ │ │ │ │ -00000280 : │ │ │ │ │ +000003ac : │ │ │ │ │ fftw_mpi_local_size_3d_transposed_f03(): │ │ │ │ │ - push {r4, r5, r6, r7, r8, r9, sl, lr} │ │ │ │ │ + strd r4, [sp, #-32]! @ 0xffffffe0 │ │ │ │ │ mov r4, r0 │ │ │ │ │ - add r7, sp, #32 │ │ │ │ │ mov r0, r3 │ │ │ │ │ - ldm r7, {r7, r8, r9, sl} │ │ │ │ │ + strd r6, [sp, #8] │ │ │ │ │ + add r7, sp, #32 │ │ │ │ │ mov r5, r1 │ │ │ │ │ + strd r8, [sp, #16] │ │ │ │ │ mov r6, r2 │ │ │ │ │ + str sl, [sp, #24] │ │ │ │ │ + ldm r7, {r7, r8, r9, sl} │ │ │ │ │ + str lr, [sp, #28] │ │ │ │ │ bl 0 │ │ │ │ │ R_ARM_CALL MPI_Comm_f2c │ │ │ │ │ + ldr lr, [sp, #28] │ │ │ │ │ + mov r3, r0 │ │ │ │ │ mov r2, r6 │ │ │ │ │ mov r1, r5 │ │ │ │ │ - str sl, [sp, #44] @ 0x2c │ │ │ │ │ - str r9, [sp, #40] @ 0x28 │ │ │ │ │ - str r8, [sp, #36] @ 0x24 │ │ │ │ │ - str r7, [sp, #32] │ │ │ │ │ - mov r3, r0 │ │ │ │ │ mov r0, r4 │ │ │ │ │ - pop {r4, r5, r6, r7, r8, r9, sl, lr} │ │ │ │ │ + str r7, [sp, #32] │ │ │ │ │ + ldrd r4, [sp] │ │ │ │ │ + str r8, [sp, #36] @ 0x24 │ │ │ │ │ + ldrd r6, [sp, #8] │ │ │ │ │ + str r9, [sp, #40] @ 0x28 │ │ │ │ │ + ldrd r8, [sp, #16] │ │ │ │ │ + str sl, [sp, #44] @ 0x2c │ │ │ │ │ + ldr sl, [sp, #24] │ │ │ │ │ + add sp, sp, #32 │ │ │ │ │ b 0 │ │ │ │ │ R_ARM_JUMP24 fftw_mpi_local_size_3d_transposed │ │ │ │ │ │ │ │ │ │ -000002c8 : │ │ │ │ │ +00000418 : │ │ │ │ │ fftw_mpi_plan_many_transpose_f03(): │ │ │ │ │ - push {r4, r5, r6, r7, r8, r9, sl, fp, lr} │ │ │ │ │ - sub sp, sp, #4 │ │ │ │ │ + strd r4, [sp, #-36]! @ 0xffffffdc │ │ │ │ │ mov r4, r0 │ │ │ │ │ - ldr r0, [sp, #52] @ 0x34 │ │ │ │ │ - ldrd r8, [sp, #40] @ 0x28 │ │ │ │ │ - ldr sl, [sp, #48] @ 0x30 │ │ │ │ │ - ldr fp, [sp, #56] @ 0x38 │ │ │ │ │ mov r5, r1 │ │ │ │ │ + strd r6, [sp, #8] │ │ │ │ │ mov r6, r2 │ │ │ │ │ mov r7, r3 │ │ │ │ │ + strd r8, [sp, #16] │ │ │ │ │ + strd sl, [sp, #24] │ │ │ │ │ + str lr, [sp, #32] │ │ │ │ │ + sub sp, sp, #4 │ │ │ │ │ + ldrd r8, [sp, #40] @ 0x28 │ │ │ │ │ + ldr sl, [sp, #48] @ 0x30 │ │ │ │ │ + ldr r0, [sp, #52] @ 0x34 │ │ │ │ │ + ldr fp, [sp, #56] @ 0x38 │ │ │ │ │ bl 0 │ │ │ │ │ R_ARM_CALL MPI_Comm_f2c │ │ │ │ │ mov r3, r7 │ │ │ │ │ mov r2, r6 │ │ │ │ │ - mov r1, r5 │ │ │ │ │ - str fp, [sp, #56] @ 0x38 │ │ │ │ │ - str sl, [sp, #48] @ 0x30 │ │ │ │ │ - str r9, [sp, #44] @ 0x2c │ │ │ │ │ str r8, [sp, #40] @ 0x28 │ │ │ │ │ + mov r1, r5 │ │ │ │ │ str r0, [sp, #52] @ 0x34 │ │ │ │ │ mov r0, r4 │ │ │ │ │ + str r9, [sp, #44] @ 0x2c │ │ │ │ │ + str sl, [sp, #48] @ 0x30 │ │ │ │ │ + str fp, [sp, #56] @ 0x38 │ │ │ │ │ add sp, sp, #4 │ │ │ │ │ - pop {r4, r5, r6, r7, r8, r9, sl, fp, lr} │ │ │ │ │ + ldrd r4, [sp] │ │ │ │ │ + ldrd r6, [sp, #8] │ │ │ │ │ + ldrd r8, [sp, #16] │ │ │ │ │ + ldrd sl, [sp, #24] │ │ │ │ │ + ldr lr, [sp, #32] │ │ │ │ │ + add sp, sp, #36 @ 0x24 │ │ │ │ │ b 0 │ │ │ │ │ R_ARM_JUMP24 fftw_mpi_plan_many_transpose │ │ │ │ │ │ │ │ │ │ -00000324 : │ │ │ │ │ +00000498 : │ │ │ │ │ fftw_mpi_plan_transpose_f03(): │ │ │ │ │ - push {r4, r5, r6, r7, r8, lr} │ │ │ │ │ + strd r4, [sp, #-24]! @ 0xffffffe8 │ │ │ │ │ mov r4, r0 │ │ │ │ │ + mov r5, r1 │ │ │ │ │ ldr r0, [sp, #24] │ │ │ │ │ + str r8, [sp, #16] │ │ │ │ │ ldr r8, [sp, #28] │ │ │ │ │ - mov r5, r1 │ │ │ │ │ + strd r6, [sp, #8] │ │ │ │ │ mov r6, r2 │ │ │ │ │ mov r7, r3 │ │ │ │ │ + str lr, [sp, #20] │ │ │ │ │ bl 0 │ │ │ │ │ R_ARM_CALL MPI_Comm_f2c │ │ │ │ │ + ldr lr, [sp, #20] │ │ │ │ │ mov r3, r7 │ │ │ │ │ mov r2, r6 │ │ │ │ │ mov r1, r5 │ │ │ │ │ - str r8, [sp, #28] │ │ │ │ │ str r0, [sp, #24] │ │ │ │ │ mov r0, r4 │ │ │ │ │ - pop {r4, r5, r6, r7, r8, lr} │ │ │ │ │ + ldrd r4, [sp] │ │ │ │ │ + str r8, [sp, #28] │ │ │ │ │ + ldrd r6, [sp, #8] │ │ │ │ │ + ldr r8, [sp, #16] │ │ │ │ │ + add sp, sp, #24 │ │ │ │ │ b 0 │ │ │ │ │ R_ARM_JUMP24 fftw_mpi_plan_transpose │ │ │ │ │ │ │ │ │ │ -00000364 : │ │ │ │ │ +000004f4 : │ │ │ │ │ fftw_mpi_plan_many_dft_f03(): │ │ │ │ │ - push {r4, r5, r6, r7, r8, r9, sl, fp, lr} │ │ │ │ │ + strd r4, [sp, #-36]! @ 0xffffffdc │ │ │ │ │ + mov r5, r1 │ │ │ │ │ + strd r6, [sp, #8] │ │ │ │ │ + mov r6, r2 │ │ │ │ │ + mov r7, r3 │ │ │ │ │ + strd r8, [sp, #16] │ │ │ │ │ + strd sl, [sp, #24] │ │ │ │ │ + str lr, [sp, #32] │ │ │ │ │ sub sp, sp, #12 │ │ │ │ │ - str r0, [sp, #4] │ │ │ │ │ - ldr r0, [sp, #60] @ 0x3c │ │ │ │ │ ldrd r8, [sp, #48] @ 0x30 │ │ │ │ │ + str r0, [sp, #4] │ │ │ │ │ ldr sl, [sp, #56] @ 0x38 │ │ │ │ │ + ldr r0, [sp, #60] @ 0x3c │ │ │ │ │ ldr fp, [sp, #64] @ 0x40 │ │ │ │ │ ldr r4, [sp, #68] @ 0x44 │ │ │ │ │ - mov r5, r1 │ │ │ │ │ - mov r6, r2 │ │ │ │ │ - mov r7, r3 │ │ │ │ │ bl 0 │ │ │ │ │ R_ARM_CALL MPI_Comm_f2c │ │ │ │ │ mov r3, r7 │ │ │ │ │ mov r2, r6 │ │ │ │ │ - mov r1, r5 │ │ │ │ │ - str r4, [sp, #68] @ 0x44 │ │ │ │ │ - str fp, [sp, #64] @ 0x40 │ │ │ │ │ - str sl, [sp, #56] @ 0x38 │ │ │ │ │ - str r9, [sp, #52] @ 0x34 │ │ │ │ │ str r8, [sp, #48] @ 0x30 │ │ │ │ │ str r0, [sp, #60] @ 0x3c │ │ │ │ │ + mov r1, r5 │ │ │ │ │ ldr r0, [sp, #4] │ │ │ │ │ + str r9, [sp, #52] @ 0x34 │ │ │ │ │ + str sl, [sp, #56] @ 0x38 │ │ │ │ │ + str fp, [sp, #64] @ 0x40 │ │ │ │ │ + str r4, [sp, #68] @ 0x44 │ │ │ │ │ add sp, sp, #12 │ │ │ │ │ - pop {r4, r5, r6, r7, r8, r9, sl, fp, lr} │ │ │ │ │ + ldrd r4, [sp] │ │ │ │ │ + ldrd r6, [sp, #8] │ │ │ │ │ + ldrd r8, [sp, #16] │ │ │ │ │ + ldrd sl, [sp, #24] │ │ │ │ │ + ldr lr, [sp, #32] │ │ │ │ │ + add sp, sp, #36 @ 0x24 │ │ │ │ │ b 0 │ │ │ │ │ R_ARM_JUMP24 fftw_mpi_plan_many_dft │ │ │ │ │ │ │ │ │ │ -000003c8 : │ │ │ │ │ +0000057c : │ │ │ │ │ fftw_mpi_plan_dft_f03(): │ │ │ │ │ - push {r4, r5, r6, r7, r8, r9, sl, lr} │ │ │ │ │ + strd r4, [sp, #-32]! @ 0xffffffe0 │ │ │ │ │ mov r4, r0 │ │ │ │ │ add r0, sp, #32 │ │ │ │ │ - ldm r0, {r0, r8, r9} │ │ │ │ │ mov r5, r1 │ │ │ │ │ + strd r6, [sp, #8] │ │ │ │ │ mov r6, r2 │ │ │ │ │ + strd r8, [sp, #16] │ │ │ │ │ mov r7, r3 │ │ │ │ │ + ldm r0, {r0, r8, r9} │ │ │ │ │ + str sl, [sp, #24] │ │ │ │ │ + str lr, [sp, #28] │ │ │ │ │ bl 0 │ │ │ │ │ R_ARM_CALL MPI_Comm_f2c │ │ │ │ │ + ldr sl, [sp, #24] │ │ │ │ │ mov r3, r7 │ │ │ │ │ mov r2, r6 │ │ │ │ │ mov r1, r5 │ │ │ │ │ - str r9, [sp, #40] @ 0x28 │ │ │ │ │ - str r8, [sp, #36] @ 0x24 │ │ │ │ │ str r0, [sp, #32] │ │ │ │ │ mov r0, r4 │ │ │ │ │ - pop {r4, r5, r6, r7, r8, r9, sl, lr} │ │ │ │ │ + ldrd r4, [sp] │ │ │ │ │ + str r8, [sp, #36] @ 0x24 │ │ │ │ │ + ldrd r6, [sp, #8] │ │ │ │ │ + str r9, [sp, #40] @ 0x28 │ │ │ │ │ + ldrd r8, [sp, #16] │ │ │ │ │ + ldr lr, [sp, #28] │ │ │ │ │ + add sp, sp, #32 │ │ │ │ │ b 0 │ │ │ │ │ R_ARM_JUMP24 fftw_mpi_plan_dft │ │ │ │ │ │ │ │ │ │ -0000040c : │ │ │ │ │ +000005e4 : │ │ │ │ │ fftw_mpi_plan_dft_1d_f03(): │ │ │ │ │ - push {r4, r5, r6, r7, r8, lr} │ │ │ │ │ + strd r4, [sp, #-24]! @ 0xffffffe8 │ │ │ │ │ mov r4, r0 │ │ │ │ │ mov r0, r3 │ │ │ │ │ - ldr r7, [sp, #24] │ │ │ │ │ - ldr r8, [sp, #28] │ │ │ │ │ + strd r6, [sp, #8] │ │ │ │ │ mov r5, r1 │ │ │ │ │ mov r6, r2 │ │ │ │ │ + ldr r7, [sp, #24] │ │ │ │ │ + str r8, [sp, #16] │ │ │ │ │ + ldr r8, [sp, #28] │ │ │ │ │ + str lr, [sp, #20] │ │ │ │ │ bl 0 │ │ │ │ │ R_ARM_CALL MPI_Comm_f2c │ │ │ │ │ + ldr lr, [sp, #20] │ │ │ │ │ + mov r3, r0 │ │ │ │ │ mov r2, r6 │ │ │ │ │ mov r1, r5 │ │ │ │ │ - str r8, [sp, #28] │ │ │ │ │ - str r7, [sp, #24] │ │ │ │ │ - mov r3, r0 │ │ │ │ │ mov r0, r4 │ │ │ │ │ - pop {r4, r5, r6, r7, r8, lr} │ │ │ │ │ + str r7, [sp, #24] │ │ │ │ │ + ldrd r4, [sp] │ │ │ │ │ + str r8, [sp, #28] │ │ │ │ │ + ldrd r6, [sp, #8] │ │ │ │ │ + ldr r8, [sp, #16] │ │ │ │ │ + add sp, sp, #24 │ │ │ │ │ b 0 │ │ │ │ │ R_ARM_JUMP24 fftw_mpi_plan_dft_1d │ │ │ │ │ │ │ │ │ │ -0000044c : │ │ │ │ │ +00000640 : │ │ │ │ │ fftw_mpi_plan_dft_2d_f03(): │ │ │ │ │ - push {r4, r5, r6, r7, r8, r9, sl, lr} │ │ │ │ │ + strd r4, [sp, #-32]! @ 0xffffffe0 │ │ │ │ │ mov r4, r0 │ │ │ │ │ add r0, sp, #32 │ │ │ │ │ - ldm r0, {r0, r8, r9} │ │ │ │ │ mov r5, r1 │ │ │ │ │ + strd r6, [sp, #8] │ │ │ │ │ mov r6, r2 │ │ │ │ │ + strd r8, [sp, #16] │ │ │ │ │ mov r7, r3 │ │ │ │ │ + ldm r0, {r0, r8, r9} │ │ │ │ │ + str sl, [sp, #24] │ │ │ │ │ + str lr, [sp, #28] │ │ │ │ │ bl 0 │ │ │ │ │ R_ARM_CALL MPI_Comm_f2c │ │ │ │ │ + ldr sl, [sp, #24] │ │ │ │ │ mov r3, r7 │ │ │ │ │ mov r2, r6 │ │ │ │ │ mov r1, r5 │ │ │ │ │ - str r9, [sp, #40] @ 0x28 │ │ │ │ │ - str r8, [sp, #36] @ 0x24 │ │ │ │ │ str r0, [sp, #32] │ │ │ │ │ mov r0, r4 │ │ │ │ │ - pop {r4, r5, r6, r7, r8, r9, sl, lr} │ │ │ │ │ + ldrd r4, [sp] │ │ │ │ │ + str r8, [sp, #36] @ 0x24 │ │ │ │ │ + ldrd r6, [sp, #8] │ │ │ │ │ + str r9, [sp, #40] @ 0x28 │ │ │ │ │ + ldrd r8, [sp, #16] │ │ │ │ │ + ldr lr, [sp, #28] │ │ │ │ │ + add sp, sp, #32 │ │ │ │ │ b 0 │ │ │ │ │ R_ARM_JUMP24 fftw_mpi_plan_dft_2d │ │ │ │ │ │ │ │ │ │ -00000490 : │ │ │ │ │ +000006a8 : │ │ │ │ │ fftw_mpi_plan_dft_3d_f03(): │ │ │ │ │ - push {r4, r5, r6, r7, r8, r9, sl, lr} │ │ │ │ │ + strd r4, [sp, #-32]! @ 0xffffffe0 │ │ │ │ │ mov r4, r0 │ │ │ │ │ add r0, sp, #36 @ 0x24 │ │ │ │ │ - ldm r0, {r0, r9, sl} │ │ │ │ │ - ldr r8, [sp, #32] │ │ │ │ │ mov r5, r1 │ │ │ │ │ + strd r6, [sp, #8] │ │ │ │ │ mov r6, r2 │ │ │ │ │ + strd r8, [sp, #16] │ │ │ │ │ mov r7, r3 │ │ │ │ │ + ldr r8, [sp, #32] │ │ │ │ │ + str sl, [sp, #24] │ │ │ │ │ + ldm r0, {r0, r9, sl} │ │ │ │ │ + str lr, [sp, #28] │ │ │ │ │ bl 0 │ │ │ │ │ R_ARM_CALL MPI_Comm_f2c │ │ │ │ │ + ldr lr, [sp, #28] │ │ │ │ │ mov r3, r7 │ │ │ │ │ mov r2, r6 │ │ │ │ │ mov r1, r5 │ │ │ │ │ - str sl, [sp, #44] @ 0x2c │ │ │ │ │ - str r9, [sp, #40] @ 0x28 │ │ │ │ │ str r8, [sp, #32] │ │ │ │ │ + ldrd r6, [sp, #8] │ │ │ │ │ str r0, [sp, #36] @ 0x24 │ │ │ │ │ mov r0, r4 │ │ │ │ │ - pop {r4, r5, r6, r7, r8, r9, sl, lr} │ │ │ │ │ + ldrd r4, [sp] │ │ │ │ │ + str r9, [sp, #40] @ 0x28 │ │ │ │ │ + ldrd r8, [sp, #16] │ │ │ │ │ + str sl, [sp, #44] @ 0x2c │ │ │ │ │ + ldr sl, [sp, #24] │ │ │ │ │ + add sp, sp, #32 │ │ │ │ │ b 0 │ │ │ │ │ R_ARM_JUMP24 fftw_mpi_plan_dft_3d │ │ │ │ │ │ │ │ │ │ -000004dc : │ │ │ │ │ +00000718 : │ │ │ │ │ fftw_mpi_plan_many_r2r_f03(): │ │ │ │ │ - push {r4, r5, r6, r7, r8, r9, sl, fp, lr} │ │ │ │ │ + strd r4, [sp, #-36]! @ 0xffffffdc │ │ │ │ │ + mov r5, r1 │ │ │ │ │ + strd r6, [sp, #8] │ │ │ │ │ + mov r6, r2 │ │ │ │ │ + mov r7, r3 │ │ │ │ │ + strd r8, [sp, #16] │ │ │ │ │ + strd sl, [sp, #24] │ │ │ │ │ + str lr, [sp, #32] │ │ │ │ │ sub sp, sp, #12 │ │ │ │ │ - str r0, [sp, #4] │ │ │ │ │ - ldr r0, [sp, #60] @ 0x3c │ │ │ │ │ ldrd r8, [sp, #48] @ 0x30 │ │ │ │ │ + str r0, [sp, #4] │ │ │ │ │ ldr sl, [sp, #56] @ 0x38 │ │ │ │ │ + ldr r0, [sp, #60] @ 0x3c │ │ │ │ │ ldr fp, [sp, #64] @ 0x40 │ │ │ │ │ ldr r4, [sp, #68] @ 0x44 │ │ │ │ │ - mov r5, r1 │ │ │ │ │ - mov r6, r2 │ │ │ │ │ - mov r7, r3 │ │ │ │ │ bl 0 │ │ │ │ │ R_ARM_CALL MPI_Comm_f2c │ │ │ │ │ mov r3, r7 │ │ │ │ │ mov r2, r6 │ │ │ │ │ - mov r1, r5 │ │ │ │ │ - str r4, [sp, #68] @ 0x44 │ │ │ │ │ - str fp, [sp, #64] @ 0x40 │ │ │ │ │ - str sl, [sp, #56] @ 0x38 │ │ │ │ │ - str r9, [sp, #52] @ 0x34 │ │ │ │ │ str r8, [sp, #48] @ 0x30 │ │ │ │ │ str r0, [sp, #60] @ 0x3c │ │ │ │ │ + mov r1, r5 │ │ │ │ │ ldr r0, [sp, #4] │ │ │ │ │ + str r9, [sp, #52] @ 0x34 │ │ │ │ │ + str sl, [sp, #56] @ 0x38 │ │ │ │ │ + str fp, [sp, #64] @ 0x40 │ │ │ │ │ + str r4, [sp, #68] @ 0x44 │ │ │ │ │ add sp, sp, #12 │ │ │ │ │ - pop {r4, r5, r6, r7, r8, r9, sl, fp, lr} │ │ │ │ │ + ldrd r4, [sp] │ │ │ │ │ + ldrd r6, [sp, #8] │ │ │ │ │ + ldrd r8, [sp, #16] │ │ │ │ │ + ldrd sl, [sp, #24] │ │ │ │ │ + ldr lr, [sp, #32] │ │ │ │ │ + add sp, sp, #36 @ 0x24 │ │ │ │ │ b 0 │ │ │ │ │ R_ARM_JUMP24 fftw_mpi_plan_many_r2r │ │ │ │ │ │ │ │ │ │ -00000540 : │ │ │ │ │ +000007a0 : │ │ │ │ │ fftw_mpi_plan_r2r_f03(): │ │ │ │ │ - push {r4, r5, r6, r7, r8, r9, sl, lr} │ │ │ │ │ + strd r4, [sp, #-32]! @ 0xffffffe0 │ │ │ │ │ mov r4, r0 │ │ │ │ │ add r0, sp, #32 │ │ │ │ │ - ldm r0, {r0, r8, r9} │ │ │ │ │ mov r5, r1 │ │ │ │ │ + strd r6, [sp, #8] │ │ │ │ │ mov r6, r2 │ │ │ │ │ + strd r8, [sp, #16] │ │ │ │ │ mov r7, r3 │ │ │ │ │ + ldm r0, {r0, r8, r9} │ │ │ │ │ + str sl, [sp, #24] │ │ │ │ │ + str lr, [sp, #28] │ │ │ │ │ bl 0 │ │ │ │ │ R_ARM_CALL MPI_Comm_f2c │ │ │ │ │ + ldr sl, [sp, #24] │ │ │ │ │ mov r3, r7 │ │ │ │ │ mov r2, r6 │ │ │ │ │ mov r1, r5 │ │ │ │ │ - str r9, [sp, #40] @ 0x28 │ │ │ │ │ - str r8, [sp, #36] @ 0x24 │ │ │ │ │ str r0, [sp, #32] │ │ │ │ │ mov r0, r4 │ │ │ │ │ - pop {r4, r5, r6, r7, r8, r9, sl, lr} │ │ │ │ │ + ldrd r4, [sp] │ │ │ │ │ + str r8, [sp, #36] @ 0x24 │ │ │ │ │ + ldrd r6, [sp, #8] │ │ │ │ │ + str r9, [sp, #40] @ 0x28 │ │ │ │ │ + ldrd r8, [sp, #16] │ │ │ │ │ + ldr lr, [sp, #28] │ │ │ │ │ + add sp, sp, #32 │ │ │ │ │ b 0 │ │ │ │ │ R_ARM_JUMP24 fftw_mpi_plan_r2r │ │ │ │ │ │ │ │ │ │ -00000584 : │ │ │ │ │ +00000808 : │ │ │ │ │ fftw_mpi_plan_r2r_2d_f03(): │ │ │ │ │ - push {r4, r5, r6, r7, r8, r9, sl, lr} │ │ │ │ │ + strd r4, [sp, #-32]! @ 0xffffffe0 │ │ │ │ │ mov r4, r0 │ │ │ │ │ add r0, sp, #32 │ │ │ │ │ - ldm r0, {r0, r8, r9, sl} │ │ │ │ │ mov r5, r1 │ │ │ │ │ + strd r6, [sp, #8] │ │ │ │ │ mov r6, r2 │ │ │ │ │ + strd r8, [sp, #16] │ │ │ │ │ mov r7, r3 │ │ │ │ │ + str sl, [sp, #24] │ │ │ │ │ + ldm r0, {r0, r8, r9, sl} │ │ │ │ │ + str lr, [sp, #28] │ │ │ │ │ bl 0 │ │ │ │ │ R_ARM_CALL MPI_Comm_f2c │ │ │ │ │ + ldr lr, [sp, #28] │ │ │ │ │ mov r3, r7 │ │ │ │ │ mov r2, r6 │ │ │ │ │ mov r1, r5 │ │ │ │ │ - str sl, [sp, #44] @ 0x2c │ │ │ │ │ - str r9, [sp, #40] @ 0x28 │ │ │ │ │ - str r8, [sp, #36] @ 0x24 │ │ │ │ │ str r0, [sp, #32] │ │ │ │ │ mov r0, r4 │ │ │ │ │ - pop {r4, r5, r6, r7, r8, r9, sl, lr} │ │ │ │ │ + ldrd r4, [sp] │ │ │ │ │ + str r8, [sp, #36] @ 0x24 │ │ │ │ │ + ldrd r6, [sp, #8] │ │ │ │ │ + str r9, [sp, #40] @ 0x28 │ │ │ │ │ + ldrd r8, [sp, #16] │ │ │ │ │ + str sl, [sp, #44] @ 0x2c │ │ │ │ │ + ldr sl, [sp, #24] │ │ │ │ │ + add sp, sp, #32 │ │ │ │ │ b 0 │ │ │ │ │ R_ARM_JUMP24 fftw_mpi_plan_r2r_2d │ │ │ │ │ │ │ │ │ │ -000005cc : │ │ │ │ │ +00000874 : │ │ │ │ │ fftw_mpi_plan_r2r_3d_f03(): │ │ │ │ │ - push {r4, r5, r6, r7, r8, r9, sl, fp, lr} │ │ │ │ │ + strd r4, [sp, #-36]! @ 0xffffffdc │ │ │ │ │ + mov r5, r1 │ │ │ │ │ + strd r6, [sp, #8] │ │ │ │ │ + mov r6, r2 │ │ │ │ │ + mov r7, r3 │ │ │ │ │ + strd r8, [sp, #16] │ │ │ │ │ + strd sl, [sp, #24] │ │ │ │ │ + str lr, [sp, #32] │ │ │ │ │ sub sp, sp, #12 │ │ │ │ │ - str r0, [sp, #4] │ │ │ │ │ add r9, sp, #56 @ 0x38 │ │ │ │ │ + ldr r8, [sp, #48] @ 0x30 │ │ │ │ │ + str r0, [sp, #4] │ │ │ │ │ ldr r0, [sp, #52] @ 0x34 │ │ │ │ │ ldm r9, {r9, sl, fp} │ │ │ │ │ - ldr r8, [sp, #48] @ 0x30 │ │ │ │ │ ldr r4, [sp, #68] @ 0x44 │ │ │ │ │ - mov r5, r1 │ │ │ │ │ - mov r6, r2 │ │ │ │ │ - mov r7, r3 │ │ │ │ │ bl 0 │ │ │ │ │ R_ARM_CALL MPI_Comm_f2c │ │ │ │ │ mov r3, r7 │ │ │ │ │ mov r2, r6 │ │ │ │ │ - mov r1, r5 │ │ │ │ │ - str r4, [sp, #68] @ 0x44 │ │ │ │ │ - str fp, [sp, #64] @ 0x40 │ │ │ │ │ - str sl, [sp, #60] @ 0x3c │ │ │ │ │ - str r9, [sp, #56] @ 0x38 │ │ │ │ │ str r8, [sp, #48] @ 0x30 │ │ │ │ │ str r0, [sp, #52] @ 0x34 │ │ │ │ │ + mov r1, r5 │ │ │ │ │ ldr r0, [sp, #4] │ │ │ │ │ + str r9, [sp, #56] @ 0x38 │ │ │ │ │ + str sl, [sp, #60] @ 0x3c │ │ │ │ │ + str fp, [sp, #64] @ 0x40 │ │ │ │ │ + str r4, [sp, #68] @ 0x44 │ │ │ │ │ add sp, sp, #12 │ │ │ │ │ - pop {r4, r5, r6, r7, r8, r9, sl, fp, lr} │ │ │ │ │ + ldrd r4, [sp] │ │ │ │ │ + ldrd r6, [sp, #8] │ │ │ │ │ + ldrd r8, [sp, #16] │ │ │ │ │ + ldrd sl, [sp, #24] │ │ │ │ │ + ldr lr, [sp, #32] │ │ │ │ │ + add sp, sp, #36 @ 0x24 │ │ │ │ │ b 0 │ │ │ │ │ R_ARM_JUMP24 fftw_mpi_plan_r2r_3d │ │ │ │ │ │ │ │ │ │ -00000630 : │ │ │ │ │ +000008fc : │ │ │ │ │ fftw_mpi_plan_many_dft_r2c_f03(): │ │ │ │ │ - push {r4, r5, r6, r7, r8, r9, sl, fp, lr} │ │ │ │ │ - sub sp, sp, #4 │ │ │ │ │ + strd r4, [sp, #-36]! @ 0xffffffdc │ │ │ │ │ mov r4, r0 │ │ │ │ │ - ldr r0, [sp, #52] @ 0x34 │ │ │ │ │ - ldrd r8, [sp, #40] @ 0x28 │ │ │ │ │ - ldr sl, [sp, #48] @ 0x30 │ │ │ │ │ - ldr fp, [sp, #56] @ 0x38 │ │ │ │ │ mov r5, r1 │ │ │ │ │ + strd r6, [sp, #8] │ │ │ │ │ mov r6, r2 │ │ │ │ │ mov r7, r3 │ │ │ │ │ + strd r8, [sp, #16] │ │ │ │ │ + strd sl, [sp, #24] │ │ │ │ │ + str lr, [sp, #32] │ │ │ │ │ + sub sp, sp, #4 │ │ │ │ │ + ldrd r8, [sp, #40] @ 0x28 │ │ │ │ │ + ldr sl, [sp, #48] @ 0x30 │ │ │ │ │ + ldr r0, [sp, #52] @ 0x34 │ │ │ │ │ + ldr fp, [sp, #56] @ 0x38 │ │ │ │ │ bl 0 │ │ │ │ │ R_ARM_CALL MPI_Comm_f2c │ │ │ │ │ mov r3, r7 │ │ │ │ │ mov r2, r6 │ │ │ │ │ - mov r1, r5 │ │ │ │ │ - str fp, [sp, #56] @ 0x38 │ │ │ │ │ - str sl, [sp, #48] @ 0x30 │ │ │ │ │ - str r9, [sp, #44] @ 0x2c │ │ │ │ │ str r8, [sp, #40] @ 0x28 │ │ │ │ │ + mov r1, r5 │ │ │ │ │ str r0, [sp, #52] @ 0x34 │ │ │ │ │ mov r0, r4 │ │ │ │ │ + str r9, [sp, #44] @ 0x2c │ │ │ │ │ + str sl, [sp, #48] @ 0x30 │ │ │ │ │ + str fp, [sp, #56] @ 0x38 │ │ │ │ │ add sp, sp, #4 │ │ │ │ │ - pop {r4, r5, r6, r7, r8, r9, sl, fp, lr} │ │ │ │ │ + ldrd r4, [sp] │ │ │ │ │ + ldrd r6, [sp, #8] │ │ │ │ │ + ldrd r8, [sp, #16] │ │ │ │ │ + ldrd sl, [sp, #24] │ │ │ │ │ + ldr lr, [sp, #32] │ │ │ │ │ + add sp, sp, #36 @ 0x24 │ │ │ │ │ b 0 │ │ │ │ │ R_ARM_JUMP24 fftw_mpi_plan_many_dft_r2c │ │ │ │ │ │ │ │ │ │ -0000068c : │ │ │ │ │ +0000097c : │ │ │ │ │ fftw_mpi_plan_dft_r2c_f03(): │ │ │ │ │ - push {r4, r5, r6, r7, r8, lr} │ │ │ │ │ + strd r4, [sp, #-24]! @ 0xffffffe8 │ │ │ │ │ mov r4, r0 │ │ │ │ │ + mov r5, r1 │ │ │ │ │ ldr r0, [sp, #24] │ │ │ │ │ + str r8, [sp, #16] │ │ │ │ │ ldr r8, [sp, #28] │ │ │ │ │ - mov r5, r1 │ │ │ │ │ + strd r6, [sp, #8] │ │ │ │ │ mov r6, r2 │ │ │ │ │ mov r7, r3 │ │ │ │ │ + str lr, [sp, #20] │ │ │ │ │ bl 0 │ │ │ │ │ R_ARM_CALL MPI_Comm_f2c │ │ │ │ │ + ldr lr, [sp, #20] │ │ │ │ │ mov r3, r7 │ │ │ │ │ mov r2, r6 │ │ │ │ │ mov r1, r5 │ │ │ │ │ - str r8, [sp, #28] │ │ │ │ │ str r0, [sp, #24] │ │ │ │ │ mov r0, r4 │ │ │ │ │ - pop {r4, r5, r6, r7, r8, lr} │ │ │ │ │ + ldrd r4, [sp] │ │ │ │ │ + str r8, [sp, #28] │ │ │ │ │ + ldrd r6, [sp, #8] │ │ │ │ │ + ldr r8, [sp, #16] │ │ │ │ │ + add sp, sp, #24 │ │ │ │ │ b 0 │ │ │ │ │ R_ARM_JUMP24 fftw_mpi_plan_dft_r2c │ │ │ │ │ │ │ │ │ │ -000006cc : │ │ │ │ │ +000009d8 : │ │ │ │ │ fftw_mpi_plan_dft_r2c_2d_f03(): │ │ │ │ │ - push {r4, r5, r6, r7, r8, lr} │ │ │ │ │ + strd r4, [sp, #-24]! @ 0xffffffe8 │ │ │ │ │ mov r4, r0 │ │ │ │ │ + mov r5, r1 │ │ │ │ │ ldr r0, [sp, #24] │ │ │ │ │ + str r8, [sp, #16] │ │ │ │ │ ldr r8, [sp, #28] │ │ │ │ │ - mov r5, r1 │ │ │ │ │ + strd r6, [sp, #8] │ │ │ │ │ mov r6, r2 │ │ │ │ │ mov r7, r3 │ │ │ │ │ + str lr, [sp, #20] │ │ │ │ │ bl 0 │ │ │ │ │ R_ARM_CALL MPI_Comm_f2c │ │ │ │ │ + ldr lr, [sp, #20] │ │ │ │ │ mov r3, r7 │ │ │ │ │ mov r2, r6 │ │ │ │ │ mov r1, r5 │ │ │ │ │ - str r8, [sp, #28] │ │ │ │ │ str r0, [sp, #24] │ │ │ │ │ mov r0, r4 │ │ │ │ │ - pop {r4, r5, r6, r7, r8, lr} │ │ │ │ │ + ldrd r4, [sp] │ │ │ │ │ + str r8, [sp, #28] │ │ │ │ │ + ldrd r6, [sp, #8] │ │ │ │ │ + ldr r8, [sp, #16] │ │ │ │ │ + add sp, sp, #24 │ │ │ │ │ b 0 │ │ │ │ │ R_ARM_JUMP24 fftw_mpi_plan_dft_r2c_2d │ │ │ │ │ │ │ │ │ │ -0000070c : │ │ │ │ │ +00000a34 : │ │ │ │ │ fftw_mpi_plan_dft_r2c_3d_f03(): │ │ │ │ │ - push {r4, r5, r6, r7, r8, r9, sl, lr} │ │ │ │ │ + strd r4, [sp, #-32]! @ 0xffffffe0 │ │ │ │ │ mov r4, r0 │ │ │ │ │ + mov r5, r1 │ │ │ │ │ ldr r0, [sp, #36] @ 0x24 │ │ │ │ │ + strd r8, [sp, #16] │ │ │ │ │ ldr r8, [sp, #32] │ │ │ │ │ - ldr r9, [sp, #40] @ 0x28 │ │ │ │ │ - mov r5, r1 │ │ │ │ │ + strd r6, [sp, #8] │ │ │ │ │ mov r6, r2 │ │ │ │ │ mov r7, r3 │ │ │ │ │ + ldr r9, [sp, #40] @ 0x28 │ │ │ │ │ + str sl, [sp, #24] │ │ │ │ │ + str lr, [sp, #28] │ │ │ │ │ bl 0 │ │ │ │ │ R_ARM_CALL MPI_Comm_f2c │ │ │ │ │ + ldr sl, [sp, #24] │ │ │ │ │ mov r3, r7 │ │ │ │ │ mov r2, r6 │ │ │ │ │ mov r1, r5 │ │ │ │ │ - str r9, [sp, #40] @ 0x28 │ │ │ │ │ str r8, [sp, #32] │ │ │ │ │ + ldrd r6, [sp, #8] │ │ │ │ │ str r0, [sp, #36] @ 0x24 │ │ │ │ │ mov r0, r4 │ │ │ │ │ - pop {r4, r5, r6, r7, r8, r9, sl, lr} │ │ │ │ │ + ldrd r4, [sp] │ │ │ │ │ + str r9, [sp, #40] @ 0x28 │ │ │ │ │ + ldrd r8, [sp, #16] │ │ │ │ │ + ldr lr, [sp, #28] │ │ │ │ │ + add sp, sp, #32 │ │ │ │ │ b 0 │ │ │ │ │ R_ARM_JUMP24 fftw_mpi_plan_dft_r2c_3d │ │ │ │ │ │ │ │ │ │ -00000754 : │ │ │ │ │ +00000aa0 : │ │ │ │ │ fftw_mpi_plan_many_dft_c2r_f03(): │ │ │ │ │ - push {r4, r5, r6, r7, r8, r9, sl, fp, lr} │ │ │ │ │ - sub sp, sp, #4 │ │ │ │ │ + strd r4, [sp, #-36]! @ 0xffffffdc │ │ │ │ │ mov r4, r0 │ │ │ │ │ - ldr r0, [sp, #52] @ 0x34 │ │ │ │ │ - ldrd r8, [sp, #40] @ 0x28 │ │ │ │ │ - ldr sl, [sp, #48] @ 0x30 │ │ │ │ │ - ldr fp, [sp, #56] @ 0x38 │ │ │ │ │ mov r5, r1 │ │ │ │ │ + strd r6, [sp, #8] │ │ │ │ │ mov r6, r2 │ │ │ │ │ mov r7, r3 │ │ │ │ │ + strd r8, [sp, #16] │ │ │ │ │ + strd sl, [sp, #24] │ │ │ │ │ + str lr, [sp, #32] │ │ │ │ │ + sub sp, sp, #4 │ │ │ │ │ + ldrd r8, [sp, #40] @ 0x28 │ │ │ │ │ + ldr sl, [sp, #48] @ 0x30 │ │ │ │ │ + ldr r0, [sp, #52] @ 0x34 │ │ │ │ │ + ldr fp, [sp, #56] @ 0x38 │ │ │ │ │ bl 0 │ │ │ │ │ R_ARM_CALL MPI_Comm_f2c │ │ │ │ │ mov r3, r7 │ │ │ │ │ mov r2, r6 │ │ │ │ │ - mov r1, r5 │ │ │ │ │ - str fp, [sp, #56] @ 0x38 │ │ │ │ │ - str sl, [sp, #48] @ 0x30 │ │ │ │ │ - str r9, [sp, #44] @ 0x2c │ │ │ │ │ str r8, [sp, #40] @ 0x28 │ │ │ │ │ + mov r1, r5 │ │ │ │ │ str r0, [sp, #52] @ 0x34 │ │ │ │ │ mov r0, r4 │ │ │ │ │ + str r9, [sp, #44] @ 0x2c │ │ │ │ │ + str sl, [sp, #48] @ 0x30 │ │ │ │ │ + str fp, [sp, #56] @ 0x38 │ │ │ │ │ add sp, sp, #4 │ │ │ │ │ - pop {r4, r5, r6, r7, r8, r9, sl, fp, lr} │ │ │ │ │ + ldrd r4, [sp] │ │ │ │ │ + ldrd r6, [sp, #8] │ │ │ │ │ + ldrd r8, [sp, #16] │ │ │ │ │ + ldrd sl, [sp, #24] │ │ │ │ │ + ldr lr, [sp, #32] │ │ │ │ │ + add sp, sp, #36 @ 0x24 │ │ │ │ │ b 0 │ │ │ │ │ R_ARM_JUMP24 fftw_mpi_plan_many_dft_c2r │ │ │ │ │ │ │ │ │ │ -000007b0 : │ │ │ │ │ +00000b20 : │ │ │ │ │ fftw_mpi_plan_dft_c2r_f03(): │ │ │ │ │ - push {r4, r5, r6, r7, r8, lr} │ │ │ │ │ + strd r4, [sp, #-24]! @ 0xffffffe8 │ │ │ │ │ mov r4, r0 │ │ │ │ │ + mov r5, r1 │ │ │ │ │ ldr r0, [sp, #24] │ │ │ │ │ + str r8, [sp, #16] │ │ │ │ │ ldr r8, [sp, #28] │ │ │ │ │ - mov r5, r1 │ │ │ │ │ + strd r6, [sp, #8] │ │ │ │ │ mov r6, r2 │ │ │ │ │ mov r7, r3 │ │ │ │ │ + str lr, [sp, #20] │ │ │ │ │ bl 0 │ │ │ │ │ R_ARM_CALL MPI_Comm_f2c │ │ │ │ │ + ldr lr, [sp, #20] │ │ │ │ │ mov r3, r7 │ │ │ │ │ mov r2, r6 │ │ │ │ │ mov r1, r5 │ │ │ │ │ - str r8, [sp, #28] │ │ │ │ │ str r0, [sp, #24] │ │ │ │ │ mov r0, r4 │ │ │ │ │ - pop {r4, r5, r6, r7, r8, lr} │ │ │ │ │ + ldrd r4, [sp] │ │ │ │ │ + str r8, [sp, #28] │ │ │ │ │ + ldrd r6, [sp, #8] │ │ │ │ │ + ldr r8, [sp, #16] │ │ │ │ │ + add sp, sp, #24 │ │ │ │ │ b 0 │ │ │ │ │ R_ARM_JUMP24 fftw_mpi_plan_dft_c2r │ │ │ │ │ │ │ │ │ │ -000007f0 : │ │ │ │ │ +00000b7c : │ │ │ │ │ fftw_mpi_plan_dft_c2r_2d_f03(): │ │ │ │ │ - push {r4, r5, r6, r7, r8, lr} │ │ │ │ │ + strd r4, [sp, #-24]! @ 0xffffffe8 │ │ │ │ │ mov r4, r0 │ │ │ │ │ + mov r5, r1 │ │ │ │ │ ldr r0, [sp, #24] │ │ │ │ │ + str r8, [sp, #16] │ │ │ │ │ ldr r8, [sp, #28] │ │ │ │ │ - mov r5, r1 │ │ │ │ │ + strd r6, [sp, #8] │ │ │ │ │ mov r6, r2 │ │ │ │ │ mov r7, r3 │ │ │ │ │ + str lr, [sp, #20] │ │ │ │ │ bl 0 │ │ │ │ │ R_ARM_CALL MPI_Comm_f2c │ │ │ │ │ + ldr lr, [sp, #20] │ │ │ │ │ mov r3, r7 │ │ │ │ │ mov r2, r6 │ │ │ │ │ mov r1, r5 │ │ │ │ │ - str r8, [sp, #28] │ │ │ │ │ str r0, [sp, #24] │ │ │ │ │ mov r0, r4 │ │ │ │ │ - pop {r4, r5, r6, r7, r8, lr} │ │ │ │ │ + ldrd r4, [sp] │ │ │ │ │ + str r8, [sp, #28] │ │ │ │ │ + ldrd r6, [sp, #8] │ │ │ │ │ + ldr r8, [sp, #16] │ │ │ │ │ + add sp, sp, #24 │ │ │ │ │ b 0 │ │ │ │ │ R_ARM_JUMP24 fftw_mpi_plan_dft_c2r_2d │ │ │ │ │ │ │ │ │ │ -00000830 : │ │ │ │ │ +00000bd8 : │ │ │ │ │ fftw_mpi_plan_dft_c2r_3d_f03(): │ │ │ │ │ - push {r4, r5, r6, r7, r8, r9, sl, lr} │ │ │ │ │ + strd r4, [sp, #-32]! @ 0xffffffe0 │ │ │ │ │ mov r4, r0 │ │ │ │ │ + mov r5, r1 │ │ │ │ │ ldr r0, [sp, #36] @ 0x24 │ │ │ │ │ + strd r8, [sp, #16] │ │ │ │ │ ldr r8, [sp, #32] │ │ │ │ │ - ldr r9, [sp, #40] @ 0x28 │ │ │ │ │ - mov r5, r1 │ │ │ │ │ + strd r6, [sp, #8] │ │ │ │ │ mov r6, r2 │ │ │ │ │ mov r7, r3 │ │ │ │ │ + ldr r9, [sp, #40] @ 0x28 │ │ │ │ │ + str sl, [sp, #24] │ │ │ │ │ + str lr, [sp, #28] │ │ │ │ │ bl 0 │ │ │ │ │ R_ARM_CALL MPI_Comm_f2c │ │ │ │ │ + ldr sl, [sp, #24] │ │ │ │ │ mov r3, r7 │ │ │ │ │ mov r2, r6 │ │ │ │ │ mov r1, r5 │ │ │ │ │ - str r9, [sp, #40] @ 0x28 │ │ │ │ │ str r8, [sp, #32] │ │ │ │ │ + ldrd r6, [sp, #8] │ │ │ │ │ str r0, [sp, #36] @ 0x24 │ │ │ │ │ mov r0, r4 │ │ │ │ │ - pop {r4, r5, r6, r7, r8, r9, sl, lr} │ │ │ │ │ + ldrd r4, [sp] │ │ │ │ │ + str r9, [sp, #40] @ 0x28 │ │ │ │ │ + ldrd r8, [sp, #16] │ │ │ │ │ + ldr lr, [sp, #28] │ │ │ │ │ + add sp, sp, #32 │ │ │ │ │ b 0 │ │ │ │ │ R_ARM_JUMP24 fftw_mpi_plan_dft_c2r_3d │ │ │ │ │ │ │ │ │ │ -00000878 : │ │ │ │ │ +00000c44 : │ │ │ │ │ fftw_mpi_gather_wisdom_f03(): │ │ │ │ │ - push {r4, lr} │ │ │ │ │ + str r4, [sp, #-8]! │ │ │ │ │ + str lr, [sp, #4] │ │ │ │ │ bl 0 │ │ │ │ │ R_ARM_CALL MPI_Comm_f2c │ │ │ │ │ - pop {r4, lr} │ │ │ │ │ + ldr r4, [sp] │ │ │ │ │ + ldr lr, [sp, #4] │ │ │ │ │ + add sp, sp, #8 │ │ │ │ │ b 0 │ │ │ │ │ R_ARM_JUMP24 fftw_mpi_gather_wisdom │ │ │ │ │ │ │ │ │ │ -00000888 : │ │ │ │ │ +00000c60 : │ │ │ │ │ fftw_mpi_broadcast_wisdom_f03(): │ │ │ │ │ - push {r4, lr} │ │ │ │ │ + str r4, [sp, #-8]! │ │ │ │ │ + str lr, [sp, #4] │ │ │ │ │ bl 0 │ │ │ │ │ R_ARM_CALL MPI_Comm_f2c │ │ │ │ │ - pop {r4, lr} │ │ │ │ │ + ldr r4, [sp] │ │ │ │ │ + ldr lr, [sp, #4] │ │ │ │ │ + add sp, sp, #8 │ │ │ │ │ b 0 │ │ │ │ │ R_ARM_JUMP24 fftw_mpi_broadcast_wisdom │ │ │ ├── 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: 3816 (bytes into file) │ │ │ │ │ + Start of section headers: 3952 (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 0xee8: │ │ │ │ │ +There are 15 section headers, starting at offset 0xf70: │ │ │ │ │ │ │ │ │ │ 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 0006fc 00 AX 0 0 4 │ │ │ │ │ - [ 2] .rel.text REL 00000000 000ca8 000190 08 I 12 1 4 │ │ │ │ │ - [ 3] .data PROGBITS 00000000 000730 000000 00 WA 0 0 1 │ │ │ │ │ - [ 4] .bss NOBITS 00000000 000730 000000 00 WA 0 0 1 │ │ │ │ │ - [ 5] .rodata.str1.4 PROGBITS 00000000 000730 00003b 01 AMS 0 0 4 │ │ │ │ │ - [ 6] .data.rel.ro PROGBITS 00000000 00076b 000010 00 WA 0 0 4 │ │ │ │ │ - [ 7] .rel.data.rel.ro REL 00000000 000e38 000020 08 I 12 6 4 │ │ │ │ │ - [ 8] .data.rel.ro.local PROGBITS 00000000 00077b 00000c 00 WA 0 0 4 │ │ │ │ │ - [ 9] .rel.data.rel.ro.local REL 00000000 000e58 000008 08 I 12 8 4 │ │ │ │ │ - [10] .note.GNU-stack PROGBITS 00000000 000787 000000 00 0 0 1 │ │ │ │ │ - [11] .ARM.attributes ARM_ATTRIBUTES 00000000 000787 00002b 00 0 0 1 │ │ │ │ │ - [12] .symtab SYMTAB 00000000 0007b4 000300 10 13 24 4 │ │ │ │ │ - [13] .strtab STRTAB 00000000 000ab4 0001f2 00 0 0 1 │ │ │ │ │ - [14] .shstrtab STRTAB 00000000 000e60 000087 00 0 0 1 │ │ │ │ │ + [ 1] .text PROGBITS 00000000 000034 000784 00 AX 0 0 4 │ │ │ │ │ + [ 2] .rel.text REL 00000000 000d30 000190 08 I 12 1 4 │ │ │ │ │ + [ 3] .data PROGBITS 00000000 0007b8 000000 00 WA 0 0 1 │ │ │ │ │ + [ 4] .bss NOBITS 00000000 0007b8 000000 00 WA 0 0 1 │ │ │ │ │ + [ 5] .rodata.str1.4 PROGBITS 00000000 0007b8 00003b 01 AMS 0 0 4 │ │ │ │ │ + [ 6] .data.rel.ro PROGBITS 00000000 0007f3 000010 00 WA 0 0 4 │ │ │ │ │ + [ 7] .rel.data.rel.ro REL 00000000 000ec0 000020 08 I 12 6 4 │ │ │ │ │ + [ 8] .data.rel.ro.local PROGBITS 00000000 000803 00000c 00 WA 0 0 4 │ │ │ │ │ + [ 9] .rel.data.rel.ro.local REL 00000000 000ee0 000008 08 I 12 8 4 │ │ │ │ │ + [10] .note.GNU-stack PROGBITS 00000000 00080f 000000 00 0 0 1 │ │ │ │ │ + [11] .ARM.attributes ARM_ATTRIBUTES 00000000 00080f 00002b 00 0 0 1 │ │ │ │ │ + [12] .symtab SYMTAB 00000000 00083c 000300 10 13 24 4 │ │ │ │ │ + [13] .strtab STRTAB 00000000 000b3c 0001f2 00 0 0 1 │ │ │ │ │ + [14] .shstrtab STRTAB 00000000 000ee8 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 {} │ │ │ │ │ @@ -3,26 +3,26 @@ │ │ │ │ │ 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: 00000000 0 NOTYPE LOCAL DEFAULT 1 $a │ │ │ │ │ - 6: 00000000 112 FUNC LOCAL DEFAULT 1 print │ │ │ │ │ - 7: 00000064 0 NOTYPE LOCAL DEFAULT 1 $d │ │ │ │ │ - 8: 00000070 0 NOTYPE LOCAL DEFAULT 1 $a │ │ │ │ │ - 9: 00000070 1108 FUNC LOCAL DEFAULT 1 mkplan │ │ │ │ │ - 10: 000004bc 0 NOTYPE LOCAL DEFAULT 1 $d │ │ │ │ │ - 11: 000004c4 360 FUNC LOCAL DEFAULT 1 apply │ │ │ │ │ - 12: 000004c4 0 NOTYPE LOCAL DEFAULT 1 $a │ │ │ │ │ - 13: 00000628 0 NOTYPE LOCAL DEFAULT 1 $d │ │ │ │ │ - 14: 0000062c 0 NOTYPE LOCAL DEFAULT 1 $a │ │ │ │ │ - 15: 0000062c 60 FUNC LOCAL DEFAULT 1 destroy │ │ │ │ │ - 16: 00000668 60 FUNC LOCAL DEFAULT 1 awake │ │ │ │ │ - 17: 000006f8 0 NOTYPE LOCAL DEFAULT 1 $d │ │ │ │ │ + 6: 00000000 124 FUNC LOCAL DEFAULT 1 print │ │ │ │ │ + 7: 00000070 0 NOTYPE LOCAL DEFAULT 1 $d │ │ │ │ │ + 8: 0000007c 0 NOTYPE LOCAL DEFAULT 1 $a │ │ │ │ │ + 9: 0000007c 1148 FUNC LOCAL DEFAULT 1 mkplan │ │ │ │ │ + 10: 000004f0 0 NOTYPE LOCAL DEFAULT 1 $d │ │ │ │ │ + 11: 000004f8 392 FUNC LOCAL DEFAULT 1 apply │ │ │ │ │ + 12: 000004f8 0 NOTYPE LOCAL DEFAULT 1 $a │ │ │ │ │ + 13: 0000067c 0 NOTYPE LOCAL DEFAULT 1 $d │ │ │ │ │ + 14: 00000680 0 NOTYPE LOCAL DEFAULT 1 $a │ │ │ │ │ + 15: 00000680 72 FUNC LOCAL DEFAULT 1 destroy │ │ │ │ │ + 16: 000006c8 80 FUNC LOCAL DEFAULT 1 awake │ │ │ │ │ + 17: 00000780 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 MPI_Comm_rank │ │ │ │ │ @@ -41,11 +41,11 @@ │ │ │ │ │ 37: 00000000 0 NOTYPE GLOBAL DEFAULT UND fftw_mkplan_f_d │ │ │ │ │ 38: 00000000 0 NOTYPE GLOBAL DEFAULT UND fftw_mktensor_1d │ │ │ │ │ 39: 00000000 0 NOTYPE GLOBAL DEFAULT UND MPI_Alltoallv │ │ │ │ │ 40: 00000000 0 NOTYPE GLOBAL DEFAULT UND MPI_Alltoall │ │ │ │ │ 41: 00000000 0 NOTYPE GLOBAL DEFAULT UND fftw_ifree0 │ │ │ │ │ 42: 00000000 0 NOTYPE GLOBAL DEFAULT UND MPI_Comm_free │ │ │ │ │ 43: 00000000 0 NOTYPE GLOBAL DEFAULT UND fftw_plan_awake │ │ │ │ │ - 44: 000006a4 88 FUNC GLOBAL DEFAULT 1 fftw_mpi_transpose_alltoall_register │ │ │ │ │ + 44: 00000718 108 FUNC GLOBAL DEFAULT 1 fftw_mpi_transpose_alltoall_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_transpose_solve │ │ │ │ ├── readelf --wide --relocs {} │ │ │ │ │ @@ -1,64 +1,64 @@ │ │ │ │ │ │ │ │ │ │ -Relocation section '.rel.text' at offset 0xca8 contains 50 entries: │ │ │ │ │ +Relocation section '.rel.text' at offset 0xd30 contains 50 entries: │ │ │ │ │ Offset Info Type Sym. Value Symbol's Name │ │ │ │ │ -00000064 00000203 R_ARM_REL32 00000000 .LC0 │ │ │ │ │ -00000068 00000403 R_ARM_REL32 00000008 .LC2 │ │ │ │ │ -0000006c 00000303 R_ARM_REL32 00000004 .LC1 │ │ │ │ │ -00000100 0000181c R_ARM_CALL 00000000 MPI_Comm_rank │ │ │ │ │ -0000010c 0000191c R_ARM_CALL 00000000 MPI_Comm_size │ │ │ │ │ -0000011c 00001a1c R_ARM_CALL 00000000 fftw_mpi_block │ │ │ │ │ -00000184 00001b1c R_ARM_CALL 00000000 fftw_mpi_mkplans_posttranspose │ │ │ │ │ -00000194 00001c1c R_ARM_CALL 00000000 fftw_mpi_any_true │ │ │ │ │ -000001b4 00001d1c R_ARM_CALL 00000000 fftw_mkplan_rdft │ │ │ │ │ -000001f4 00001e1c R_ARM_CALL 00000000 MPI_Comm_dup │ │ │ │ │ -00000200 00001f1c R_ARM_CALL 00000000 fftw_malloc_plain │ │ │ │ │ -00000234 00001a1c R_ARM_CALL 00000000 fftw_mpi_block │ │ │ │ │ -00000248 00001a1c R_ARM_CALL 00000000 fftw_mpi_block │ │ │ │ │ -00000294 00001a1c R_ARM_CALL 00000000 fftw_mpi_block │ │ │ │ │ -000002a8 00001a1c R_ARM_CALL 00000000 fftw_mpi_block │ │ │ │ │ -00000368 0000201c R_ARM_CALL 00000000 fftw_ops_zero │ │ │ │ │ -00000380 0000211c R_ARM_CALL 00000000 fftw_ops_add2 │ │ │ │ │ -00000398 0000211c R_ARM_CALL 00000000 fftw_ops_add2 │ │ │ │ │ -000003b0 0000211c R_ARM_CALL 00000000 fftw_ops_add2 │ │ │ │ │ -000003c8 0000211c R_ARM_CALL 00000000 fftw_ops_add2 │ │ │ │ │ -000003dc 0000221c R_ARM_CALL 00000000 fftw_plan_destroy_internal │ │ │ │ │ -000003e4 0000221c R_ARM_CALL 00000000 fftw_plan_destroy_internal │ │ │ │ │ -000003ec 0000221c R_ARM_CALL 00000000 fftw_plan_destroy_internal │ │ │ │ │ -000003f4 0000221c R_ARM_CALL 00000000 fftw_plan_destroy_internal │ │ │ │ │ -00000424 0000231c R_ARM_CALL 00000000 fftw_mktensor_3d │ │ │ │ │ -00000434 0000241c R_ARM_CALL 00000000 fftw_mkproblem_rdft_0_d │ │ │ │ │ -00000450 0000251c R_ARM_CALL 00000000 fftw_mkplan_f_d │ │ │ │ │ -00000464 00001c1c R_ARM_CALL 00000000 fftw_mpi_any_true │ │ │ │ │ -0000048c 0000261c R_ARM_CALL 00000000 fftw_mktensor_1d │ │ │ │ │ -0000049c 0000241c R_ARM_CALL 00000000 fftw_mkproblem_rdft_0_d │ │ │ │ │ -000004c0 00001203 R_ARM_REL32 00000000 .data.rel.ro │ │ │ │ │ -00000524 0000271c R_ARM_CALL 00000000 MPI_Alltoallv │ │ │ │ │ -000005a8 0000281c R_ARM_CALL 00000000 MPI_Alltoall │ │ │ │ │ -000005f8 0000271c R_ARM_CALL 00000000 MPI_Alltoallv │ │ │ │ │ -00000620 0000281c R_ARM_CALL 00000000 MPI_Alltoall │ │ │ │ │ -00000638 0000291c R_ARM_CALL 00000000 fftw_ifree0 │ │ │ │ │ -00000640 00002a1c R_ARM_CALL 00000000 MPI_Comm_free │ │ │ │ │ -00000648 0000221c R_ARM_CALL 00000000 fftw_plan_destroy_internal │ │ │ │ │ -00000650 0000221c R_ARM_CALL 00000000 fftw_plan_destroy_internal │ │ │ │ │ -00000658 0000221c R_ARM_CALL 00000000 fftw_plan_destroy_internal │ │ │ │ │ -00000664 0000221d R_ARM_JUMP24 00000000 fftw_plan_destroy_internal │ │ │ │ │ -00000678 00002b1c R_ARM_CALL 00000000 fftw_plan_awake │ │ │ │ │ -00000684 00002b1c R_ARM_CALL 00000000 fftw_plan_awake │ │ │ │ │ -00000690 00002b1c R_ARM_CALL 00000000 fftw_plan_awake │ │ │ │ │ -000006a0 00002b1d R_ARM_JUMP24 00000000 fftw_plan_awake │ │ │ │ │ -000006bc 00002d1c R_ARM_CALL 00000000 fftw_mksolver │ │ │ │ │ -000006d0 00002e1c R_ARM_CALL 00000000 fftw_solver_register │ │ │ │ │ -000006dc 00002d1c R_ARM_CALL 00000000 fftw_mksolver │ │ │ │ │ -000006f4 00002e1d R_ARM_JUMP24 00000000 fftw_solver_register │ │ │ │ │ -000006f8 00001503 R_ARM_REL32 00000000 .data.rel.ro.local │ │ │ │ │ +00000070 00000203 R_ARM_REL32 00000000 .LC0 │ │ │ │ │ +00000074 00000403 R_ARM_REL32 00000008 .LC2 │ │ │ │ │ +00000078 00000303 R_ARM_REL32 00000004 .LC1 │ │ │ │ │ +00000130 0000181c R_ARM_CALL 00000000 MPI_Comm_rank │ │ │ │ │ +0000013c 0000191c R_ARM_CALL 00000000 MPI_Comm_size │ │ │ │ │ +0000014c 00001a1c R_ARM_CALL 00000000 fftw_mpi_block │ │ │ │ │ +000001b4 00001b1c R_ARM_CALL 00000000 fftw_mpi_mkplans_posttranspose │ │ │ │ │ +000001c4 00001c1c R_ARM_CALL 00000000 fftw_mpi_any_true │ │ │ │ │ +000001e4 00001d1c R_ARM_CALL 00000000 fftw_mkplan_rdft │ │ │ │ │ +00000224 00001e1c R_ARM_CALL 00000000 MPI_Comm_dup │ │ │ │ │ +00000230 00001f1c R_ARM_CALL 00000000 fftw_malloc_plain │ │ │ │ │ +00000268 00001a1c R_ARM_CALL 00000000 fftw_mpi_block │ │ │ │ │ +0000027c 00001a1c R_ARM_CALL 00000000 fftw_mpi_block │ │ │ │ │ +000002cc 00001a1c R_ARM_CALL 00000000 fftw_mpi_block │ │ │ │ │ +000002e0 00001a1c R_ARM_CALL 00000000 fftw_mpi_block │ │ │ │ │ +000003a0 0000201c R_ARM_CALL 00000000 fftw_ops_zero │ │ │ │ │ +000003b8 0000211c R_ARM_CALL 00000000 fftw_ops_add2 │ │ │ │ │ +000003d0 0000211c R_ARM_CALL 00000000 fftw_ops_add2 │ │ │ │ │ +000003e8 0000211c R_ARM_CALL 00000000 fftw_ops_add2 │ │ │ │ │ +00000400 0000211c R_ARM_CALL 00000000 fftw_ops_add2 │ │ │ │ │ +00000410 0000221c R_ARM_CALL 00000000 fftw_plan_destroy_internal │ │ │ │ │ +00000418 0000221c R_ARM_CALL 00000000 fftw_plan_destroy_internal │ │ │ │ │ +00000420 0000221c R_ARM_CALL 00000000 fftw_plan_destroy_internal │ │ │ │ │ +00000428 0000221c R_ARM_CALL 00000000 fftw_plan_destroy_internal │ │ │ │ │ +00000458 0000231c R_ARM_CALL 00000000 fftw_mktensor_3d │ │ │ │ │ +00000468 0000241c R_ARM_CALL 00000000 fftw_mkproblem_rdft_0_d │ │ │ │ │ +00000484 0000251c R_ARM_CALL 00000000 fftw_mkplan_f_d │ │ │ │ │ +00000498 00001c1c R_ARM_CALL 00000000 fftw_mpi_any_true │ │ │ │ │ +000004c0 0000261c R_ARM_CALL 00000000 fftw_mktensor_1d │ │ │ │ │ +000004d0 0000241c R_ARM_CALL 00000000 fftw_mkproblem_rdft_0_d │ │ │ │ │ +000004f4 00001203 R_ARM_REL32 00000000 .data.rel.ro │ │ │ │ │ +00000560 0000271c R_ARM_CALL 00000000 MPI_Alltoallv │ │ │ │ │ +000005f0 0000281c R_ARM_CALL 00000000 MPI_Alltoall │ │ │ │ │ +0000064c 0000271c R_ARM_CALL 00000000 MPI_Alltoallv │ │ │ │ │ +00000674 0000281c R_ARM_CALL 00000000 MPI_Alltoall │ │ │ │ │ +00000690 0000291c R_ARM_CALL 00000000 fftw_ifree0 │ │ │ │ │ +00000698 00002a1c R_ARM_CALL 00000000 MPI_Comm_free │ │ │ │ │ +000006a0 0000221c R_ARM_CALL 00000000 fftw_plan_destroy_internal │ │ │ │ │ +000006a8 0000221c R_ARM_CALL 00000000 fftw_plan_destroy_internal │ │ │ │ │ +000006b0 0000221c R_ARM_CALL 00000000 fftw_plan_destroy_internal │ │ │ │ │ +000006c4 0000221d R_ARM_JUMP24 00000000 fftw_plan_destroy_internal │ │ │ │ │ +000006e0 00002b1c R_ARM_CALL 00000000 fftw_plan_awake │ │ │ │ │ +000006ec 00002b1c R_ARM_CALL 00000000 fftw_plan_awake │ │ │ │ │ +000006f8 00002b1c R_ARM_CALL 00000000 fftw_plan_awake │ │ │ │ │ +00000714 00002b1d R_ARM_JUMP24 00000000 fftw_plan_awake │ │ │ │ │ +00000738 00002d1c R_ARM_CALL 00000000 fftw_mksolver │ │ │ │ │ +0000074c 00002e1c R_ARM_CALL 00000000 fftw_solver_register │ │ │ │ │ +00000758 00002d1c R_ARM_CALL 00000000 fftw_mksolver │ │ │ │ │ +0000077c 00002e1d R_ARM_JUMP24 00000000 fftw_solver_register │ │ │ │ │ +00000780 00001503 R_ARM_REL32 00000000 .data.rel.ro.local │ │ │ │ │ │ │ │ │ │ -Relocation section '.rel.data.rel.ro' at offset 0xe38 contains 4 entries: │ │ │ │ │ +Relocation section '.rel.data.rel.ro' at offset 0xec0 contains 4 entries: │ │ │ │ │ Offset Info Type Sym. Value Symbol's Name │ │ │ │ │ 00000000 00002f02 R_ARM_ABS32 00000000 fftw_mpi_transpose_solve │ │ │ │ │ -00000004 00001002 R_ARM_ABS32 00000668 awake │ │ │ │ │ +00000004 00001002 R_ARM_ABS32 000006c8 awake │ │ │ │ │ 00000008 00000602 R_ARM_ABS32 00000000 print │ │ │ │ │ -0000000c 00000f02 R_ARM_ABS32 0000062c destroy │ │ │ │ │ +0000000c 00000f02 R_ARM_ABS32 00000680 destroy │ │ │ │ │ │ │ │ │ │ -Relocation section '.rel.data.rel.ro.local' at offset 0xe58 contains 1 entry: │ │ │ │ │ +Relocation section '.rel.data.rel.ro.local' at offset 0xee0 contains 1 entry: │ │ │ │ │ Offset Info Type Sym. Value Symbol's Name │ │ │ │ │ -00000004 00000902 R_ARM_ABS32 00000070 mkplan │ │ │ │ │ +00000004 00000902 R_ARM_ABS32 0000007c mkplan │ │ │ │ ├── objdump --line-numbers --disassemble --demangle --reloc --no-show-raw-insn --section=.text {} │ │ │ │ │ @@ -2,518 +2,552 @@ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ Disassembly of section .text: │ │ │ │ │ │ │ │ │ │ 00000000 : │ │ │ │ │ print(): │ │ │ │ │ mov r3, r0 │ │ │ │ │ + mov r0, r1 │ │ │ │ │ + str r4, [sp, #-8]! │ │ │ │ │ ldr r2, [r3, #108] @ 0x6c │ │ │ │ │ - push {r4, lr} │ │ │ │ │ - cmp r2, #0 │ │ │ │ │ - ldr r4, [r1] │ │ │ │ │ + str lr, [sp, #4] │ │ │ │ │ sub sp, sp, #16 │ │ │ │ │ - mov r0, r1 │ │ │ │ │ - beq 58 │ │ │ │ │ - ldr r2, [pc, #60] @ 64 │ │ │ │ │ + ldr r4, [r1] │ │ │ │ │ + cmp r2, #0 │ │ │ │ │ + beq 64 │ │ │ │ │ + ldr r2, [pc, #68] @ 70 │ │ │ │ │ add r2, pc, r2 │ │ │ │ │ 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] │ │ │ │ │ - ldr r1, [pc, #32] @ 68 │ │ │ │ │ + ldr r1, [pc, #40] @ 74 │ │ │ │ │ ldr r3, [r3, #64] @ 0x40 │ │ │ │ │ add r1, pc, r1 │ │ │ │ │ blx r4 │ │ │ │ │ add sp, sp, #16 │ │ │ │ │ - pop {r4, pc} │ │ │ │ │ - ldr r2, [pc, #12] @ 6c │ │ │ │ │ + ldr r4, [sp] │ │ │ │ │ + add sp, sp, #4 │ │ │ │ │ + pop {pc} @ (ldr pc, [sp], #4) │ │ │ │ │ + ldr r2, [pc, #12] @ 78 │ │ │ │ │ add r2, pc, r2 │ │ │ │ │ - b 28 │ │ │ │ │ - .word 0x00000038 │ │ │ │ │ + b 2c │ │ │ │ │ + .word 0x00000040 │ │ │ │ │ R_ARM_REL32 .LC0 │ │ │ │ │ - .word 0x00000018 │ │ │ │ │ + .word 0x00000020 │ │ │ │ │ R_ARM_REL32 .LC2 │ │ │ │ │ .word 0x00000008 │ │ │ │ │ R_ARM_REL32 .LC1 │ │ │ │ │ │ │ │ │ │ -00000070 : │ │ │ │ │ +0000007c : │ │ │ │ │ mkplan(): │ │ │ │ │ - push {r4, r5, r6, r7, r8, r9, sl, fp, lr} │ │ │ │ │ mov r3, #0 │ │ │ │ │ - sub sp, sp, #100 @ 0x64 │ │ │ │ │ + strd r4, [sp, #-36]! @ 0xffffffdc │ │ │ │ │ mov r5, r2 │ │ │ │ │ - str r3, [sp, #68] @ 0x44 │ │ │ │ │ + strd r6, [sp, #8] │ │ │ │ │ + strd r8, [sp, #16] │ │ │ │ │ + strd sl, [sp, #24] │ │ │ │ │ + str lr, [sp, #32] │ │ │ │ │ + sub sp, sp, #100 @ 0x64 │ │ │ │ │ ldr r2, [r1, #16] │ │ │ │ │ + str r3, [sp, #68] @ 0x44 │ │ │ │ │ str r3, [sp, #72] @ 0x48 │ │ │ │ │ str r3, [sp, #76] @ 0x4c │ │ │ │ │ ldr r3, [r1, #20] │ │ │ │ │ cmp r2, r3 │ │ │ │ │ - beq cc │ │ │ │ │ + beq e8 │ │ │ │ │ ldr r3, [r5, #164] @ 0xa4 │ │ │ │ │ - ldr r8, [r1, #24] │ │ │ │ │ - tst r3, #4096 @ 0x1000 │ │ │ │ │ mov r7, r0 │ │ │ │ │ mov r4, r1 │ │ │ │ │ + ldr r8, [r1, #24] │ │ │ │ │ + tst r3, #4096 @ 0x1000 │ │ │ │ │ and r2, r8, #4 │ │ │ │ │ - bne d8 │ │ │ │ │ + bne 108 │ │ │ │ │ cmp r2, #0 │ │ │ │ │ - bne ec │ │ │ │ │ + bne 11c │ │ │ │ │ ldr r3, [r7, #8] │ │ │ │ │ cmp r3, #0 │ │ │ │ │ - beq ec │ │ │ │ │ + beq 11c │ │ │ │ │ mov r0, #0 │ │ │ │ │ add sp, sp, #100 @ 0x64 │ │ │ │ │ - pop {r4, r5, r6, r7, r8, r9, sl, fp, pc} │ │ │ │ │ + ldrd r4, [sp] │ │ │ │ │ + ldrd r6, [sp, #8] │ │ │ │ │ + ldrd r8, [sp, #16] │ │ │ │ │ + ldrd sl, [sp, #24] │ │ │ │ │ + add sp, sp, #32 │ │ │ │ │ + pop {pc} @ (ldr pc, [sp], #4) │ │ │ │ │ cmp r2, #0 │ │ │ │ │ - beq cc │ │ │ │ │ + beq e8 │ │ │ │ │ ldr r3, [r7, #8] │ │ │ │ │ cmp r3, #0 │ │ │ │ │ - bne cc │ │ │ │ │ + bne e8 │ │ │ │ │ bics r8, r8, #12 │ │ │ │ │ - bne cc │ │ │ │ │ + bne e8 │ │ │ │ │ add r1, sp, #88 @ 0x58 │ │ │ │ │ - ldr r0, [r4, #36] @ 0x24 │ │ │ │ │ ldr r6, [r4, #4] │ │ │ │ │ + ldr r0, [r4, #36] @ 0x24 │ │ │ │ │ bl 0 │ │ │ │ │ R_ARM_CALL MPI_Comm_rank │ │ │ │ │ - add r1, sp, #92 @ 0x5c │ │ │ │ │ ldr r0, [r4, #36] @ 0x24 │ │ │ │ │ + add r1, sp, #92 @ 0x5c │ │ │ │ │ bl 0 │ │ │ │ │ R_ARM_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_CALL fftw_mpi_block │ │ │ │ │ ldr r3, [r4, #24] │ │ │ │ │ - ands r9, r3, #4 │ │ │ │ │ mov r2, r0 │ │ │ │ │ - beq 3fc │ │ │ │ │ + ands r9, r3, #4 │ │ │ │ │ + beq 430 │ │ │ │ │ ldr r1, [r7, #8] │ │ │ │ │ cmp r1, #0 │ │ │ │ │ - bne 478 │ │ │ │ │ + bne 4ac │ │ │ │ │ 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] │ │ │ │ │ - mov r0, r4 │ │ │ │ │ mov r2, r7 │ │ │ │ │ bl 0 │ │ │ │ │ R_ARM_CALL fftw_mpi_mkplans_posttranspose │ │ │ │ │ - ldr r1, [r4, #36] @ 0x24 │ │ │ │ │ clz r0, r0 │ │ │ │ │ + ldr r1, [r4, #36] @ 0x24 │ │ │ │ │ lsr r0, r0, #5 │ │ │ │ │ bl 0 │ │ │ │ │ R_ARM_CALL fftw_mpi_any_true │ │ │ │ │ subs r5, r0, #0 │ │ │ │ │ - bne 3d8 │ │ │ │ │ - ldr r2, [pc, #788] @ 4bc │ │ │ │ │ - ldr r1, [pc, #788] @ 4c0 │ │ │ │ │ + bne 40c │ │ │ │ │ + ldr r2, [pc, #792] @ 4f0 │ │ │ │ │ + mov r0, #112 @ 0x70 │ │ │ │ │ + ldr r1, [pc, #788] @ 4f4 │ │ │ │ │ add r2, pc, r2 │ │ │ │ │ add r1, pc, r1 │ │ │ │ │ - mov r0, #112 @ 0x70 │ │ │ │ │ bl 0 │ │ │ │ │ R_ARM_CALL fftw_mkplan_rdft │ │ │ │ │ ldr r3, [sp, #40] @ 0x28 │ │ │ │ │ + add r1, r0, #80 @ 0x50 │ │ │ │ │ + str r0, [sp, #48] @ 0x30 │ │ │ │ │ str r3, [r0, #64] @ 0x40 │ │ │ │ │ ldr r3, [sp, #68] @ 0x44 │ │ │ │ │ str r3, [r0, #68] @ 0x44 │ │ │ │ │ ldr r3, [sp, #72] @ 0x48 │ │ │ │ │ str r3, [r0, #72] @ 0x48 │ │ │ │ │ ldr r3, [sp, #80] @ 0x50 │ │ │ │ │ str r3, [r0, #100] @ 0x64 │ │ │ │ │ ldr r3, [sp, #84] @ 0x54 │ │ │ │ │ str r3, [r0, #104] @ 0x68 │ │ │ │ │ ldr r3, [sp, #76] @ 0x4c │ │ │ │ │ - add r1, r0, #80 @ 0x50 │ │ │ │ │ str r3, [r0, #76] @ 0x4c │ │ │ │ │ - str r0, [sp, #44] @ 0x2c │ │ │ │ │ ldr r0, [r4, #36] @ 0x24 │ │ │ │ │ bl 0 │ │ │ │ │ R_ARM_CALL MPI_Comm_dup │ │ │ │ │ ldr r0, [sp, #92] @ 0x5c │ │ │ │ │ lsl r0, r0, #4 │ │ │ │ │ bl 0 │ │ │ │ │ R_ARM_CALL fftw_malloc_plain │ │ │ │ │ ldr r3, [sp, #92] @ 0x5c │ │ │ │ │ - ldr r2, [sp, #88] @ 0x58 │ │ │ │ │ + mov sl, r0 │ │ │ │ │ + str r0, [sp, #56] @ 0x38 │ │ │ │ │ ldr r1, [r4, #28] │ │ │ │ │ - add sl, r0, r3, lsl #3 │ │ │ │ │ - add fp, r0, r3, lsl #2 │ │ │ │ │ - str r0, [sp, #52] @ 0x34 │ │ │ │ │ - add r3, sl, r3, lsl #2 │ │ │ │ │ - mov r9, r0 │ │ │ │ │ + lsl r3, r3, #2 │ │ │ │ │ + add r9, r0, r3 │ │ │ │ │ ldr r0, [r4, #8] │ │ │ │ │ - str r3, [sp, #48] @ 0x30 │ │ │ │ │ - str fp, [sp, #56] @ 0x38 │ │ │ │ │ - str sl, [sp, #60] @ 0x3c │ │ │ │ │ + add r2, r9, r3 │ │ │ │ │ + add r3, r2, r3 │ │ │ │ │ + str r2, [sp, #44] @ 0x2c │ │ │ │ │ + ldr r2, [sp, #88] @ 0x58 │ │ │ │ │ + str r3, [sp, #52] @ 0x34 │ │ │ │ │ + str r9, [sp, #60] @ 0x3c │ │ │ │ │ bl 0 │ │ │ │ │ R_ARM_CALL fftw_mpi_block │ │ │ │ │ - ldr r2, [sp, #88] @ 0x58 │ │ │ │ │ ldr r1, [r4, #32] │ │ │ │ │ mov r7, r0 │ │ │ │ │ ldr r0, [r4, #12] │ │ │ │ │ + ldr r2, [sp, #88] @ 0x58 │ │ │ │ │ bl 0 │ │ │ │ │ R_ARM_CALL fftw_mpi_block │ │ │ │ │ ldr r3, [sp, #92] @ 0x5c │ │ │ │ │ - cmp r3, #0 │ │ │ │ │ mov r8, r0 │ │ │ │ │ - ble 4b4 │ │ │ │ │ - ldr r3, [sp, #48] @ 0x30 │ │ │ │ │ - sub r2, r9, #4 │ │ │ │ │ - sub r9, r3, #4 │ │ │ │ │ + cmp r3, #0 │ │ │ │ │ + ble 4e8 │ │ │ │ │ + ldr r2, [sp, #44] @ 0x2c │ │ │ │ │ + sub r1, sl, #4 │ │ │ │ │ + sub fp, r9, #4 │ │ │ │ │ + ldr r3, [sp, #52] @ 0x34 │ │ │ │ │ + str r1, [sp, #28] │ │ │ │ │ mov r1, #1 │ │ │ │ │ + sub sl, r2, #4 │ │ │ │ │ + str r1, [sp, #36] @ 0x24 │ │ │ │ │ + sub r9, r3, #4 │ │ │ │ │ mov r3, r9 │ │ │ │ │ - sub fp, fp, #4 │ │ │ │ │ - sub sl, sl, #4 │ │ │ │ │ mov r9, r7 │ │ │ │ │ - str r2, [sp, #28] │ │ │ │ │ - str r1, [sp, #36] @ 0x24 │ │ │ │ │ - ldr r1, [r4, #28] │ │ │ │ │ - mov r2, r5 │ │ │ │ │ ldr r0, [r4, #8] │ │ │ │ │ + mov r2, r5 │ │ │ │ │ str r3, [sp, #32] │ │ │ │ │ + ldr r1, [r4, #28] │ │ │ │ │ bl 0 │ │ │ │ │ R_ARM_CALL fftw_mpi_block │ │ │ │ │ - mov r2, r5 │ │ │ │ │ ldr r1, [r4, #32] │ │ │ │ │ + mov r2, r5 │ │ │ │ │ mov r7, r0 │ │ │ │ │ ldr r0, [r4, #12] │ │ │ │ │ bl 0 │ │ │ │ │ R_ARM_CALL fftw_mpi_block │ │ │ │ │ ldr r1, [r4, #28] │ │ │ │ │ ldr r3, [sp, #32] │ │ │ │ │ cmp r1, r7 │ │ │ │ │ movne r2, #0 │ │ │ │ │ strne r2, [sp, #36] @ 0x24 │ │ │ │ │ - bne 2dc │ │ │ │ │ - ldr r2, [sp, #36] @ 0x24 │ │ │ │ │ + bne 314 │ │ │ │ │ ldr r1, [r4, #32] │ │ │ │ │ + ldr r2, [sp, #36] @ 0x24 │ │ │ │ │ cmp r1, r0 │ │ │ │ │ movne r2, #0 │ │ │ │ │ andeq r2, r2, #1 │ │ │ │ │ str r2, [sp, #36] @ 0x24 │ │ │ │ │ mul r0, r9, r0 │ │ │ │ │ ldr r2, [sp, #28] │ │ │ │ │ - mul r0, r6, r0 │ │ │ │ │ mul r7, r8, r7 │ │ │ │ │ + mul r0, r6, r0 │ │ │ │ │ + mul r7, r6, r7 │ │ │ │ │ str r0, [r2, #4]! │ │ │ │ │ ldr r1, [r4, #32] │ │ │ │ │ - mul r7, r6, r7 │ │ │ │ │ - mul r1, r9, r1 │ │ │ │ │ str r2, [sp, #28] │ │ │ │ │ + mul r1, r9, r1 │ │ │ │ │ mul r1, r5, r1 │ │ │ │ │ mul r1, r6, r1 │ │ │ │ │ str r1, [fp, #4]! │ │ │ │ │ str r7, [sl, #4]! │ │ │ │ │ ldr r1, [r4, #28] │ │ │ │ │ mul r1, r8, r1 │ │ │ │ │ mul r1, r5, r1 │ │ │ │ │ add r5, r5, #1 │ │ │ │ │ mul r1, r6, r1 │ │ │ │ │ str r1, [r3, #4]! │ │ │ │ │ ldr r1, [sp, #92] @ 0x5c │ │ │ │ │ cmp r1, r5 │ │ │ │ │ - bgt 284 │ │ │ │ │ + bgt 2bc │ │ │ │ │ ldr r1, [sp, #36] @ 0x24 │ │ │ │ │ - ldr r3, [sp, #44] @ 0x2c │ │ │ │ │ - ldr r2, [sp, #52] @ 0x34 │ │ │ │ │ - str r2, [r3, #84] @ 0x54 │ │ │ │ │ + ldr r3, [sp, #48] @ 0x30 │ │ │ │ │ ldr r2, [sp, #56] @ 0x38 │ │ │ │ │ - str r2, [r3, #88] @ 0x58 │ │ │ │ │ - ldr r2, [sp, #60] @ 0x3c │ │ │ │ │ add r4, r3, #8 │ │ │ │ │ + mov r0, r4 │ │ │ │ │ + str r2, [r3, #84] @ 0x54 │ │ │ │ │ + ldr r2, [sp, #60] @ 0x3c │ │ │ │ │ + str r2, [r3, #88] @ 0x58 │ │ │ │ │ + ldr r2, [sp, #44] @ 0x2c │ │ │ │ │ + str r1, [r3, #108] @ 0x6c │ │ │ │ │ str r2, [r3, #92] @ 0x5c │ │ │ │ │ - ldr r2, [sp, #48] @ 0x30 │ │ │ │ │ + ldr r2, [sp, #52] @ 0x34 │ │ │ │ │ str r2, [r3, #96] @ 0x60 │ │ │ │ │ - str r1, [r3, #108] @ 0x6c │ │ │ │ │ - mov r0, r4 │ │ │ │ │ bl 0 │ │ │ │ │ R_ARM_CALL fftw_ops_zero │ │ │ │ │ ldr r3, [sp, #40] @ 0x28 │ │ │ │ │ cmp r3, #0 │ │ │ │ │ - beq 384 │ │ │ │ │ + beq 3bc │ │ │ │ │ mov r1, r4 │ │ │ │ │ add r0, r3, #8 │ │ │ │ │ bl 0 │ │ │ │ │ R_ARM_CALL fftw_ops_add2 │ │ │ │ │ ldr r0, [sp, #68] @ 0x44 │ │ │ │ │ cmp r0, #0 │ │ │ │ │ - beq 39c │ │ │ │ │ + beq 3d4 │ │ │ │ │ mov r1, r4 │ │ │ │ │ add r0, r0, #8 │ │ │ │ │ bl 0 │ │ │ │ │ R_ARM_CALL fftw_ops_add2 │ │ │ │ │ ldr r0, [sp, #72] @ 0x48 │ │ │ │ │ cmp r0, #0 │ │ │ │ │ - beq 3b4 │ │ │ │ │ + beq 3ec │ │ │ │ │ mov r1, r4 │ │ │ │ │ add r0, r0, #8 │ │ │ │ │ bl 0 │ │ │ │ │ R_ARM_CALL fftw_ops_add2 │ │ │ │ │ ldr r0, [sp, #76] @ 0x4c │ │ │ │ │ cmp r0, #0 │ │ │ │ │ - beq 3cc │ │ │ │ │ + beq 404 │ │ │ │ │ mov r1, r4 │ │ │ │ │ add r0, r0, #8 │ │ │ │ │ bl 0 │ │ │ │ │ R_ARM_CALL fftw_ops_add2 │ │ │ │ │ - ldr r0, [sp, #44] @ 0x2c │ │ │ │ │ - add sp, sp, #100 @ 0x64 │ │ │ │ │ - pop {r4, r5, r6, r7, r8, r9, sl, fp, pc} │ │ │ │ │ + ldr r0, [sp, #48] @ 0x30 │ │ │ │ │ + b ec │ │ │ │ │ ldr r0, [sp, #76] @ 0x4c │ │ │ │ │ bl 0 │ │ │ │ │ R_ARM_CALL fftw_plan_destroy_internal │ │ │ │ │ ldr r0, [sp, #72] @ 0x48 │ │ │ │ │ bl 0 │ │ │ │ │ R_ARM_CALL fftw_plan_destroy_internal │ │ │ │ │ ldr r0, [sp, #68] @ 0x44 │ │ │ │ │ bl 0 │ │ │ │ │ R_ARM_CALL fftw_plan_destroy_internal │ │ │ │ │ ldr r0, [sp, #40] @ 0x28 │ │ │ │ │ bl 0 │ │ │ │ │ R_ARM_CALL fftw_plan_destroy_internal │ │ │ │ │ - b cc │ │ │ │ │ + b e8 │ │ │ │ │ mul r2, r6, r2 │ │ │ │ │ mov r3, #1 │ │ │ │ │ + str r6, [sp] │ │ │ │ │ str r2, [sp, #4] │ │ │ │ │ - str r3, [sp, #16] │ │ │ │ │ - str r3, [sp, #12] │ │ │ │ │ + mov r2, r6 │ │ │ │ │ str r6, [sp, #8] │ │ │ │ │ - str r6, [sp] │ │ │ │ │ + str r3, [sp, #12] │ │ │ │ │ + str r3, [sp, #16] │ │ │ │ │ ldr r3, [r4, #12] │ │ │ │ │ - mov r2, r6 │ │ │ │ │ mul r1, r6, r3 │ │ │ │ │ bl 0 │ │ │ │ │ R_ARM_CALL fftw_mktensor_3d │ │ │ │ │ ldr r7, [r4, #16] │ │ │ │ │ ldr r2, [r4, #20] │ │ │ │ │ mov r1, r7 │ │ │ │ │ bl 0 │ │ │ │ │ R_ARM_CALL fftw_mkproblem_rdft_0_d │ │ │ │ │ mov r3, #8 │ │ │ │ │ + mov r1, r0 │ │ │ │ │ str r3, [sp] │ │ │ │ │ mov r3, r9 │ │ │ │ │ - mov r1, r0 │ │ │ │ │ mov r2, r3 │ │ │ │ │ mov r0, r5 │ │ │ │ │ bl 0 │ │ │ │ │ R_ARM_CALL fftw_mkplan_f_d │ │ │ │ │ - ldr r1, [r4, #36] @ 0x24 │ │ │ │ │ str r0, [sp, #40] @ 0x28 │ │ │ │ │ clz r0, r0 │ │ │ │ │ + ldr r1, [r4, #36] @ 0x24 │ │ │ │ │ lsr r0, r0, #5 │ │ │ │ │ bl 0 │ │ │ │ │ R_ARM_CALL fftw_mpi_any_true │ │ │ │ │ cmp r0, #0 │ │ │ │ │ - bne 3d8 │ │ │ │ │ + bne 40c │ │ │ │ │ ldr r3, [r4, #20] │ │ │ │ │ - b 148 │ │ │ │ │ + b 178 │ │ │ │ │ ldr r3, [r4, #12] │ │ │ │ │ mul r0, r3, r2 │ │ │ │ │ mov r2, #1 │ │ │ │ │ mov r1, r2 │ │ │ │ │ mul r0, r6, r0 │ │ │ │ │ bl 0 │ │ │ │ │ R_ARM_CALL fftw_mktensor_1d │ │ │ │ │ ldr r7, [r4, #16] │ │ │ │ │ ldr r2, [r4, #20] │ │ │ │ │ mov r1, r7 │ │ │ │ │ bl 0 │ │ │ │ │ R_ARM_CALL fftw_mkproblem_rdft_0_d │ │ │ │ │ mov r3, #8 │ │ │ │ │ + mov r1, r0 │ │ │ │ │ str r3, [sp] │ │ │ │ │ mov r3, r8 │ │ │ │ │ - mov r1, r0 │ │ │ │ │ - b 448 │ │ │ │ │ + b 47c │ │ │ │ │ mov r1, #1 │ │ │ │ │ - b 338 │ │ │ │ │ + b 370 │ │ │ │ │ .word 0x00000314 │ │ │ │ │ .word 0x0000030c │ │ │ │ │ R_ARM_REL32 .data.rel.ro │ │ │ │ │ │ │ │ │ │ -000004c4 : │ │ │ │ │ +000004f8 : │ │ │ │ │ apply(): │ │ │ │ │ - push {r4, r5, r6, lr} │ │ │ │ │ + strd r4, [sp, #-16]! │ │ │ │ │ mov r4, r0 │ │ │ │ │ + mov r5, r2 │ │ │ │ │ ldr r0, [r0, #64] @ 0x40 │ │ │ │ │ + str r6, [sp, #8] │ │ │ │ │ + mov r6, r1 │ │ │ │ │ + str lr, [sp, #12] │ │ │ │ │ sub sp, sp, #24 │ │ │ │ │ cmp r0, #0 │ │ │ │ │ - mov r6, r1 │ │ │ │ │ - mov r5, r2 │ │ │ │ │ - beq 5c0 │ │ │ │ │ + beq 614 │ │ │ │ │ ldr r3, [r0, #56] @ 0x38 │ │ │ │ │ blx r3 │ │ │ │ │ + ldr ip, [r4, #80] @ 0x50 │ │ │ │ │ ldr r3, [r4, #108] @ 0x6c │ │ │ │ │ ldr r1, [r4, #84] @ 0x54 │ │ │ │ │ - cmp r3, #0 │ │ │ │ │ ldr r0, [r4, #92] @ 0x5c │ │ │ │ │ - ldr ip, [r4, #80] @ 0x50 │ │ │ │ │ - bne 58c │ │ │ │ │ - ldr r3, [pc, #284] @ 628 │ │ │ │ │ - str ip, [sp, #16] │ │ │ │ │ + cmp r3, #0 │ │ │ │ │ + bne 5d4 │ │ │ │ │ + ldr r3, [pc, #308] @ 67c │ │ │ │ │ str r3, [sp, #12] │ │ │ │ │ + str ip, [sp, #16] │ │ │ │ │ ldr r2, [r4, #96] @ 0x60 │ │ │ │ │ str r6, [sp] │ │ │ │ │ stmib sp, {r0, r2} │ │ │ │ │ mov r0, r5 │ │ │ │ │ ldr r2, [r4, #88] @ 0x58 │ │ │ │ │ bl 0 │ │ │ │ │ R_ARM_CALL MPI_Alltoallv │ │ │ │ │ ldr r0, [r4, #68] @ 0x44 │ │ │ │ │ cmp r0, #0 │ │ │ │ │ - beq 5b8 │ │ │ │ │ + beq 600 │ │ │ │ │ ldr r3, [r0, #56] @ 0x38 │ │ │ │ │ mov r2, r5 │ │ │ │ │ mov r1, r6 │ │ │ │ │ blx r3 │ │ │ │ │ ldr r0, [r4, #72] @ 0x48 │ │ │ │ │ cmp r0, #0 │ │ │ │ │ - beq 5b8 │ │ │ │ │ - ldr r2, [r4, #104] @ 0x68 │ │ │ │ │ + beq 600 │ │ │ │ │ ldr r1, [r4, #100] @ 0x64 │ │ │ │ │ + ldr r2, [r4, #104] @ 0x68 │ │ │ │ │ ldr r3, [r0, #56] @ 0x38 │ │ │ │ │ - add r2, r5, r2, lsl #3 │ │ │ │ │ add r1, r6, r1, lsl #3 │ │ │ │ │ + add r2, r5, r2, lsl #3 │ │ │ │ │ blx r3 │ │ │ │ │ ldr r0, [r4, #76] @ 0x4c │ │ │ │ │ cmp r0, #0 │ │ │ │ │ - beq 5b8 │ │ │ │ │ + beq 600 │ │ │ │ │ + ldr r3, [r0, #56] @ 0x38 │ │ │ │ │ mov r2, r5 │ │ │ │ │ mov r1, r5 │ │ │ │ │ - ldr r3, [r0, #56] @ 0x38 │ │ │ │ │ add sp, sp, #24 │ │ │ │ │ - pop {r4, r5, r6, lr} │ │ │ │ │ + ldrd r4, [sp] │ │ │ │ │ + ldr r6, [sp, #8] │ │ │ │ │ + ldr lr, [sp, #12] │ │ │ │ │ + add sp, sp, #16 │ │ │ │ │ bx r3 │ │ │ │ │ - ldr r2, [pc, #148] @ 628 │ │ │ │ │ + ldr r2, [pc, #160] @ 67c │ │ │ │ │ ldr r1, [r1] │ │ │ │ │ stmib sp, {r2, ip} │ │ │ │ │ ldr r3, [r0] │ │ │ │ │ - str r3, [sp] │ │ │ │ │ mov r0, r5 │ │ │ │ │ + str r3, [sp] │ │ │ │ │ mov r3, r6 │ │ │ │ │ bl 0 │ │ │ │ │ R_ARM_CALL MPI_Alltoall │ │ │ │ │ ldr r0, [r4, #68] @ 0x44 │ │ │ │ │ cmp r0, #0 │ │ │ │ │ - bne 534 │ │ │ │ │ + bne 570 │ │ │ │ │ add sp, sp, #24 │ │ │ │ │ - pop {r4, r5, r6, pc} │ │ │ │ │ + ldrd r4, [sp] │ │ │ │ │ + ldr r6, [sp, #8] │ │ │ │ │ + add sp, sp, #12 │ │ │ │ │ + pop {pc} @ (ldr pc, [sp], #4) │ │ │ │ │ + ldr ip, [r4, #80] @ 0x50 │ │ │ │ │ ldr r3, [r4, #108] @ 0x6c │ │ │ │ │ ldr r1, [r4, #84] @ 0x54 │ │ │ │ │ - cmp r3, #0 │ │ │ │ │ ldr r0, [r4, #92] @ 0x5c │ │ │ │ │ - ldr ip, [r4, #80] @ 0x50 │ │ │ │ │ - bne 604 │ │ │ │ │ - ldr r3, [pc, #72] @ 628 │ │ │ │ │ - str ip, [sp, #16] │ │ │ │ │ + cmp r3, #0 │ │ │ │ │ + bne 658 │ │ │ │ │ + ldr r3, [pc, #72] @ 67c │ │ │ │ │ str r3, [sp, #12] │ │ │ │ │ + str ip, [sp, #16] │ │ │ │ │ ldr r2, [r4, #96] @ 0x60 │ │ │ │ │ str r5, [sp] │ │ │ │ │ stmib sp, {r0, r2} │ │ │ │ │ mov r0, r6 │ │ │ │ │ ldr r2, [r4, #88] @ 0x58 │ │ │ │ │ bl 0 │ │ │ │ │ R_ARM_CALL MPI_Alltoallv │ │ │ │ │ mov r6, r5 │ │ │ │ │ - b 528 │ │ │ │ │ - ldr r2, [pc, #28] @ 628 │ │ │ │ │ + b 564 │ │ │ │ │ + ldr r2, [pc, #28] @ 67c │ │ │ │ │ ldr r1, [r1] │ │ │ │ │ stmib sp, {r2, ip} │ │ │ │ │ ldr r3, [r0] │ │ │ │ │ - str r3, [sp] │ │ │ │ │ mov r0, r6 │ │ │ │ │ + str r3, [sp] │ │ │ │ │ mov r3, r5 │ │ │ │ │ bl 0 │ │ │ │ │ R_ARM_CALL MPI_Alltoall │ │ │ │ │ - b 5fc │ │ │ │ │ + b 650 │ │ │ │ │ .word 0x4c00080b │ │ │ │ │ │ │ │ │ │ -0000062c : │ │ │ │ │ +00000680 : │ │ │ │ │ destroy(): │ │ │ │ │ - push {r4, lr} │ │ │ │ │ + str r4, [sp, #-8]! │ │ │ │ │ mov r4, r0 │ │ │ │ │ ldr r0, [r0, #84] @ 0x54 │ │ │ │ │ + str lr, [sp, #4] │ │ │ │ │ bl 0 │ │ │ │ │ R_ARM_CALL fftw_ifree0 │ │ │ │ │ add r0, r4, #80 @ 0x50 │ │ │ │ │ bl 0 │ │ │ │ │ R_ARM_CALL MPI_Comm_free │ │ │ │ │ ldr r0, [r4, #76] @ 0x4c │ │ │ │ │ bl 0 │ │ │ │ │ R_ARM_CALL fftw_plan_destroy_internal │ │ │ │ │ ldr r0, [r4, #72] @ 0x48 │ │ │ │ │ bl 0 │ │ │ │ │ R_ARM_CALL fftw_plan_destroy_internal │ │ │ │ │ ldr r0, [r4, #68] @ 0x44 │ │ │ │ │ bl 0 │ │ │ │ │ R_ARM_CALL fftw_plan_destroy_internal │ │ │ │ │ + ldr lr, [sp, #4] │ │ │ │ │ ldr r0, [r4, #64] @ 0x40 │ │ │ │ │ - pop {r4, lr} │ │ │ │ │ + ldr r4, [sp] │ │ │ │ │ + add sp, sp, #8 │ │ │ │ │ b 0 │ │ │ │ │ R_ARM_JUMP24 fftw_plan_destroy_internal │ │ │ │ │ │ │ │ │ │ -00000668 : │ │ │ │ │ +000006c8 : │ │ │ │ │ awake(): │ │ │ │ │ - push {r4, r5, r6, lr} │ │ │ │ │ + strd r4, [sp, #-16]! │ │ │ │ │ mov r4, r0 │ │ │ │ │ mov r5, r1 │ │ │ │ │ ldr r0, [r0, #64] @ 0x40 │ │ │ │ │ + str r6, [sp, #8] │ │ │ │ │ + str lr, [sp, #12] │ │ │ │ │ bl 0 │ │ │ │ │ R_ARM_CALL fftw_plan_awake │ │ │ │ │ ldr r0, [r4, #68] @ 0x44 │ │ │ │ │ mov r1, r5 │ │ │ │ │ bl 0 │ │ │ │ │ R_ARM_CALL fftw_plan_awake │ │ │ │ │ ldr r0, [r4, #72] @ 0x48 │ │ │ │ │ mov r1, r5 │ │ │ │ │ bl 0 │ │ │ │ │ R_ARM_CALL fftw_plan_awake │ │ │ │ │ - ldr r0, [r4, #76] @ 0x4c │ │ │ │ │ + ldr r6, [sp, #8] │ │ │ │ │ mov r1, r5 │ │ │ │ │ - pop {r4, r5, r6, lr} │ │ │ │ │ + ldr lr, [sp, #12] │ │ │ │ │ + ldr r0, [r4, #76] @ 0x4c │ │ │ │ │ + ldrd r4, [sp] │ │ │ │ │ + add sp, sp, #16 │ │ │ │ │ b 0 │ │ │ │ │ R_ARM_JUMP24 fftw_plan_awake │ │ │ │ │ │ │ │ │ │ -000006a4 : │ │ │ │ │ +00000718 : │ │ │ │ │ fftw_mpi_transpose_alltoall_register(): │ │ │ │ │ - push {r4, r5, r6, lr} │ │ │ │ │ - ldr r5, [pc, #72] @ 6f8 │ │ │ │ │ + strd r4, [sp, #-16]! │ │ │ │ │ mov r4, r0 │ │ │ │ │ + mov r0, #12 │ │ │ │ │ + ldr r5, [pc, #84] @ 780 │ │ │ │ │ + str r6, [sp, #8] │ │ │ │ │ + str lr, [sp, #12] │ │ │ │ │ add r5, pc, r5 │ │ │ │ │ mov r1, r5 │ │ │ │ │ - mov r0, #12 │ │ │ │ │ bl 0 │ │ │ │ │ R_ARM_CALL fftw_mksolver │ │ │ │ │ mov r3, #0 │ │ │ │ │ - str r3, [r0, #8] │ │ │ │ │ mov r1, r0 │ │ │ │ │ + str r3, [r0, #8] │ │ │ │ │ mov r0, r4 │ │ │ │ │ bl 0 │ │ │ │ │ R_ARM_CALL fftw_solver_register │ │ │ │ │ mov r1, r5 │ │ │ │ │ mov r0, #12 │ │ │ │ │ bl 0 │ │ │ │ │ R_ARM_CALL fftw_mksolver │ │ │ │ │ mov r3, #1 │ │ │ │ │ + ldr r6, [sp, #8] │ │ │ │ │ mov r1, r0 │ │ │ │ │ + ldr lr, [sp, #12] │ │ │ │ │ str r3, [r0, #8] │ │ │ │ │ mov r0, r4 │ │ │ │ │ - pop {r4, r5, r6, lr} │ │ │ │ │ + ldrd r4, [sp] │ │ │ │ │ + add sp, sp, #16 │ │ │ │ │ b 0 │ │ │ │ │ R_ARM_JUMP24 fftw_solver_register │ │ │ │ │ - .word 0x00000040 │ │ │ │ │ + .word 0x00000048 │ │ │ │ │ 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: 6688 (bytes into file) │ │ │ │ │ + Start of section headers: 6928 (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 0x1a20: │ │ │ │ │ +There are 15 section headers, starting at offset 0x1b10: │ │ │ │ │ │ │ │ │ │ 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 001028 00 AX 0 0 4 │ │ │ │ │ - [ 2] .rel.text REL 00000000 0016c0 0002b0 08 I 12 1 4 │ │ │ │ │ - [ 3] .data PROGBITS 00000000 00105c 000000 00 WA 0 0 1 │ │ │ │ │ - [ 4] .bss NOBITS 00000000 00105c 000000 00 WA 0 0 1 │ │ │ │ │ - [ 5] .rodata.str1.4 PROGBITS 00000000 00105c 00003b 01 AMS 0 0 4 │ │ │ │ │ - [ 6] .data.rel.ro PROGBITS 00000000 001097 000010 00 WA 0 0 4 │ │ │ │ │ - [ 7] .rel.data.rel.ro REL 00000000 001970 000020 08 I 12 6 4 │ │ │ │ │ - [ 8] .data.rel.ro.local PROGBITS 00000000 0010a7 00000c 00 WA 0 0 4 │ │ │ │ │ - [ 9] .rel.data.rel.ro.local REL 00000000 001990 000008 08 I 12 8 4 │ │ │ │ │ - [10] .note.GNU-stack PROGBITS 00000000 0010b3 000000 00 0 0 1 │ │ │ │ │ - [11] .ARM.attributes ARM_ATTRIBUTES 00000000 0010b3 00002b 00 0 0 1 │ │ │ │ │ - [12] .symtab SYMTAB 00000000 0010e0 000380 10 13 26 4 │ │ │ │ │ - [13] .strtab STRTAB 00000000 001460 00025f 00 0 0 1 │ │ │ │ │ - [14] .shstrtab STRTAB 00000000 001998 000087 00 0 0 1 │ │ │ │ │ + [ 1] .text PROGBITS 00000000 000034 001118 00 AX 0 0 4 │ │ │ │ │ + [ 2] .rel.text REL 00000000 0017b0 0002b0 08 I 12 1 4 │ │ │ │ │ + [ 3] .data PROGBITS 00000000 00114c 000000 00 WA 0 0 1 │ │ │ │ │ + [ 4] .bss NOBITS 00000000 00114c 000000 00 WA 0 0 1 │ │ │ │ │ + [ 5] .rodata.str1.4 PROGBITS 00000000 00114c 00003b 01 AMS 0 0 4 │ │ │ │ │ + [ 6] .data.rel.ro PROGBITS 00000000 001187 000010 00 WA 0 0 4 │ │ │ │ │ + [ 7] .rel.data.rel.ro REL 00000000 001a60 000020 08 I 12 6 4 │ │ │ │ │ + [ 8] .data.rel.ro.local PROGBITS 00000000 001197 00000c 00 WA 0 0 4 │ │ │ │ │ + [ 9] .rel.data.rel.ro.local REL 00000000 001a80 000008 08 I 12 8 4 │ │ │ │ │ + [10] .note.GNU-stack PROGBITS 00000000 0011a3 000000 00 0 0 1 │ │ │ │ │ + [11] .ARM.attributes ARM_ATTRIBUTES 00000000 0011a3 00002b 00 0 0 1 │ │ │ │ │ + [12] .symtab SYMTAB 00000000 0011d0 000380 10 13 26 4 │ │ │ │ │ + [13] .strtab STRTAB 00000000 001550 00025f 00 0 0 1 │ │ │ │ │ + [14] .shstrtab STRTAB 00000000 001a88 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 {} │ │ │ │ │ @@ -3,28 +3,28 @@ │ │ │ │ │ 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: 00000000 0 NOTYPE LOCAL DEFAULT 1 $a │ │ │ │ │ - 6: 00000000 112 FUNC LOCAL DEFAULT 1 print │ │ │ │ │ - 7: 00000064 0 NOTYPE LOCAL DEFAULT 1 $d │ │ │ │ │ - 8: 00000070 0 NOTYPE LOCAL DEFAULT 1 $a │ │ │ │ │ - 9: 00000070 480 FUNC LOCAL DEFAULT 1 fill1_comm_sched │ │ │ │ │ - 10: 00000250 624 FUNC LOCAL DEFAULT 1 transpose_chunks │ │ │ │ │ - 11: 000004b8 0 NOTYPE LOCAL DEFAULT 1 $d │ │ │ │ │ - 12: 000004c0 0 NOTYPE LOCAL DEFAULT 1 $a │ │ │ │ │ - 13: 000004c0 308 FUNC LOCAL DEFAULT 1 apply │ │ │ │ │ - 14: 000005f4 68 FUNC LOCAL DEFAULT 1 destroy │ │ │ │ │ - 15: 00000638 60 FUNC LOCAL DEFAULT 1 awake │ │ │ │ │ - 16: 000009d8 1528 FUNC LOCAL DEFAULT 1 mkplan │ │ │ │ │ - 17: 00000fc8 0 NOTYPE LOCAL DEFAULT 1 $d │ │ │ │ │ - 18: 00000fd0 0 NOTYPE LOCAL DEFAULT 1 $a │ │ │ │ │ - 19: 00001024 0 NOTYPE LOCAL DEFAULT 1 $d │ │ │ │ │ + 6: 00000000 124 FUNC LOCAL DEFAULT 1 print │ │ │ │ │ + 7: 00000070 0 NOTYPE LOCAL DEFAULT 1 $d │ │ │ │ │ + 8: 0000007c 0 NOTYPE LOCAL DEFAULT 1 $a │ │ │ │ │ + 9: 0000007c 516 FUNC LOCAL DEFAULT 1 fill1_comm_sched │ │ │ │ │ + 10: 00000280 660 FUNC LOCAL DEFAULT 1 transpose_chunks │ │ │ │ │ + 11: 0000050c 0 NOTYPE LOCAL DEFAULT 1 $d │ │ │ │ │ + 12: 00000514 0 NOTYPE LOCAL DEFAULT 1 $a │ │ │ │ │ + 13: 00000514 352 FUNC LOCAL DEFAULT 1 apply │ │ │ │ │ + 14: 00000674 80 FUNC LOCAL DEFAULT 1 destroy │ │ │ │ │ + 15: 000006c4 80 FUNC LOCAL DEFAULT 1 awake │ │ │ │ │ + 16: 00000a98 1556 FUNC LOCAL DEFAULT 1 mkplan │ │ │ │ │ + 17: 000010a4 0 NOTYPE LOCAL DEFAULT 1 $d │ │ │ │ │ + 18: 000010ac 0 NOTYPE LOCAL DEFAULT 1 $a │ │ │ │ │ + 19: 00001114 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 __aeabi_idivmod │ │ │ │ │ @@ -33,15 +33,15 @@ │ │ │ │ │ 29: 00000000 0 NOTYPE GLOBAL DEFAULT UND fftw_malloc_plain │ │ │ │ │ 30: 00000000 0 NOTYPE GLOBAL DEFAULT UND memmove │ │ │ │ │ 31: 00000000 0 NOTYPE GLOBAL DEFAULT UND fftw_ifree │ │ │ │ │ 32: 00000000 0 NOTYPE GLOBAL DEFAULT UND fftw_ifree0 │ │ │ │ │ 33: 00000000 0 NOTYPE GLOBAL DEFAULT UND MPI_Comm_free │ │ │ │ │ 34: 00000000 0 NOTYPE GLOBAL DEFAULT UND fftw_plan_destroy_internal │ │ │ │ │ 35: 00000000 0 NOTYPE GLOBAL DEFAULT UND fftw_plan_awake │ │ │ │ │ - 36: 00000674 868 FUNC GLOBAL DEFAULT 1 fftw_mpi_mkplans_posttranspose │ │ │ │ │ + 36: 00000714 900 FUNC GLOBAL DEFAULT 1 fftw_mpi_mkplans_posttranspose │ │ │ │ │ 37: 00000000 0 NOTYPE GLOBAL DEFAULT UND fftw_mpi_block │ │ │ │ │ 38: 00000000 0 NOTYPE GLOBAL DEFAULT UND fftw_mktensor_4d │ │ │ │ │ 39: 00000000 0 NOTYPE GLOBAL DEFAULT UND fftw_mkproblem_rdft_0_d │ │ │ │ │ 40: 00000000 0 NOTYPE GLOBAL DEFAULT UND fftw_mkplan_f_d │ │ │ │ │ 41: 00000000 0 NOTYPE GLOBAL DEFAULT UND fftw_mktensor_3d │ │ │ │ │ 42: 00000000 0 NOTYPE GLOBAL DEFAULT UND fftw_mktensor_2d │ │ │ │ │ 43: 00000000 0 NOTYPE GLOBAL DEFAULT UND MPI_Comm_rank │ │ │ │ │ @@ -49,11 +49,11 @@ │ │ │ │ │ 45: 00000000 0 NOTYPE GLOBAL DEFAULT UND fftw_mpi_any_true │ │ │ │ │ 46: 00000000 0 NOTYPE GLOBAL DEFAULT UND fftw_mkplan_rdft │ │ │ │ │ 47: 00000000 0 NOTYPE GLOBAL DEFAULT UND MPI_Comm_dup │ │ │ │ │ 48: 00000000 0 NOTYPE GLOBAL DEFAULT UND fftw_mpi_num_blocks │ │ │ │ │ 49: 00000000 0 NOTYPE GLOBAL DEFAULT UND fftw_imax │ │ │ │ │ 50: 00000000 0 NOTYPE GLOBAL DEFAULT UND fftw_ops_zero │ │ │ │ │ 51: 00000000 0 NOTYPE GLOBAL DEFAULT UND fftw_ops_add2 │ │ │ │ │ - 52: 00000fd0 88 FUNC GLOBAL DEFAULT 1 fftw_mpi_transpose_pairwise_register │ │ │ │ │ + 52: 000010ac 108 FUNC GLOBAL DEFAULT 1 fftw_mpi_transpose_pairwise_register │ │ │ │ │ 53: 00000000 0 NOTYPE GLOBAL DEFAULT UND fftw_mksolver │ │ │ │ │ 54: 00000000 0 NOTYPE GLOBAL DEFAULT UND fftw_solver_register │ │ │ │ │ 55: 00000000 0 NOTYPE GLOBAL DEFAULT UND fftw_mpi_transpose_solve │ │ │ │ ├── readelf --wide --relocs {} │ │ │ │ │ @@ -1,100 +1,100 @@ │ │ │ │ │ │ │ │ │ │ -Relocation section '.rel.text' at offset 0x16c0 contains 86 entries: │ │ │ │ │ +Relocation section '.rel.text' at offset 0x17b0 contains 86 entries: │ │ │ │ │ Offset Info Type Sym. Value Symbol's Name │ │ │ │ │ -00000064 00000303 R_ARM_REL32 00000004 .LC1 │ │ │ │ │ -00000068 00000403 R_ARM_REL32 00000008 .LC2 │ │ │ │ │ -0000006c 00000203 R_ARM_REL32 00000000 .LC0 │ │ │ │ │ -000000d8 00001a1c R_ARM_CALL 00000000 __aeabi_idivmod │ │ │ │ │ -000000f8 00001a1c R_ARM_CALL 00000000 __aeabi_idivmod │ │ │ │ │ -00000110 00001a1c R_ARM_CALL 00000000 __aeabi_idivmod │ │ │ │ │ -00000130 00001a1c R_ARM_CALL 00000000 __aeabi_idivmod │ │ │ │ │ -000001c8 00001a1c R_ARM_CALL 00000000 __aeabi_idivmod │ │ │ │ │ -000001e8 00001a1c R_ARM_CALL 00000000 __aeabi_idivmod │ │ │ │ │ -00000200 00001a1c R_ARM_CALL 00000000 __aeabi_idivmod │ │ │ │ │ -00000220 00001a1c R_ARM_CALL 00000000 __aeabi_idivmod │ │ │ │ │ -00000344 00001b1c R_ARM_CALL 00000000 MPI_Sendrecv │ │ │ │ │ -00000388 00001c1c R_ARM_CALL 00000000 memcpy │ │ │ │ │ -000003a4 00001d1c R_ARM_CALL 00000000 fftw_malloc_plain │ │ │ │ │ -000003f4 00001e1c R_ARM_CALL 00000000 memmove │ │ │ │ │ -0000042c 00001c1c R_ARM_CALL 00000000 memcpy │ │ │ │ │ -00000498 00001b1c R_ARM_CALL 00000000 MPI_Sendrecv │ │ │ │ │ -000004ac 00001f1c R_ARM_CALL 00000000 fftw_ifree │ │ │ │ │ -00000600 0000201c R_ARM_CALL 00000000 fftw_ifree0 │ │ │ │ │ -00000608 0000201c R_ARM_CALL 00000000 fftw_ifree0 │ │ │ │ │ -00000610 0000211c R_ARM_CALL 00000000 MPI_Comm_free │ │ │ │ │ -00000618 0000221c R_ARM_CALL 00000000 fftw_plan_destroy_internal │ │ │ │ │ -00000620 0000221c R_ARM_CALL 00000000 fftw_plan_destroy_internal │ │ │ │ │ -00000628 0000221c R_ARM_CALL 00000000 fftw_plan_destroy_internal │ │ │ │ │ -00000634 0000221d R_ARM_JUMP24 00000000 fftw_plan_destroy_internal │ │ │ │ │ -00000648 0000231c R_ARM_CALL 00000000 fftw_plan_awake │ │ │ │ │ -00000654 0000231c R_ARM_CALL 00000000 fftw_plan_awake │ │ │ │ │ -00000660 0000231c R_ARM_CALL 00000000 fftw_plan_awake │ │ │ │ │ -00000670 0000231d R_ARM_JUMP24 00000000 fftw_plan_awake │ │ │ │ │ -000006a0 0000251c R_ARM_CALL 00000000 fftw_mpi_block │ │ │ │ │ -000006b4 00001a1c R_ARM_CALL 00000000 __aeabi_idivmod │ │ │ │ │ -0000074c 0000261c R_ARM_CALL 00000000 fftw_mktensor_4d │ │ │ │ │ -00000758 0000271c R_ARM_CALL 00000000 fftw_mkproblem_rdft_0_d │ │ │ │ │ -00000774 0000281c R_ARM_CALL 00000000 fftw_mkplan_f_d │ │ │ │ │ -000007d0 0000291c R_ARM_CALL 00000000 fftw_mktensor_3d │ │ │ │ │ -000007ec 0000271c R_ARM_CALL 00000000 fftw_mkproblem_rdft_0_d │ │ │ │ │ -00000804 0000281c R_ARM_CALL 00000000 fftw_mkplan_f_d │ │ │ │ │ -0000085c 0000291c R_ARM_CALL 00000000 fftw_mktensor_3d │ │ │ │ │ -00000868 0000271c R_ARM_CALL 00000000 fftw_mkproblem_rdft_0_d │ │ │ │ │ -00000884 0000281c R_ARM_CALL 00000000 fftw_mkplan_f_d │ │ │ │ │ -000008e4 00002a1c R_ARM_CALL 00000000 fftw_mktensor_2d │ │ │ │ │ -00000900 0000271c R_ARM_CALL 00000000 fftw_mkproblem_rdft_0_d │ │ │ │ │ -00000918 0000281c R_ARM_CALL 00000000 fftw_mkplan_f_d │ │ │ │ │ -00000934 0000221c R_ARM_CALL 00000000 fftw_plan_destroy_internal │ │ │ │ │ -00000940 0000221c R_ARM_CALL 00000000 fftw_plan_destroy_internal │ │ │ │ │ -0000094c 0000221c R_ARM_CALL 00000000 fftw_plan_destroy_internal │ │ │ │ │ -0000099c 0000291c R_ARM_CALL 00000000 fftw_mktensor_3d │ │ │ │ │ -000009a8 0000271c R_ARM_CALL 00000000 fftw_mkproblem_rdft_0_d │ │ │ │ │ -000009c0 0000281c R_ARM_CALL 00000000 fftw_mkplan_f_d │ │ │ │ │ -00000a50 00002b1c R_ARM_CALL 00000000 MPI_Comm_rank │ │ │ │ │ -00000a5c 00002c1c R_ARM_CALL 00000000 MPI_Comm_size │ │ │ │ │ -00000a6c 0000251c R_ARM_CALL 00000000 fftw_mpi_block │ │ │ │ │ -00000ad4 0000241c R_ARM_CALL 00000674 fftw_mpi_mkplans_posttranspose │ │ │ │ │ -00000ae0 00002d1c R_ARM_CALL 00000000 fftw_mpi_any_true │ │ │ │ │ -00000b1c 00002e1c R_ARM_CALL 00000000 fftw_mkplan_rdft │ │ │ │ │ -00000b68 00002f1c R_ARM_CALL 00000000 MPI_Comm_dup │ │ │ │ │ -00000b74 0000301c R_ARM_CALL 00000000 fftw_mpi_num_blocks │ │ │ │ │ -00000b84 0000301c R_ARM_CALL 00000000 fftw_mpi_num_blocks │ │ │ │ │ -00000b90 0000311c R_ARM_CALL 00000000 fftw_imax │ │ │ │ │ -00000b9c 00001d1c R_ARM_CALL 00000000 fftw_malloc_plain │ │ │ │ │ -00000bcc 0000251c R_ARM_CALL 00000000 fftw_mpi_block │ │ │ │ │ -00000be0 0000251c R_ARM_CALL 00000000 fftw_mpi_block │ │ │ │ │ -00000c3c 0000251c R_ARM_CALL 00000000 fftw_mpi_block │ │ │ │ │ -00000c50 0000251c R_ARM_CALL 00000000 fftw_mpi_block │ │ │ │ │ -00000d30 0000321c R_ARM_CALL 00000000 fftw_ops_zero │ │ │ │ │ -00000d48 0000331c R_ARM_CALL 00000000 fftw_ops_add2 │ │ │ │ │ -00000d60 0000331c R_ARM_CALL 00000000 fftw_ops_add2 │ │ │ │ │ -00000d78 0000331c R_ARM_CALL 00000000 fftw_ops_add2 │ │ │ │ │ -00000d90 0000331c R_ARM_CALL 00000000 fftw_ops_add2 │ │ │ │ │ -00000dd8 0000291c R_ARM_CALL 00000000 fftw_mktensor_3d │ │ │ │ │ -00000de4 0000271c R_ARM_CALL 00000000 fftw_mkproblem_rdft_0_d │ │ │ │ │ -00000e00 0000281c R_ARM_CALL 00000000 fftw_mkplan_f_d │ │ │ │ │ -00000e14 00002d1c R_ARM_CALL 00000000 fftw_mpi_any_true │ │ │ │ │ -00000e30 0000221c R_ARM_CALL 00000000 fftw_plan_destroy_internal │ │ │ │ │ -00000e38 0000221c R_ARM_CALL 00000000 fftw_plan_destroy_internal │ │ │ │ │ -00000e40 0000221c R_ARM_CALL 00000000 fftw_plan_destroy_internal │ │ │ │ │ -00000e48 0000221c R_ARM_CALL 00000000 fftw_plan_destroy_internal │ │ │ │ │ -00000e54 00001d1c R_ARM_CALL 00000000 fftw_malloc_plain │ │ │ │ │ -00000e80 00001d1c R_ARM_CALL 00000000 fftw_malloc_plain │ │ │ │ │ -00000f4c 00001f1c R_ARM_CALL 00000000 fftw_ifree │ │ │ │ │ -00000fcc 00001403 R_ARM_REL32 00000000 .data.rel.ro │ │ │ │ │ -00000fe8 0000351c R_ARM_CALL 00000000 fftw_mksolver │ │ │ │ │ -00000ffc 0000361c R_ARM_CALL 00000000 fftw_solver_register │ │ │ │ │ -00001008 0000351c R_ARM_CALL 00000000 fftw_mksolver │ │ │ │ │ -00001020 0000361d R_ARM_JUMP24 00000000 fftw_solver_register │ │ │ │ │ -00001024 00001703 R_ARM_REL32 00000000 .data.rel.ro.local │ │ │ │ │ +00000070 00000303 R_ARM_REL32 00000004 .LC1 │ │ │ │ │ +00000074 00000403 R_ARM_REL32 00000008 .LC2 │ │ │ │ │ +00000078 00000203 R_ARM_REL32 00000000 .LC0 │ │ │ │ │ +000000f4 00001a1c R_ARM_CALL 00000000 __aeabi_idivmod │ │ │ │ │ +00000114 00001a1c R_ARM_CALL 00000000 __aeabi_idivmod │ │ │ │ │ +0000012c 00001a1c R_ARM_CALL 00000000 __aeabi_idivmod │ │ │ │ │ +0000014c 00001a1c R_ARM_CALL 00000000 __aeabi_idivmod │ │ │ │ │ +000001f8 00001a1c R_ARM_CALL 00000000 __aeabi_idivmod │ │ │ │ │ +00000218 00001a1c R_ARM_CALL 00000000 __aeabi_idivmod │ │ │ │ │ +00000230 00001a1c R_ARM_CALL 00000000 __aeabi_idivmod │ │ │ │ │ +00000250 00001a1c R_ARM_CALL 00000000 __aeabi_idivmod │ │ │ │ │ +00000388 00001b1c R_ARM_CALL 00000000 MPI_Sendrecv │ │ │ │ │ +000003cc 00001c1c R_ARM_CALL 00000000 memcpy │ │ │ │ │ +000003fc 00001d1c R_ARM_CALL 00000000 fftw_malloc_plain │ │ │ │ │ +00000450 00001e1c R_ARM_CALL 00000000 memmove │ │ │ │ │ +0000048c 00001c1c R_ARM_CALL 00000000 memcpy │ │ │ │ │ +000004f0 00001b1c R_ARM_CALL 00000000 MPI_Sendrecv │ │ │ │ │ +00000504 00001f1c R_ARM_CALL 00000000 fftw_ifree │ │ │ │ │ +00000684 0000201c R_ARM_CALL 00000000 fftw_ifree0 │ │ │ │ │ +0000068c 0000201c R_ARM_CALL 00000000 fftw_ifree0 │ │ │ │ │ +00000694 0000211c R_ARM_CALL 00000000 MPI_Comm_free │ │ │ │ │ +0000069c 0000221c R_ARM_CALL 00000000 fftw_plan_destroy_internal │ │ │ │ │ +000006a4 0000221c R_ARM_CALL 00000000 fftw_plan_destroy_internal │ │ │ │ │ +000006ac 0000221c R_ARM_CALL 00000000 fftw_plan_destroy_internal │ │ │ │ │ +000006c0 0000221d R_ARM_JUMP24 00000000 fftw_plan_destroy_internal │ │ │ │ │ +000006dc 0000231c R_ARM_CALL 00000000 fftw_plan_awake │ │ │ │ │ +000006e8 0000231c R_ARM_CALL 00000000 fftw_plan_awake │ │ │ │ │ +000006f4 0000231c R_ARM_CALL 00000000 fftw_plan_awake │ │ │ │ │ +00000710 0000231d R_ARM_JUMP24 00000000 fftw_plan_awake │ │ │ │ │ +00000754 0000251c R_ARM_CALL 00000000 fftw_mpi_block │ │ │ │ │ +00000764 00001a1c R_ARM_CALL 00000000 __aeabi_idivmod │ │ │ │ │ +00000800 0000261c R_ARM_CALL 00000000 fftw_mktensor_4d │ │ │ │ │ +0000080c 0000271c R_ARM_CALL 00000000 fftw_mkproblem_rdft_0_d │ │ │ │ │ +00000824 0000281c R_ARM_CALL 00000000 fftw_mkplan_f_d │ │ │ │ │ +00000880 0000291c R_ARM_CALL 00000000 fftw_mktensor_3d │ │ │ │ │ +0000089c 0000271c R_ARM_CALL 00000000 fftw_mkproblem_rdft_0_d │ │ │ │ │ +000008b4 0000281c R_ARM_CALL 00000000 fftw_mkplan_f_d │ │ │ │ │ +00000924 0000291c R_ARM_CALL 00000000 fftw_mktensor_3d │ │ │ │ │ +00000930 0000271c R_ARM_CALL 00000000 fftw_mkproblem_rdft_0_d │ │ │ │ │ +00000948 0000281c R_ARM_CALL 00000000 fftw_mkplan_f_d │ │ │ │ │ +000009a8 00002a1c R_ARM_CALL 00000000 fftw_mktensor_2d │ │ │ │ │ +000009c4 0000271c R_ARM_CALL 00000000 fftw_mkproblem_rdft_0_d │ │ │ │ │ +000009dc 0000281c R_ARM_CALL 00000000 fftw_mkplan_f_d │ │ │ │ │ +000009f8 0000221c R_ARM_CALL 00000000 fftw_plan_destroy_internal │ │ │ │ │ +00000a04 0000221c R_ARM_CALL 00000000 fftw_plan_destroy_internal │ │ │ │ │ +00000a10 0000221c R_ARM_CALL 00000000 fftw_plan_destroy_internal │ │ │ │ │ +00000a5c 0000291c R_ARM_CALL 00000000 fftw_mktensor_3d │ │ │ │ │ +00000a68 0000271c R_ARM_CALL 00000000 fftw_mkproblem_rdft_0_d │ │ │ │ │ +00000a80 0000281c R_ARM_CALL 00000000 fftw_mkplan_f_d │ │ │ │ │ +00000b34 00002b1c R_ARM_CALL 00000000 MPI_Comm_rank │ │ │ │ │ +00000b40 00002c1c R_ARM_CALL 00000000 MPI_Comm_size │ │ │ │ │ +00000b50 0000251c R_ARM_CALL 00000000 fftw_mpi_block │ │ │ │ │ +00000bb8 0000241c R_ARM_CALL 00000714 fftw_mpi_mkplans_posttranspose │ │ │ │ │ +00000bc4 00002d1c R_ARM_CALL 00000000 fftw_mpi_any_true │ │ │ │ │ +00000bfc 00002e1c R_ARM_CALL 00000000 fftw_mkplan_rdft │ │ │ │ │ +00000c48 00002f1c R_ARM_CALL 00000000 MPI_Comm_dup │ │ │ │ │ +00000c54 0000301c R_ARM_CALL 00000000 fftw_mpi_num_blocks │ │ │ │ │ +00000c64 0000301c R_ARM_CALL 00000000 fftw_mpi_num_blocks │ │ │ │ │ +00000c70 0000311c R_ARM_CALL 00000000 fftw_imax │ │ │ │ │ +00000c7c 00001d1c R_ARM_CALL 00000000 fftw_malloc_plain │ │ │ │ │ +00000cb4 0000251c R_ARM_CALL 00000000 fftw_mpi_block │ │ │ │ │ +00000cc8 0000251c R_ARM_CALL 00000000 fftw_mpi_block │ │ │ │ │ +00000d28 0000251c R_ARM_CALL 00000000 fftw_mpi_block │ │ │ │ │ +00000d3c 0000251c R_ARM_CALL 00000000 fftw_mpi_block │ │ │ │ │ +00000e20 0000321c R_ARM_CALL 00000000 fftw_ops_zero │ │ │ │ │ +00000e38 0000331c R_ARM_CALL 00000000 fftw_ops_add2 │ │ │ │ │ +00000e4c 0000331c R_ARM_CALL 00000000 fftw_ops_add2 │ │ │ │ │ +00000e64 0000331c R_ARM_CALL 00000000 fftw_ops_add2 │ │ │ │ │ +00000e7c 0000331c R_ARM_CALL 00000000 fftw_ops_add2 │ │ │ │ │ +00000ec0 0000291c R_ARM_CALL 00000000 fftw_mktensor_3d │ │ │ │ │ +00000ecc 0000271c R_ARM_CALL 00000000 fftw_mkproblem_rdft_0_d │ │ │ │ │ +00000ee8 0000281c R_ARM_CALL 00000000 fftw_mkplan_f_d │ │ │ │ │ +00000efc 00002d1c R_ARM_CALL 00000000 fftw_mpi_any_true │ │ │ │ │ +00000f14 0000221c R_ARM_CALL 00000000 fftw_plan_destroy_internal │ │ │ │ │ +00000f1c 0000221c R_ARM_CALL 00000000 fftw_plan_destroy_internal │ │ │ │ │ +00000f24 0000221c R_ARM_CALL 00000000 fftw_plan_destroy_internal │ │ │ │ │ +00000f2c 0000221c R_ARM_CALL 00000000 fftw_plan_destroy_internal │ │ │ │ │ +00000f38 00001d1c R_ARM_CALL 00000000 fftw_malloc_plain │ │ │ │ │ +00000f64 00001d1c R_ARM_CALL 00000000 fftw_malloc_plain │ │ │ │ │ +00001030 00001f1c R_ARM_CALL 00000000 fftw_ifree │ │ │ │ │ +000010a8 00001403 R_ARM_REL32 00000000 .data.rel.ro │ │ │ │ │ +000010cc 0000351c R_ARM_CALL 00000000 fftw_mksolver │ │ │ │ │ +000010e0 0000361c R_ARM_CALL 00000000 fftw_solver_register │ │ │ │ │ +000010ec 0000351c R_ARM_CALL 00000000 fftw_mksolver │ │ │ │ │ +00001110 0000361d R_ARM_JUMP24 00000000 fftw_solver_register │ │ │ │ │ +00001114 00001703 R_ARM_REL32 00000000 .data.rel.ro.local │ │ │ │ │ │ │ │ │ │ -Relocation section '.rel.data.rel.ro' at offset 0x1970 contains 4 entries: │ │ │ │ │ +Relocation section '.rel.data.rel.ro' at offset 0x1a60 contains 4 entries: │ │ │ │ │ Offset Info Type Sym. Value Symbol's Name │ │ │ │ │ 00000000 00003702 R_ARM_ABS32 00000000 fftw_mpi_transpose_solve │ │ │ │ │ -00000004 00000f02 R_ARM_ABS32 00000638 awake │ │ │ │ │ +00000004 00000f02 R_ARM_ABS32 000006c4 awake │ │ │ │ │ 00000008 00000602 R_ARM_ABS32 00000000 print │ │ │ │ │ -0000000c 00000e02 R_ARM_ABS32 000005f4 destroy │ │ │ │ │ +0000000c 00000e02 R_ARM_ABS32 00000674 destroy │ │ │ │ │ │ │ │ │ │ -Relocation section '.rel.data.rel.ro.local' at offset 0x1990 contains 1 entry: │ │ │ │ │ +Relocation section '.rel.data.rel.ro.local' at offset 0x1a80 contains 1 entry: │ │ │ │ │ Offset Info Type Sym. Value Symbol's Name │ │ │ │ │ -00000004 00001002 R_ARM_ABS32 000009d8 mkplan │ │ │ │ │ +00000004 00001002 R_ARM_ABS32 00000a98 mkplan │ │ │ │ ├── objdump --line-numbers --disassemble --demangle --reloc --no-show-raw-insn --section=.text {} │ │ │ │ │ @@ -2,352 +2,376 @@ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ Disassembly of section .text: │ │ │ │ │ │ │ │ │ │ 00000000 : │ │ │ │ │ print(): │ │ │ │ │ mov r3, r0 │ │ │ │ │ + mov r0, r1 │ │ │ │ │ + str r4, [sp, #-8]! │ │ │ │ │ ldr r2, [r3, #120] @ 0x78 │ │ │ │ │ - push {r4, lr} │ │ │ │ │ - cmp r2, #2 │ │ │ │ │ - ldr r4, [r1] │ │ │ │ │ + str lr, [sp, #4] │ │ │ │ │ sub sp, sp, #16 │ │ │ │ │ - mov r0, r1 │ │ │ │ │ - beq 58 │ │ │ │ │ - ldr r2, [pc, #60] @ 64 │ │ │ │ │ + ldr r4, [r1] │ │ │ │ │ + cmp r2, #2 │ │ │ │ │ + beq 64 │ │ │ │ │ + ldr r2, [pc, #68] @ 70 │ │ │ │ │ add r2, pc, r2 │ │ │ │ │ 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] │ │ │ │ │ - ldr r1, [pc, #32] @ 68 │ │ │ │ │ + ldr r1, [pc, #40] @ 74 │ │ │ │ │ ldr r3, [r3, #64] @ 0x40 │ │ │ │ │ add r1, pc, r1 │ │ │ │ │ blx r4 │ │ │ │ │ add sp, sp, #16 │ │ │ │ │ - pop {r4, pc} │ │ │ │ │ - ldr r2, [pc, #12] @ 6c │ │ │ │ │ + ldr r4, [sp] │ │ │ │ │ + add sp, sp, #4 │ │ │ │ │ + pop {pc} @ (ldr pc, [sp], #4) │ │ │ │ │ + ldr r2, [pc, #12] @ 78 │ │ │ │ │ add r2, pc, r2 │ │ │ │ │ - b 28 │ │ │ │ │ - .word 0x00000038 │ │ │ │ │ + b 2c │ │ │ │ │ + .word 0x00000040 │ │ │ │ │ R_ARM_REL32 .LC1 │ │ │ │ │ - .word 0x00000018 │ │ │ │ │ + .word 0x00000020 │ │ │ │ │ R_ARM_REL32 .LC2 │ │ │ │ │ .word 0x00000008 │ │ │ │ │ R_ARM_REL32 .LC0 │ │ │ │ │ │ │ │ │ │ -00000070 : │ │ │ │ │ +0000007c : │ │ │ │ │ fill1_comm_sched(): │ │ │ │ │ - push {r4, r5, r6, r7, r8, r9, sl, fp, lr} │ │ │ │ │ + strd r4, [sp, #-36]! @ 0xffffffdc │ │ │ │ │ ands r4, r2, #1 │ │ │ │ │ - sub sp, sp, #12 │ │ │ │ │ - mov r9, r0 │ │ │ │ │ mov r5, r1 │ │ │ │ │ + strd r6, [sp, #8] │ │ │ │ │ mov r7, r2 │ │ │ │ │ - bne 154 │ │ │ │ │ + strd r8, [sp, #16] │ │ │ │ │ + mov r9, r0 │ │ │ │ │ + strd sl, [sp, #24] │ │ │ │ │ + str lr, [sp, #32] │ │ │ │ │ + sub sp, sp, #12 │ │ │ │ │ + bne 184 │ │ │ │ │ sub r6, r2, #1 │ │ │ │ │ - cmp r6, #0 │ │ │ │ │ str r1, [r9] │ │ │ │ │ - ble 14c │ │ │ │ │ + cmp r6, #0 │ │ │ │ │ + ble 168 │ │ │ │ │ mov r8, #1 │ │ │ │ │ - asr r7, r2, r8 │ │ │ │ │ sub sl, r6, r1 │ │ │ │ │ + asr r7, r2, r8 │ │ │ │ │ add fp, r1, r6 │ │ │ │ │ cmp r5, r4 │ │ │ │ │ streq r6, [r9, r8, lsl #2] │ │ │ │ │ addeq r8, r8, #1 │ │ │ │ │ - beq 140 │ │ │ │ │ + beq 15c │ │ │ │ │ cmp r5, r6 │ │ │ │ │ streq r4, [r9, r8, lsl #2] │ │ │ │ │ addeq r8, r8, #1 │ │ │ │ │ cmp r5, r6 │ │ │ │ │ - bge 140 │ │ │ │ │ + bge 15c │ │ │ │ │ mov r1, r6 │ │ │ │ │ add r0, sl, r4 │ │ │ │ │ bl 0 <__aeabi_idivmod> │ │ │ │ │ R_ARM_CALL __aeabi_idivmod │ │ │ │ │ cmp r7, r1 │ │ │ │ │ mov r0, r1 │ │ │ │ │ - ble 108 │ │ │ │ │ + ble 124 │ │ │ │ │ add r3, r8, #1 │ │ │ │ │ mov r1, r6 │ │ │ │ │ add r0, r0, r4 │ │ │ │ │ str r3, [sp, #4] │ │ │ │ │ bl 0 <__aeabi_idivmod> │ │ │ │ │ R_ARM_CALL __aeabi_idivmod │ │ │ │ │ ldr r3, [sp, #4] │ │ │ │ │ str r1, [r9, r8, lsl #2] │ │ │ │ │ mov r8, r3 │ │ │ │ │ mov r1, r6 │ │ │ │ │ sub r0, fp, r4 │ │ │ │ │ bl 0 <__aeabi_idivmod> │ │ │ │ │ R_ARM_CALL __aeabi_idivmod │ │ │ │ │ cmp r7, r1 │ │ │ │ │ - ble 140 │ │ │ │ │ - sub r0, r4, r1 │ │ │ │ │ + ble 15c │ │ │ │ │ add r3, r8, #1 │ │ │ │ │ - mov r1, r6 │ │ │ │ │ + sub r0, r4, r1 │ │ │ │ │ add r0, r0, r6 │ │ │ │ │ + mov r1, r6 │ │ │ │ │ str r3, [sp, #4] │ │ │ │ │ bl 0 <__aeabi_idivmod> │ │ │ │ │ R_ARM_CALL __aeabi_idivmod │ │ │ │ │ ldr r3, [sp, #4] │ │ │ │ │ str r1, [r9, r8, lsl #2] │ │ │ │ │ mov r8, r3 │ │ │ │ │ add r4, r4, #1 │ │ │ │ │ cmp r4, r6 │ │ │ │ │ - bne ac │ │ │ │ │ + bne c8 │ │ │ │ │ add sp, sp, #12 │ │ │ │ │ - pop {r4, r5, r6, r7, r8, r9, sl, fp, pc} │ │ │ │ │ + ldrd r4, [sp] │ │ │ │ │ + ldrd r6, [sp, #8] │ │ │ │ │ + ldrd r8, [sp, #16] │ │ │ │ │ + ldrd sl, [sp, #24] │ │ │ │ │ + add sp, sp, #32 │ │ │ │ │ + pop {pc} @ (ldr pc, [sp], #4) │ │ │ │ │ cmp r2, #0 │ │ │ │ │ - ble 14c │ │ │ │ │ + ble 168 │ │ │ │ │ cmp r2, r1 │ │ │ │ │ - bgt 1a4 │ │ │ │ │ + bgt 1d4 │ │ │ │ │ mov r2, #0 │ │ │ │ │ mov r3, r2 │ │ │ │ │ cmp r5, r3 │ │ │ │ │ - beq 188 │ │ │ │ │ + beq 1b8 │ │ │ │ │ add r3, r3, #1 │ │ │ │ │ cmp r3, r7 │ │ │ │ │ - beq 14c │ │ │ │ │ + beq 168 │ │ │ │ │ cmp r5, r3 │ │ │ │ │ - bne 174 │ │ │ │ │ + bne 1a4 │ │ │ │ │ add r3, r5, #1 │ │ │ │ │ - cmp r7, r3 │ │ │ │ │ add r1, r2, #1 │ │ │ │ │ str r5, [r9, r2, lsl #2] │ │ │ │ │ - beq 14c │ │ │ │ │ + cmp r7, r3 │ │ │ │ │ + beq 168 │ │ │ │ │ mov r2, r1 │ │ │ │ │ - b 16c │ │ │ │ │ + b 19c │ │ │ │ │ add r8, r2, #1 │ │ │ │ │ mov r6, #0 │ │ │ │ │ + asr r8, r8, #1 │ │ │ │ │ mov r4, r6 │ │ │ │ │ sub sl, r2, r1 │ │ │ │ │ - asr r8, r8, #1 │ │ │ │ │ add fp, r1, r2 │ │ │ │ │ - b 23c │ │ │ │ │ + b 26c │ │ │ │ │ mov r1, r7 │ │ │ │ │ add r0, sl, r4 │ │ │ │ │ bl 0 <__aeabi_idivmod> │ │ │ │ │ R_ARM_CALL __aeabi_idivmod │ │ │ │ │ cmp r8, r1 │ │ │ │ │ mov r0, r1 │ │ │ │ │ - ble 1f8 │ │ │ │ │ + ble 228 │ │ │ │ │ add r3, r6, #1 │ │ │ │ │ mov r1, r7 │ │ │ │ │ add r0, r0, r4 │ │ │ │ │ str r3, [sp, #4] │ │ │ │ │ bl 0 <__aeabi_idivmod> │ │ │ │ │ R_ARM_CALL __aeabi_idivmod │ │ │ │ │ ldr r3, [sp, #4] │ │ │ │ │ str r1, [r9, r6, lsl #2] │ │ │ │ │ mov r6, r3 │ │ │ │ │ mov r1, r7 │ │ │ │ │ sub r0, fp, r4 │ │ │ │ │ bl 0 <__aeabi_idivmod> │ │ │ │ │ R_ARM_CALL __aeabi_idivmod │ │ │ │ │ cmp r1, r8 │ │ │ │ │ - bge 230 │ │ │ │ │ - sub r0, r4, r1 │ │ │ │ │ + bge 260 │ │ │ │ │ add r3, r6, #1 │ │ │ │ │ - mov r1, r7 │ │ │ │ │ + sub r0, r4, r1 │ │ │ │ │ add r0, r0, r7 │ │ │ │ │ + mov r1, r7 │ │ │ │ │ str r3, [sp, #4] │ │ │ │ │ bl 0 <__aeabi_idivmod> │ │ │ │ │ R_ARM_CALL __aeabi_idivmod │ │ │ │ │ ldr r3, [sp, #4] │ │ │ │ │ str r1, [r9, r6, lsl #2] │ │ │ │ │ mov r6, r3 │ │ │ │ │ add r4, r4, #1 │ │ │ │ │ cmp r7, r4 │ │ │ │ │ - beq 14c │ │ │ │ │ + beq 168 │ │ │ │ │ cmp r5, r4 │ │ │ │ │ - bne 1c0 │ │ │ │ │ + bne 1f0 │ │ │ │ │ str r5, [r9, r6, lsl #2] │ │ │ │ │ add r6, r6, #1 │ │ │ │ │ - b 230 │ │ │ │ │ + b 260 │ │ │ │ │ │ │ │ │ │ -00000250 : │ │ │ │ │ +00000280 : │ │ │ │ │ transpose_chunks(): │ │ │ │ │ - push {r4, r5, r6, r7, r8, r9, sl, fp, lr} │ │ │ │ │ + strd r4, [sp, #-36]! @ 0xffffffdc │ │ │ │ │ subs r4, r0, #0 │ │ │ │ │ + strd r6, [sp, #8] │ │ │ │ │ + strd r8, [sp, #16] │ │ │ │ │ + strd sl, [sp, #24] │ │ │ │ │ + str lr, [sp, #32] │ │ │ │ │ sub sp, sp, #84 @ 0x54 │ │ │ │ │ - ldr r7, [sp, #124] @ 0x7c │ │ │ │ │ - ldr fp, [sp, #128] @ 0x80 │ │ │ │ │ - beq 394 │ │ │ │ │ - mov sl, r2 │ │ │ │ │ + ldr sl, [sp, #128] @ 0x80 │ │ │ │ │ + beq 3d8 │ │ │ │ │ + mov fp, r2 │ │ │ │ │ mov r9, r3 │ │ │ │ │ - ldr r2, [sp, #140] @ 0x8c │ │ │ │ │ ldr r3, [sp, #136] @ 0x88 │ │ │ │ │ - mov r8, r1 │ │ │ │ │ + mov r7, r1 │ │ │ │ │ + ldr r2, [sp, #140] @ 0x8c │ │ │ │ │ cmp r3, r2 │ │ │ │ │ - beq 39c │ │ │ │ │ + beq 3f4 │ │ │ │ │ cmp r1, #0 │ │ │ │ │ - ble 394 │ │ │ │ │ - mul r3, sl, r1 │ │ │ │ │ - mov r8, sl │ │ │ │ │ + ble 3d8 │ │ │ │ │ + mul r3, fp, r1 │ │ │ │ │ + ldr r7, [sp, #140] @ 0x8c │ │ │ │ │ + sub r4, r4, #4 │ │ │ │ │ + lsl r8, fp, #2 │ │ │ │ │ + mov r5, #0 │ │ │ │ │ + ldr r6, [pc, #552] @ 50c │ │ │ │ │ str r3, [sp, #32] │ │ │ │ │ - add r3, fp, sl, lsl #2 │ │ │ │ │ + add r3, sl, r8 │ │ │ │ │ + str r9, [sp, #40] @ 0x28 │ │ │ │ │ str r3, [sp, #44] @ 0x2c │ │ │ │ │ ldr r3, [sp, #120] @ 0x78 │ │ │ │ │ - str r9, [sp, #40] @ 0x28 │ │ │ │ │ - add r3, r3, sl, lsl #2 │ │ │ │ │ + add r3, r3, r8 │ │ │ │ │ + add r8, r9, r8 │ │ │ │ │ + mov r9, r1 │ │ │ │ │ str r3, [sp, #48] @ 0x30 │ │ │ │ │ - add r3, r9, sl, lsl #2 │ │ │ │ │ - str r3, [sp, #52] @ 0x34 │ │ │ │ │ add r3, sp, #60 @ 0x3c │ │ │ │ │ - ldr r6, [pc, #500] @ 4b8 │ │ │ │ │ - ldr sl, [sp, #140] @ 0x8c │ │ │ │ │ - sub r4, r4, #4 │ │ │ │ │ - mov r5, #0 │ │ │ │ │ - mov r9, r1 │ │ │ │ │ str r3, [sp, #36] @ 0x24 │ │ │ │ │ - b 350 │ │ │ │ │ + str r8, [sp, #52] @ 0x34 │ │ │ │ │ + mov r8, fp │ │ │ │ │ + ldr fp, [sp, #124] @ 0x7c │ │ │ │ │ + b 394 │ │ │ │ │ ldr r2, [sp, #40] @ 0x28 │ │ │ │ │ + add r5, r5, #1 │ │ │ │ │ ldr ip, [sp, #136] @ 0x88 │ │ │ │ │ ldr r1, [r2, r3, lsl #2] │ │ │ │ │ ldr r2, [sp, #120] @ 0x78 │ │ │ │ │ - add r5, r5, #1 │ │ │ │ │ ldr r0, [r2, r3, lsl #2] │ │ │ │ │ + str r3, [sp, #16] │ │ │ │ │ ldr r2, [sp, #36] @ 0x24 │ │ │ │ │ + add r0, ip, r0, lsl #3 │ │ │ │ │ str r2, [sp, #28] │ │ │ │ │ ldr r2, [sp, #132] @ 0x84 │ │ │ │ │ str r2, [sp, #24] │ │ │ │ │ mla r2, r3, r9, r8 │ │ │ │ │ - str r3, [sp, #16] │ │ │ │ │ and r2, r2, r6 │ │ │ │ │ str r2, [sp, #20] │ │ │ │ │ - ldr r2, [pc, #420] @ 4bc │ │ │ │ │ + ldr r2, [pc, #432] @ 510 │ │ │ │ │ str r2, [sp, #12] │ │ │ │ │ - ldr r2, [r7, r3, lsl #2] │ │ │ │ │ - str r2, [sp, #8] │ │ │ │ │ ldr r2, [fp, r3, lsl #2] │ │ │ │ │ - add r0, ip, r0, lsl #3 │ │ │ │ │ - add r2, sl, r2, lsl #3 │ │ │ │ │ + str r2, [sp, #8] │ │ │ │ │ + ldr r2, [sl, r3, lsl #2] │ │ │ │ │ + add r2, r7, r2, lsl #3 │ │ │ │ │ str r2, [sp, #4] │ │ │ │ │ ldr r2, [sp, #32] │ │ │ │ │ add r2, r2, r3 │ │ │ │ │ and r2, r2, r6 │ │ │ │ │ str r2, [sp] │ │ │ │ │ - ldr r2, [pc, #372] @ 4bc │ │ │ │ │ + ldr r2, [pc, #388] @ 510 │ │ │ │ │ bl 0 │ │ │ │ │ R_ARM_CALL MPI_Sendrecv │ │ │ │ │ cmp r9, r5 │ │ │ │ │ - beq 394 │ │ │ │ │ + beq 3d8 │ │ │ │ │ ldr r3, [r4, #4]! │ │ │ │ │ cmp r3, r8 │ │ │ │ │ - bne 2d8 │ │ │ │ │ + bne 31c │ │ │ │ │ ldr r3, [sp, #44] @ 0x2c │ │ │ │ │ add r5, r5, #1 │ │ │ │ │ ldr r0, [r3] │ │ │ │ │ ldr r3, [sp, #52] @ 0x34 │ │ │ │ │ - add r0, sl, r0, lsl #3 │ │ │ │ │ + add r0, r7, r0, lsl #3 │ │ │ │ │ ldr r2, [r3] │ │ │ │ │ ldr r3, [sp, #48] @ 0x30 │ │ │ │ │ lsl r2, r2, #3 │ │ │ │ │ ldr r1, [r3] │ │ │ │ │ ldr r3, [sp, #136] @ 0x88 │ │ │ │ │ add r1, r3, r1, lsl #3 │ │ │ │ │ bl 0 │ │ │ │ │ R_ARM_CALL memcpy │ │ │ │ │ cmp r9, r5 │ │ │ │ │ - bne 350 │ │ │ │ │ + bne 394 │ │ │ │ │ add sp, sp, #84 @ 0x54 │ │ │ │ │ - pop {r4, r5, r6, r7, r8, r9, sl, fp, pc} │ │ │ │ │ + ldrd r4, [sp] │ │ │ │ │ + ldrd r6, [sp, #8] │ │ │ │ │ + ldrd r8, [sp, #16] │ │ │ │ │ + ldrd sl, [sp, #24] │ │ │ │ │ + add sp, sp, #32 │ │ │ │ │ + pop {pc} @ (ldr pc, [sp], #4) │ │ │ │ │ ldr r0, [r9] │ │ │ │ │ lsl r0, r0, #3 │ │ │ │ │ bl 0 │ │ │ │ │ R_ARM_CALL fftw_malloc_plain │ │ │ │ │ - cmp r8, #0 │ │ │ │ │ + cmp r7, #0 │ │ │ │ │ mov ip, r0 │ │ │ │ │ - ble 4a8 │ │ │ │ │ - mul r3, r8, sl │ │ │ │ │ + ble 500 │ │ │ │ │ + mul r3, r7, fp │ │ │ │ │ ldr r6, [sp, #140] @ 0x8c │ │ │ │ │ - str r3, [sp, #40] @ 0x28 │ │ │ │ │ - add r3, sp, #60 @ 0x3c │ │ │ │ │ sub r4, r4, #4 │ │ │ │ │ mov r5, #0 │ │ │ │ │ - str r3, [sp, #44] @ 0x2c │ │ │ │ │ str r0, [sp, #32] │ │ │ │ │ - b 404 │ │ │ │ │ - ldr r0, [fp, r3, lsl #2] │ │ │ │ │ + ldr r8, [pc, #228] @ 50c │ │ │ │ │ + str r3, [sp, #40] @ 0x28 │ │ │ │ │ + add r3, sp, #60 @ 0x3c │ │ │ │ │ + str r3, [sp, #44] @ 0x2c │ │ │ │ │ + b 460 │ │ │ │ │ + ldr r0, [sl, r3, lsl #2] │ │ │ │ │ cmp r0, r1 │ │ │ │ │ - beq 3f8 │ │ │ │ │ + beq 454 │ │ │ │ │ ldr r2, [r9, r3, lsl #2] │ │ │ │ │ add r1, r6, r1, lsl #3 │ │ │ │ │ - lsl r2, r2, #3 │ │ │ │ │ add r0, r6, r0, lsl #3 │ │ │ │ │ + lsl r2, r2, #3 │ │ │ │ │ bl 0 │ │ │ │ │ R_ARM_CALL memmove │ │ │ │ │ add r5, r5, #1 │ │ │ │ │ - cmp r8, r5 │ │ │ │ │ - beq 4a4 │ │ │ │ │ + cmp r7, r5 │ │ │ │ │ + beq 4fc │ │ │ │ │ ldr r3, [r4, #4]! │ │ │ │ │ ldr r2, [sp, #120] @ 0x78 │ │ │ │ │ - cmp sl, r3 │ │ │ │ │ + cmp fp, r3 │ │ │ │ │ ldr r1, [r2, r3, lsl #2] │ │ │ │ │ - beq 3d8 │ │ │ │ │ - ldr r2, [r9, r3, lsl #2] │ │ │ │ │ + beq 434 │ │ │ │ │ add r1, r6, r1, lsl #3 │ │ │ │ │ - lsl r2, r2, #3 │ │ │ │ │ - ldr r0, [sp, #32] │ │ │ │ │ str r3, [sp, #36] @ 0x24 │ │ │ │ │ + add r5, r5, #1 │ │ │ │ │ + ldr r2, [r9, r3, lsl #2] │ │ │ │ │ + ldr r0, [sp, #32] │ │ │ │ │ + lsl r2, r2, #3 │ │ │ │ │ bl 0 │ │ │ │ │ R_ARM_CALL memcpy │ │ │ │ │ + ldr r0, [sp, #32] │ │ │ │ │ ldr r3, [sp, #36] @ 0x24 │ │ │ │ │ ldr r2, [sp, #44] @ 0x2c │ │ │ │ │ ldr r1, [r9, r3, lsl #2] │ │ │ │ │ + str r3, [sp, #16] │ │ │ │ │ str r2, [sp, #28] │ │ │ │ │ ldr r2, [sp, #132] @ 0x84 │ │ │ │ │ str r2, [sp, #24] │ │ │ │ │ - mla r2, r3, r8, sl │ │ │ │ │ - str r3, [sp, #16] │ │ │ │ │ - lsl r2, r2, #17 │ │ │ │ │ - lsr r2, r2, #17 │ │ │ │ │ + mla r2, r3, r7, fp │ │ │ │ │ + and r2, r2, r8 │ │ │ │ │ str r2, [sp, #20] │ │ │ │ │ - ldr r2, [pc, #88] @ 4bc │ │ │ │ │ + ldr r2, [pc, #76] @ 510 │ │ │ │ │ str r2, [sp, #12] │ │ │ │ │ - ldr r2, [r7, r3, lsl #2] │ │ │ │ │ + ldr r2, [sp, #124] @ 0x7c │ │ │ │ │ + ldr r2, [r2, r3, lsl #2] │ │ │ │ │ str r2, [sp, #8] │ │ │ │ │ - ldr r2, [fp, r3, lsl #2] │ │ │ │ │ - ldr r0, [sp, #32] │ │ │ │ │ + ldr r2, [sl, r3, lsl #2] │ │ │ │ │ add r2, r6, r2, lsl #3 │ │ │ │ │ str r2, [sp, #4] │ │ │ │ │ ldr r2, [sp, #40] @ 0x28 │ │ │ │ │ - add r5, r5, #1 │ │ │ │ │ add r2, r2, r3 │ │ │ │ │ - lsl r2, r2, #17 │ │ │ │ │ - lsr r2, r2, #17 │ │ │ │ │ + and r2, r2, r8 │ │ │ │ │ str r2, [sp] │ │ │ │ │ - ldr r2, [pc, #32] @ 4bc │ │ │ │ │ + ldr r2, [pc, #28] @ 510 │ │ │ │ │ bl 0 │ │ │ │ │ R_ARM_CALL MPI_Sendrecv │ │ │ │ │ - cmp r8, r5 │ │ │ │ │ - bne 404 │ │ │ │ │ + cmp r7, r5 │ │ │ │ │ + bne 460 │ │ │ │ │ ldr ip, [sp, #32] │ │ │ │ │ mov r0, ip │ │ │ │ │ bl 0 │ │ │ │ │ R_ARM_CALL fftw_ifree │ │ │ │ │ - add sp, sp, #84 @ 0x54 │ │ │ │ │ - pop {r4, r5, r6, r7, r8, r9, sl, fp, pc} │ │ │ │ │ + b 3d8 │ │ │ │ │ .word 0x00007fff │ │ │ │ │ .word 0x4c00080b │ │ │ │ │ │ │ │ │ │ -000004c0 : │ │ │ │ │ +00000514 : │ │ │ │ │ apply(): │ │ │ │ │ - push {r4, r5, r6, r7, r8, r9, lr} │ │ │ │ │ + strd r4, [sp, #-28]! @ 0xffffffe4 │ │ │ │ │ mov r4, r0 │ │ │ │ │ + mov r5, r1 │ │ │ │ │ ldr r0, [r0, #64] @ 0x40 │ │ │ │ │ + strd r6, [sp, #8] │ │ │ │ │ + mov r6, r2 │ │ │ │ │ + strd r8, [sp, #16] │ │ │ │ │ + str lr, [sp, #24] │ │ │ │ │ sub sp, sp, #28 │ │ │ │ │ cmp r0, #0 │ │ │ │ │ - mov r5, r1 │ │ │ │ │ - mov r6, r2 │ │ │ │ │ - beq 594 │ │ │ │ │ + beq 614 │ │ │ │ │ ldr r3, [r0, #56] @ 0x38 │ │ │ │ │ blx r3 │ │ │ │ │ ldr r3, [r4, #120] @ 0x78 │ │ │ │ │ str r6, [sp, #16] │ │ │ │ │ cmp r3, #0 │ │ │ │ │ movne r5, r6 │ │ │ │ │ str r5, [sp, #20] │ │ │ │ │ @@ -355,74 +379,83 @@ │ │ │ │ │ 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] │ │ │ │ │ - ldr r3, [r4, #100] @ 0x64 │ │ │ │ │ - ldr r2, [r4, #92] @ 0x5c │ │ │ │ │ ldr r1, [r4, #88] @ 0x58 │ │ │ │ │ + ldr r2, [r4, #92] @ 0x5c │ │ │ │ │ ldr r0, [r4, #96] @ 0x60 │ │ │ │ │ - bl 250 │ │ │ │ │ + ldr r3, [r4, #100] @ 0x64 │ │ │ │ │ + bl 280 │ │ │ │ │ ldr r0, [r4, #68] @ 0x44 │ │ │ │ │ mov r2, r6 │ │ │ │ │ - ldr r3, [r0, #56] @ 0x38 │ │ │ │ │ mov r1, r5 │ │ │ │ │ + ldr r3, [r0, #56] @ 0x38 │ │ │ │ │ blx r3 │ │ │ │ │ ldr r0, [r4, #72] @ 0x48 │ │ │ │ │ cmp r0, #0 │ │ │ │ │ - beq 58c │ │ │ │ │ - ldr r2, [r4, #84] @ 0x54 │ │ │ │ │ + beq 5fc │ │ │ │ │ ldr r1, [r4, #80] @ 0x50 │ │ │ │ │ + ldr r2, [r4, #84] @ 0x54 │ │ │ │ │ ldr r3, [r0, #56] @ 0x38 │ │ │ │ │ - add r2, r6, r2, lsl #3 │ │ │ │ │ add r1, r5, r1, lsl #3 │ │ │ │ │ + add r2, r6, r2, lsl #3 │ │ │ │ │ blx r3 │ │ │ │ │ ldr r0, [r4, #76] @ 0x4c │ │ │ │ │ cmp r0, #0 │ │ │ │ │ - beq 58c │ │ │ │ │ + beq 5fc │ │ │ │ │ + ldr r3, [r0, #56] @ 0x38 │ │ │ │ │ mov r2, r6 │ │ │ │ │ mov r1, r6 │ │ │ │ │ - ldr r3, [r0, #56] @ 0x38 │ │ │ │ │ add sp, sp, #28 │ │ │ │ │ - pop {r4, r5, r6, r7, r8, r9, lr} │ │ │ │ │ + ldrd r4, [sp] │ │ │ │ │ + ldrd r6, [sp, #8] │ │ │ │ │ + ldrd r8, [sp, #16] │ │ │ │ │ + ldr lr, [sp, #24] │ │ │ │ │ + add sp, sp, #28 │ │ │ │ │ bx r3 │ │ │ │ │ add sp, sp, #28 │ │ │ │ │ - pop {r4, r5, r6, r7, r8, r9, pc} │ │ │ │ │ + ldrd r4, [sp] │ │ │ │ │ + ldrd r6, [sp, #8] │ │ │ │ │ + ldrd r8, [sp, #16] │ │ │ │ │ + add sp, sp, #24 │ │ │ │ │ + pop {pc} @ (ldr pc, [sp], #4) │ │ │ │ │ add r7, r4, #112 @ 0x70 │ │ │ │ │ - ldm r7, {r7, r8, r9} │ │ │ │ │ add r3, r4, #100 @ 0x64 │ │ │ │ │ - cmp r9, #0 │ │ │ │ │ - ldm r3, {r3, ip, lr} │ │ │ │ │ - ldr r0, [r4, #96] @ 0x60 │ │ │ │ │ ldr r1, [r4, #88] @ 0x58 │ │ │ │ │ + ldm r7, {r7, r8, r9} │ │ │ │ │ + ldm r3, {r3, ip, lr} │ │ │ │ │ + cmp r9, #0 │ │ │ │ │ ldr r2, [r4, #92] @ 0x5c │ │ │ │ │ - beq 5d8 │ │ │ │ │ + ldr r0, [r4, #96] @ 0x60 │ │ │ │ │ + beq 658 │ │ │ │ │ + stm sp, {ip, lr} │ │ │ │ │ + str r7, [sp, #8] │ │ │ │ │ + str r8, [sp, #12] │ │ │ │ │ str r5, [sp, #16] │ │ │ │ │ + mov r5, r6 │ │ │ │ │ str r6, [sp, #20] │ │ │ │ │ - str r8, [sp, #12] │ │ │ │ │ - str r7, [sp, #8] │ │ │ │ │ + bl 280 │ │ │ │ │ + b 590 │ │ │ │ │ stm sp, {ip, lr} │ │ │ │ │ - bl 250 │ │ │ │ │ - mov r5, r6 │ │ │ │ │ - b 530 │ │ │ │ │ - str r5, [sp, #20] │ │ │ │ │ - str r5, [sp, #16] │ │ │ │ │ - str r8, [sp, #12] │ │ │ │ │ str r7, [sp, #8] │ │ │ │ │ - stm sp, {ip, lr} │ │ │ │ │ - bl 250 │ │ │ │ │ - b 530 │ │ │ │ │ + str r8, [sp, #12] │ │ │ │ │ + str r5, [sp, #16] │ │ │ │ │ + str r5, [sp, #20] │ │ │ │ │ + bl 280 │ │ │ │ │ + b 590 │ │ │ │ │ │ │ │ │ │ -000005f4 : │ │ │ │ │ +00000674 : │ │ │ │ │ destroy(): │ │ │ │ │ - push {r4, lr} │ │ │ │ │ + str r4, [sp, #-8]! │ │ │ │ │ mov r4, r0 │ │ │ │ │ ldr r0, [r0, #96] @ 0x60 │ │ │ │ │ + str lr, [sp, #4] │ │ │ │ │ bl 0 │ │ │ │ │ R_ARM_CALL fftw_ifree0 │ │ │ │ │ ldr r0, [r4, #100] @ 0x64 │ │ │ │ │ bl 0 │ │ │ │ │ R_ARM_CALL fftw_ifree0 │ │ │ │ │ add r0, r4, #116 @ 0x74 │ │ │ │ │ bl 0 │ │ │ │ │ @@ -432,231 +465,247 @@ │ │ │ │ │ R_ARM_CALL fftw_plan_destroy_internal │ │ │ │ │ ldr r0, [r4, #72] @ 0x48 │ │ │ │ │ bl 0 │ │ │ │ │ R_ARM_CALL fftw_plan_destroy_internal │ │ │ │ │ ldr r0, [r4, #68] @ 0x44 │ │ │ │ │ bl 0 │ │ │ │ │ R_ARM_CALL fftw_plan_destroy_internal │ │ │ │ │ + ldr lr, [sp, #4] │ │ │ │ │ ldr r0, [r4, #64] @ 0x40 │ │ │ │ │ - pop {r4, lr} │ │ │ │ │ + ldr r4, [sp] │ │ │ │ │ + add sp, sp, #8 │ │ │ │ │ b 0 │ │ │ │ │ R_ARM_JUMP24 fftw_plan_destroy_internal │ │ │ │ │ │ │ │ │ │ -00000638 : │ │ │ │ │ +000006c4 : │ │ │ │ │ awake(): │ │ │ │ │ - push {r4, r5, r6, lr} │ │ │ │ │ + strd r4, [sp, #-16]! │ │ │ │ │ mov r4, r0 │ │ │ │ │ mov r5, r1 │ │ │ │ │ ldr r0, [r0, #64] @ 0x40 │ │ │ │ │ + str r6, [sp, #8] │ │ │ │ │ + str lr, [sp, #12] │ │ │ │ │ bl 0 │ │ │ │ │ R_ARM_CALL fftw_plan_awake │ │ │ │ │ ldr r0, [r4, #68] @ 0x44 │ │ │ │ │ mov r1, r5 │ │ │ │ │ bl 0 │ │ │ │ │ R_ARM_CALL fftw_plan_awake │ │ │ │ │ ldr r0, [r4, #72] @ 0x48 │ │ │ │ │ mov r1, r5 │ │ │ │ │ bl 0 │ │ │ │ │ R_ARM_CALL fftw_plan_awake │ │ │ │ │ - ldr r0, [r4, #76] @ 0x4c │ │ │ │ │ + ldr r6, [sp, #8] │ │ │ │ │ mov r1, r5 │ │ │ │ │ - pop {r4, r5, r6, lr} │ │ │ │ │ + ldr lr, [sp, #12] │ │ │ │ │ + ldr r0, [r4, #76] @ 0x4c │ │ │ │ │ + ldrd r4, [sp] │ │ │ │ │ + add sp, sp, #16 │ │ │ │ │ b 0 │ │ │ │ │ R_ARM_JUMP24 fftw_plan_awake │ │ │ │ │ │ │ │ │ │ -00000674 : │ │ │ │ │ +00000714 : │ │ │ │ │ fftw_mpi_mkplans_posttranspose(): │ │ │ │ │ - push {r4, r5, r6, r7, r8, r9, sl, fp, lr} │ │ │ │ │ - sub sp, sp, #52 @ 0x34 │ │ │ │ │ + strd r4, [sp, #-36]! @ 0xffffffdc │ │ │ │ │ + mov r4, r0 │ │ │ │ │ + strd r6, [sp, #8] │ │ │ │ │ + mov r7, r3 │ │ │ │ │ + strd r8, [sp, #16] │ │ │ │ │ + strd sl, [sp, #24] │ │ │ │ │ + mov fp, r2 │ │ │ │ │ ldr r8, [r0, #28] │ │ │ │ │ + str lr, [sp, #32] │ │ │ │ │ + sub sp, sp, #52 @ 0x34 │ │ │ │ │ ldr r5, [r0, #4] │ │ │ │ │ - mov r4, r0 │ │ │ │ │ str r1, [sp, #32] │ │ │ │ │ - mov fp, r2 │ │ │ │ │ ldr r1, [r0, #32] │ │ │ │ │ - ldr r2, [sp, #88] @ 0x58 │ │ │ │ │ ldr r0, [r0, #12] │ │ │ │ │ - mov r7, r3 │ │ │ │ │ + mul sl, r8, r5 │ │ │ │ │ + ldr r2, [sp, #88] @ 0x58 │ │ │ │ │ bl 0 │ │ │ │ │ R_ARM_CALL fftw_mpi_block │ │ │ │ │ - mov r1, r8 │ │ │ │ │ - mul sl, r8, r5 │ │ │ │ │ mov r6, r0 │ │ │ │ │ ldr r0, [r4, #8] │ │ │ │ │ + mov r1, r8 │ │ │ │ │ bl 0 <__aeabi_idivmod> │ │ │ │ │ R_ARM_CALL __aeabi_idivmod │ │ │ │ │ ldr r2, [sp, #100] @ 0x64 │ │ │ │ │ mov r3, #0 │ │ │ │ │ + str r0, [sp, #36] @ 0x24 │ │ │ │ │ + str r1, [sp, #40] @ 0x28 │ │ │ │ │ str r3, [r2] │ │ │ │ │ ldr r2, [sp, #96] @ 0x60 │ │ │ │ │ str r3, [r2] │ │ │ │ │ ldr r2, [sp, #92] @ 0x5c │ │ │ │ │ str r3, [r2] │ │ │ │ │ ldr r2, [sp, #108] @ 0x6c │ │ │ │ │ str r3, [r2] │ │ │ │ │ ldr r2, [sp, #104] @ 0x68 │ │ │ │ │ str r3, [r2] │ │ │ │ │ ldr r9, [r4, #24] │ │ │ │ │ ands r9, r9, #8 │ │ │ │ │ - str r0, [sp, #36] @ 0x24 │ │ │ │ │ - str r1, [sp, #40] @ 0x28 │ │ │ │ │ - bne 710 │ │ │ │ │ + bne 7c0 │ │ │ │ │ subs r3, fp, r7 │ │ │ │ │ movne r3, #1 │ │ │ │ │ cmp r1, #0 │ │ │ │ │ orreq r3, r3, #1 │ │ │ │ │ cmp r3, #0 │ │ │ │ │ - bne 830 │ │ │ │ │ + bne 8f4 │ │ │ │ │ mul r2, r6, r8 │ │ │ │ │ + mov r9, #1 │ │ │ │ │ + ldr r0, [sp, #36] @ 0x24 │ │ │ │ │ mul r3, r6, r5 │ │ │ │ │ + str sl, [sp] │ │ │ │ │ + mov sl, #8 │ │ │ │ │ + stmib sp, {r5, r8} │ │ │ │ │ mul r2, r5, r2 │ │ │ │ │ - mov r9, #1 │ │ │ │ │ + str r5, [sp, #12] │ │ │ │ │ + str r3, [sp, #16] │ │ │ │ │ + str r5, [sp, #20] │ │ │ │ │ mov r1, r2 │ │ │ │ │ + str r9, [sp, #24] │ │ │ │ │ + str r9, [sp, #28] │ │ │ │ │ str r3, [sp, #44] @ 0x2c │ │ │ │ │ - str r3, [sp, #16] │ │ │ │ │ - str sl, [sp] │ │ │ │ │ mov r3, r6 │ │ │ │ │ - ldr r0, [sp, #36] @ 0x24 │ │ │ │ │ - str r9, [sp, #28] │ │ │ │ │ - str r9, [sp, #24] │ │ │ │ │ - str r5, [sp, #20] │ │ │ │ │ - str r5, [sp, #12] │ │ │ │ │ - stmib sp, {r5, r8} │ │ │ │ │ bl 0 │ │ │ │ │ R_ARM_CALL fftw_mktensor_4d │ │ │ │ │ mov r2, r7 │ │ │ │ │ mov r1, fp │ │ │ │ │ bl 0 │ │ │ │ │ R_ARM_CALL fftw_mkproblem_rdft_0_d │ │ │ │ │ - mov sl, #8 │ │ │ │ │ mov r3, #0 │ │ │ │ │ - mov r2, r3 │ │ │ │ │ - str sl, [sp] │ │ │ │ │ mov r1, r0 │ │ │ │ │ ldr r0, [sp, #32] │ │ │ │ │ + mov r2, r3 │ │ │ │ │ + str sl, [sp] │ │ │ │ │ bl 0 │ │ │ │ │ R_ARM_CALL fftw_mkplan_f_d │ │ │ │ │ ldr r3, [sp, #92] @ 0x5c │ │ │ │ │ cmp r0, #0 │ │ │ │ │ str r0, [r3] │ │ │ │ │ - beq 92c │ │ │ │ │ + beq 9f0 │ │ │ │ │ ldr r3, [sp, #36] @ 0x24 │ │ │ │ │ + mov r0, r6 │ │ │ │ │ ldr r2, [sp, #108] @ 0x6c │ │ │ │ │ mul r3, r6, r3 │ │ │ │ │ - mov r0, r6 │ │ │ │ │ mul r3, r8, r3 │ │ │ │ │ mul r3, r5, r3 │ │ │ │ │ str r3, [r2] │ │ │ │ │ ldr r2, [sp, #104] @ 0x68 │ │ │ │ │ str r3, [r2] │ │ │ │ │ + mov r2, r5 │ │ │ │ │ ldr r3, [sp, #44] @ 0x2c │ │ │ │ │ + str r5, [sp] │ │ │ │ │ str r3, [sp, #4] │ │ │ │ │ ldr r3, [sp, #40] @ 0x28 │ │ │ │ │ - mov r2, r5 │ │ │ │ │ - mul r1, r3, r5 │ │ │ │ │ - str r9, [sp, #16] │ │ │ │ │ - str r9, [sp, #12] │ │ │ │ │ str r5, [sp, #8] │ │ │ │ │ - str r5, [sp] │ │ │ │ │ + str r9, [sp, #12] │ │ │ │ │ + str r9, [sp, #16] │ │ │ │ │ + mul r1, r3, r5 │ │ │ │ │ bl 0 │ │ │ │ │ R_ARM_CALL fftw_mktensor_3d │ │ │ │ │ ldr r3, [sp, #108] @ 0x6c │ │ │ │ │ ldr r2, [r3] │ │ │ │ │ ldr r3, [sp, #104] @ 0x68 │ │ │ │ │ add r2, r7, r2, lsl #3 │ │ │ │ │ ldr r1, [r3] │ │ │ │ │ add r1, fp, r1, lsl #3 │ │ │ │ │ bl 0 │ │ │ │ │ R_ARM_CALL fftw_mkproblem_rdft_0_d │ │ │ │ │ mov r3, #0 │ │ │ │ │ - mov r2, r3 │ │ │ │ │ - str sl, [sp] │ │ │ │ │ mov r1, r0 │ │ │ │ │ ldr r0, [sp, #32] │ │ │ │ │ + mov r2, r3 │ │ │ │ │ + str sl, [sp] │ │ │ │ │ bl 0 │ │ │ │ │ R_ARM_CALL fftw_mkplan_f_d │ │ │ │ │ ldr r3, [sp, #96] @ 0x60 │ │ │ │ │ cmp r0, #0 │ │ │ │ │ str r0, [r3] │ │ │ │ │ - beq 92c │ │ │ │ │ + beq 9f0 │ │ │ │ │ ldr r8, [r4, #24] │ │ │ │ │ ands r8, r8, #8 │ │ │ │ │ - beq 974 │ │ │ │ │ + beq a34 │ │ │ │ │ mov r0, #1 │ │ │ │ │ add sp, sp, #52 @ 0x34 │ │ │ │ │ - pop {r4, r5, r6, r7, r8, r9, sl, fp, pc} │ │ │ │ │ + ldrd r4, [sp] │ │ │ │ │ + ldrd r6, [sp, #8] │ │ │ │ │ + ldrd r8, [sp, #16] │ │ │ │ │ + ldrd sl, [sp, #24] │ │ │ │ │ + add sp, sp, #32 │ │ │ │ │ + pop {pc} @ (ldr pc, [sp], #4) │ │ │ │ │ ldr r3, [r4, #8] │ │ │ │ │ mov r8, #1 │ │ │ │ │ - mul r2, r3, r5 │ │ │ │ │ mul r1, sl, r6 │ │ │ │ │ + str sl, [sp] │ │ │ │ │ + mov r4, #8 │ │ │ │ │ + str r8, [sp, #12] │ │ │ │ │ + str r8, [sp, #16] │ │ │ │ │ + mul r2, r3, r5 │ │ │ │ │ mov r3, r6 │ │ │ │ │ - str r2, [sp, #44] @ 0x2c │ │ │ │ │ stmib sp, {r2, sl} │ │ │ │ │ - str r8, [sp, #16] │ │ │ │ │ + str r2, [sp, #44] @ 0x2c │ │ │ │ │ mov r2, sl │ │ │ │ │ - str r8, [sp, #12] │ │ │ │ │ - str sl, [sp] │ │ │ │ │ bl 0 │ │ │ │ │ R_ARM_CALL fftw_mktensor_3d │ │ │ │ │ mov r2, r7 │ │ │ │ │ mov r1, fp │ │ │ │ │ bl 0 │ │ │ │ │ R_ARM_CALL fftw_mkproblem_rdft_0_d │ │ │ │ │ - mov r4, #8 │ │ │ │ │ + mov r1, r0 │ │ │ │ │ + ldr r0, [sp, #32] │ │ │ │ │ mov r3, r9 │ │ │ │ │ mov r2, r9 │ │ │ │ │ str r4, [sp] │ │ │ │ │ - mov r1, r0 │ │ │ │ │ - ldr r0, [sp, #32] │ │ │ │ │ bl 0 │ │ │ │ │ R_ARM_CALL fftw_mkplan_f_d │ │ │ │ │ ldr r3, [sp, #92] @ 0x5c │ │ │ │ │ cmp r0, #0 │ │ │ │ │ str r0, [r3] │ │ │ │ │ - beq 92c │ │ │ │ │ + beq 9f0 │ │ │ │ │ ldr r3, [sp, #40] @ 0x28 │ │ │ │ │ cmp r3, #0 │ │ │ │ │ - ble 824 │ │ │ │ │ + ble 8d4 │ │ │ │ │ ldr r2, [sp, #36] @ 0x24 │ │ │ │ │ + mov r0, r6 │ │ │ │ │ ldr r1, [sp, #104] @ 0x68 │ │ │ │ │ mov r3, r2 │ │ │ │ │ - mul r3, r6, r3 │ │ │ │ │ mul r2, sl, r2 │ │ │ │ │ + mul r3, r6, r3 │ │ │ │ │ mul r3, sl, r3 │ │ │ │ │ - mov r0, r6 │ │ │ │ │ str r3, [r1] │ │ │ │ │ ldr r3, [sp, #108] @ 0x6c │ │ │ │ │ str r2, [r3] │ │ │ │ │ ldr r3, [sp, #40] @ 0x28 │ │ │ │ │ + str r8, [sp] │ │ │ │ │ ldr r2, [sp, #44] @ 0x2c │ │ │ │ │ - mul r3, r5, r3 │ │ │ │ │ str r8, [sp, #4] │ │ │ │ │ + mul r3, r5, r3 │ │ │ │ │ mov r1, r3 │ │ │ │ │ - str r8, [sp] │ │ │ │ │ bl 0 │ │ │ │ │ R_ARM_CALL fftw_mktensor_2d │ │ │ │ │ ldr r3, [sp, #108] @ 0x6c │ │ │ │ │ ldr r2, [r3] │ │ │ │ │ ldr r3, [sp, #104] @ 0x68 │ │ │ │ │ add r2, r7, r2, lsl #3 │ │ │ │ │ ldr r1, [r3] │ │ │ │ │ add r1, fp, r1, lsl #3 │ │ │ │ │ bl 0 │ │ │ │ │ R_ARM_CALL fftw_mkproblem_rdft_0_d │ │ │ │ │ + mov r1, r0 │ │ │ │ │ + ldr r0, [sp, #32] │ │ │ │ │ mov r3, r9 │ │ │ │ │ mov r2, r9 │ │ │ │ │ str r4, [sp] │ │ │ │ │ - mov r1, r0 │ │ │ │ │ - ldr r0, [sp, #32] │ │ │ │ │ bl 0 │ │ │ │ │ R_ARM_CALL fftw_mkplan_f_d │ │ │ │ │ ldr r3, [sp, #96] @ 0x60 │ │ │ │ │ cmp r0, #0 │ │ │ │ │ str r0, [r3] │ │ │ │ │ - bne 824 │ │ │ │ │ + bne 8d4 │ │ │ │ │ ldr r3, [sp, #100] @ 0x64 │ │ │ │ │ ldr r0, [r3] │ │ │ │ │ bl 0 │ │ │ │ │ R_ARM_CALL fftw_plan_destroy_internal │ │ │ │ │ ldr r3, [sp, #96] @ 0x60 │ │ │ │ │ ldr r0, [r3] │ │ │ │ │ bl 0 │ │ │ │ │ @@ -668,484 +717,495 @@ │ │ │ │ │ ldr r3, [sp, #100] @ 0x64 │ │ │ │ │ mov r0, #0 │ │ │ │ │ str r0, [r3] │ │ │ │ │ ldr r3, [sp, #96] @ 0x60 │ │ │ │ │ str r0, [r3] │ │ │ │ │ ldr r3, [sp, #92] @ 0x5c │ │ │ │ │ str r0, [r3] │ │ │ │ │ - add sp, sp, #52 @ 0x34 │ │ │ │ │ - pop {r4, r5, r6, r7, r8, r9, sl, fp, pc} │ │ │ │ │ + b 8d8 │ │ │ │ │ ldr r0, [r4, #8] │ │ │ │ │ + mov r2, r5 │ │ │ │ │ + str r5, [sp] │ │ │ │ │ ldr r1, [sp, #44] @ 0x2c │ │ │ │ │ + str r5, [sp, #8] │ │ │ │ │ + str r9, [sp, #12] │ │ │ │ │ mul r3, r5, r0 │ │ │ │ │ - mov r2, r5 │ │ │ │ │ str r3, [sp, #4] │ │ │ │ │ - str r9, [sp, #16] │ │ │ │ │ mov r3, r6 │ │ │ │ │ - str r9, [sp, #12] │ │ │ │ │ - str r5, [sp, #8] │ │ │ │ │ - str r5, [sp] │ │ │ │ │ + str r9, [sp, #16] │ │ │ │ │ bl 0 │ │ │ │ │ R_ARM_CALL fftw_mktensor_3d │ │ │ │ │ mov r2, r7 │ │ │ │ │ mov r1, r7 │ │ │ │ │ bl 0 │ │ │ │ │ R_ARM_CALL fftw_mkproblem_rdft_0_d │ │ │ │ │ + mov r1, r0 │ │ │ │ │ + ldr r0, [sp, #32] │ │ │ │ │ mov r3, r8 │ │ │ │ │ mov r2, r8 │ │ │ │ │ str sl, [sp] │ │ │ │ │ - mov r1, r0 │ │ │ │ │ - ldr r0, [sp, #32] │ │ │ │ │ bl 0 │ │ │ │ │ R_ARM_CALL fftw_mkplan_f_d │ │ │ │ │ ldr r3, [sp, #100] @ 0x64 │ │ │ │ │ cmp r0, #0 │ │ │ │ │ str r0, [r3] │ │ │ │ │ - bne 824 │ │ │ │ │ - b 934 │ │ │ │ │ + bne 8d4 │ │ │ │ │ + b 9f8 │ │ │ │ │ │ │ │ │ │ -000009d8 : │ │ │ │ │ +00000a98 : │ │ │ │ │ mkplan(): │ │ │ │ │ - push {r4, r5, r6, r7, r8, r9, sl, fp, lr} │ │ │ │ │ mov r3, #0 │ │ │ │ │ + strd r4, [sp, #-36]! @ 0xffffffdc │ │ │ │ │ + mov r4, r1 │ │ │ │ │ + strd r6, [sp, #8] │ │ │ │ │ + strd r8, [sp, #16] │ │ │ │ │ + mov r8, r0 │ │ │ │ │ + mov r9, r2 │ │ │ │ │ + strd sl, [sp, #24] │ │ │ │ │ + str lr, [sp, #32] │ │ │ │ │ sub sp, sp, #116 @ 0x74 │ │ │ │ │ str r3, [sp, #84] @ 0x54 │ │ │ │ │ str r3, [sp, #88] @ 0x58 │ │ │ │ │ str r3, [sp, #92] @ 0x5c │ │ │ │ │ ldr r3, [r0, #8] │ │ │ │ │ - mov r5, r0 │ │ │ │ │ cmp r3, #0 │ │ │ │ │ - mov r4, r1 │ │ │ │ │ - mov r8, r2 │ │ │ │ │ - beq a30 │ │ │ │ │ + beq b14 │ │ │ │ │ ldr r3, [r2, #164] @ 0xa4 │ │ │ │ │ tst r3, #4096 @ 0x1000 │ │ │ │ │ - beq a20 │ │ │ │ │ + beq b04 │ │ │ │ │ mov r0, #0 │ │ │ │ │ add sp, sp, #116 @ 0x74 │ │ │ │ │ - pop {r4, r5, r6, r7, r8, r9, sl, fp, pc} │ │ │ │ │ + ldrd r4, [sp] │ │ │ │ │ + ldrd r6, [sp, #8] │ │ │ │ │ + ldrd r8, [sp, #16] │ │ │ │ │ + ldrd sl, [sp, #24] │ │ │ │ │ + add sp, sp, #32 │ │ │ │ │ + pop {pc} @ (ldr pc, [sp], #4) │ │ │ │ │ ldr r2, [r1, #16] │ │ │ │ │ ldr r3, [r1, #20] │ │ │ │ │ cmp r2, r3 │ │ │ │ │ - beq a14 │ │ │ │ │ + beq ae4 │ │ │ │ │ ldr r3, [r4, #24] │ │ │ │ │ bics fp, r3, #12 │ │ │ │ │ - bne a14 │ │ │ │ │ + bne ae4 │ │ │ │ │ add r1, sp, #104 @ 0x68 │ │ │ │ │ - ldr r0, [r4, #36] @ 0x24 │ │ │ │ │ ldr r6, [r4, #4] │ │ │ │ │ - ldr r9, [r4, #16] │ │ │ │ │ + ldr r0, [r4, #36] @ 0x24 │ │ │ │ │ + ldr r7, [r4, #16] │ │ │ │ │ ldr sl, [r4, #20] │ │ │ │ │ bl 0 │ │ │ │ │ R_ARM_CALL MPI_Comm_rank │ │ │ │ │ - add r1, sp, #108 @ 0x6c │ │ │ │ │ ldr r0, [r4, #36] @ 0x24 │ │ │ │ │ + add r1, sp, #108 @ 0x6c │ │ │ │ │ bl 0 │ │ │ │ │ R_ARM_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_CALL fftw_mpi_block │ │ │ │ │ - ldr r7, [r4, #24] │ │ │ │ │ - ands r7, r7, #4 │ │ │ │ │ - strne fp, [sp, #40] @ 0x28 │ │ │ │ │ + ldr r5, [r4, #24] │ │ │ │ │ mov r3, r0 │ │ │ │ │ - beq db0 │ │ │ │ │ - ldr r3, [r5, #8] │ │ │ │ │ + ands r5, r5, #4 │ │ │ │ │ + strne fp, [sp, #40] @ 0x28 │ │ │ │ │ + beq e98 │ │ │ │ │ + ldr r3, [r8, #8] │ │ │ │ │ cmp r3, #0 │ │ │ │ │ - movne r9, sl │ │ │ │ │ - beq da0 │ │ │ │ │ + movne r7, sl │ │ │ │ │ + beq e88 │ │ │ │ │ add r3, sp, #100 @ 0x64 │ │ │ │ │ + mov r2, r7 │ │ │ │ │ + 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, r9 │ │ │ │ │ - mov r1, r8 │ │ │ │ │ str r3, [sp] │ │ │ │ │ - mov r0, r4 │ │ │ │ │ mov r3, sl │ │ │ │ │ - bl 674 │ │ │ │ │ + bl 714 │ │ │ │ │ R_ARM_CALL fftw_mpi_mkplans_posttranspose │ │ │ │ │ ldr r1, [r4, #36] @ 0x24 │ │ │ │ │ eor r0, r0, #1 │ │ │ │ │ bl 0 │ │ │ │ │ R_ARM_CALL fftw_mpi_any_true │ │ │ │ │ - ldr r9, [sp, #84] @ 0x54 │ │ │ │ │ + subs r3, r0, #0 │ │ │ │ │ + ldr r5, [sp, #84] @ 0x54 │ │ │ │ │ ldr sl, [sp, #88] @ 0x58 │ │ │ │ │ ldr fp, [sp, #92] @ 0x5c │ │ │ │ │ - str r9, [sp, #52] @ 0x34 │ │ │ │ │ - str sl, [sp, #48] @ 0x30 │ │ │ │ │ - str fp, [sp, #44] @ 0x2c │ │ │ │ │ - subs r3, r0, #0 │ │ │ │ │ str r3, [sp, #76] @ 0x4c │ │ │ │ │ - bne e2c │ │ │ │ │ - ldr r2, [pc, #1208] @ fc8 │ │ │ │ │ - ldr r1, [pc, #1208] @ fcc │ │ │ │ │ + str fp, [sp, #48] @ 0x30 │ │ │ │ │ + str sl, [sp, #52] @ 0x34 │ │ │ │ │ + bne f10 │ │ │ │ │ + ldr r2, [pc, #1204] @ 10a4 │ │ │ │ │ + mov r0, #128 @ 0x80 │ │ │ │ │ + ldr r1, [pc, #1200] @ 10a8 │ │ │ │ │ add r2, pc, r2 │ │ │ │ │ add r1, pc, r1 │ │ │ │ │ - mov r0, #128 @ 0x80 │ │ │ │ │ bl 0 │ │ │ │ │ R_ARM_CALL fftw_mkplan_rdft │ │ │ │ │ ldr r3, [sp, #40] @ 0x28 │ │ │ │ │ + add r1, r0, #116 @ 0x74 │ │ │ │ │ + mov r7, r0 │ │ │ │ │ str r3, [r0, #64] @ 0x40 │ │ │ │ │ ldr r3, [sp, #96] @ 0x60 │ │ │ │ │ + str r5, [r0, #68] @ 0x44 │ │ │ │ │ + str sl, [r0, #72] @ 0x48 │ │ │ │ │ + str fp, [r0, #76] @ 0x4c │ │ │ │ │ str r3, [r0, #80] @ 0x50 │ │ │ │ │ ldr r3, [sp, #100] @ 0x64 │ │ │ │ │ str r3, [r0, #84] @ 0x54 │ │ │ │ │ - ldr r3, [r5, #8] │ │ │ │ │ - add r1, r0, #116 @ 0x74 │ │ │ │ │ + ldr r3, [r8, #8] │ │ │ │ │ cmp r3, #0 │ │ │ │ │ - ldreq r3, [r8, #164] @ 0xa4 │ │ │ │ │ + ldreq r3, [r9, #164] @ 0xa4 │ │ │ │ │ movne r3, #2 │ │ │ │ │ andeq r3, r3, #4096 @ 0x1000 │ │ │ │ │ str r3, [r0, #120] @ 0x78 │ │ │ │ │ - str r9, [r0, #68] @ 0x44 │ │ │ │ │ - str sl, [r0, #72] @ 0x48 │ │ │ │ │ - str fp, [r0, #76] @ 0x4c │ │ │ │ │ - mov r7, r0 │ │ │ │ │ ldr r0, [r4, #36] @ 0x24 │ │ │ │ │ bl 0 │ │ │ │ │ R_ARM_CALL MPI_Comm_dup │ │ │ │ │ - ldr r1, [r4, #28] │ │ │ │ │ ldr r0, [r4, #8] │ │ │ │ │ + ldr r1, [r4, #28] │ │ │ │ │ bl 0 │ │ │ │ │ R_ARM_CALL fftw_mpi_num_blocks │ │ │ │ │ ldr r1, [r4, #32] │ │ │ │ │ - mov r5, r0 │ │ │ │ │ + mov r8, r0 │ │ │ │ │ ldr r0, [r4, #12] │ │ │ │ │ bl 0 │ │ │ │ │ R_ARM_CALL fftw_mpi_num_blocks │ │ │ │ │ mov r1, r0 │ │ │ │ │ - mov r0, r5 │ │ │ │ │ + mov r0, r8 │ │ │ │ │ bl 0 │ │ │ │ │ R_ARM_CALL fftw_imax │ │ │ │ │ str r0, [sp, #108] @ 0x6c │ │ │ │ │ lsl r0, r0, #4 │ │ │ │ │ bl 0 │ │ │ │ │ R_ARM_CALL fftw_malloc_plain │ │ │ │ │ ldr r3, [sp, #108] @ 0x6c │ │ │ │ │ - ldr r2, [sp, #104] @ 0x68 │ │ │ │ │ + mov fp, r0 │ │ │ │ │ + str r0, [sp, #60] @ 0x3c │ │ │ │ │ ldr r1, [r4, #28] │ │ │ │ │ - add r9, r0, r3, lsl #3 │ │ │ │ │ - add fp, r0, r3, lsl #2 │ │ │ │ │ - mov r5, r0 │ │ │ │ │ - add r3, r9, r3, lsl #2 │ │ │ │ │ + lsl r3, r3, #2 │ │ │ │ │ + add r9, r0, r3 │ │ │ │ │ ldr r0, [r4, #8] │ │ │ │ │ + add r2, r9, r3 │ │ │ │ │ + add r3, r2, r3 │ │ │ │ │ + str r2, [sp, #44] @ 0x2c │ │ │ │ │ + ldr r2, [sp, #104] @ 0x68 │ │ │ │ │ str r3, [sp, #56] @ 0x38 │ │ │ │ │ - str fp, [sp, #60] @ 0x3c │ │ │ │ │ str r9, [sp, #64] @ 0x40 │ │ │ │ │ bl 0 │ │ │ │ │ R_ARM_CALL fftw_mpi_block │ │ │ │ │ - ldr r2, [sp, #104] @ 0x68 │ │ │ │ │ ldr r1, [r4, #32] │ │ │ │ │ mov sl, r0 │ │ │ │ │ ldr r0, [r4, #12] │ │ │ │ │ + ldr r2, [sp, #104] @ 0x68 │ │ │ │ │ bl 0 │ │ │ │ │ R_ARM_CALL fftw_mpi_block │ │ │ │ │ mov r8, r0 │ │ │ │ │ ldr r0, [sp, #108] @ 0x6c │ │ │ │ │ cmp r0, #0 │ │ │ │ │ - ble f54 │ │ │ │ │ + ble 1038 │ │ │ │ │ + ldr r2, [sp, #44] @ 0x2c │ │ │ │ │ + sub r3, fp, #4 │ │ │ │ │ + sub fp, r9, #4 │ │ │ │ │ + mov r9, #0 │ │ │ │ │ + str r7, [sp, #68] @ 0x44 │ │ │ │ │ + mov r7, r3 │ │ │ │ │ + str r5, [sp, #72] @ 0x48 │ │ │ │ │ + sub r1, r2, #4 │ │ │ │ │ ldr r2, [sp, #56] @ 0x38 │ │ │ │ │ - sub r3, r5, #4 │ │ │ │ │ + str r1, [sp, #24] │ │ │ │ │ sub r2, r2, #4 │ │ │ │ │ str r2, [sp, #28] │ │ │ │ │ mov r2, #1 │ │ │ │ │ - sub r1, r9, #4 │ │ │ │ │ str r2, [sp, #36] @ 0x24 │ │ │ │ │ - str r7, [sp, #68] @ 0x44 │ │ │ │ │ mvn r2, #0 │ │ │ │ │ - sub fp, fp, #4 │ │ │ │ │ - mov r9, #0 │ │ │ │ │ - mov r7, r3 │ │ │ │ │ - str r1, [sp, #24] │ │ │ │ │ str r2, [sp, #32] │ │ │ │ │ - str r5, [sp, #72] @ 0x48 │ │ │ │ │ - ldr r1, [r4, #28] │ │ │ │ │ - mov r2, r9 │ │ │ │ │ ldr r0, [r4, #8] │ │ │ │ │ + mov r2, r9 │ │ │ │ │ + ldr r1, [r4, #28] │ │ │ │ │ bl 0 │ │ │ │ │ R_ARM_CALL fftw_mpi_block │ │ │ │ │ ldr r1, [r4, #32] │ │ │ │ │ - mov r2, r9 │ │ │ │ │ mov r5, r0 │ │ │ │ │ + mov r2, r9 │ │ │ │ │ ldr r0, [r4, #12] │ │ │ │ │ bl 0 │ │ │ │ │ R_ARM_CALL fftw_mpi_block │ │ │ │ │ - ldr r3, [sp, #24] │ │ │ │ │ mul r1, r0, sl │ │ │ │ │ + ldr r3, [sp, #24] │ │ │ │ │ mul r1, r6, r1 │ │ │ │ │ str r1, [r7, #4]! │ │ │ │ │ ldr r1, [r4, #32] │ │ │ │ │ mul r1, sl, r1 │ │ │ │ │ mul r1, r9, r1 │ │ │ │ │ mul r1, r6, r1 │ │ │ │ │ str r1, [fp, #4]! │ │ │ │ │ mul r1, r5, r8 │ │ │ │ │ mul r1, r6, r1 │ │ │ │ │ str r1, [r3, #4]! │ │ │ │ │ ldr r1, [r4, #28] │ │ │ │ │ str r3, [sp, #24] │ │ │ │ │ - mul r1, r8, r1 │ │ │ │ │ ldr r3, [sp, #28] │ │ │ │ │ + mul r1, r8, r1 │ │ │ │ │ mul r1, r9, r1 │ │ │ │ │ mul r1, r6, r1 │ │ │ │ │ str r1, [r3, #4]! │ │ │ │ │ mul r1, r0, r5 │ │ │ │ │ str r3, [sp, #28] │ │ │ │ │ cmp r1, #0 │ │ │ │ │ - ble cd8 │ │ │ │ │ + ble dc4 │ │ │ │ │ ldr r1, [r4, #32] │ │ │ │ │ mul r5, r1, r5 │ │ │ │ │ ldr r1, [r4, #28] │ │ │ │ │ mul r0, r1, r0 │ │ │ │ │ cmp r5, r0 │ │ │ │ │ - beq cd8 │ │ │ │ │ + beq dc4 │ │ │ │ │ movgt r3, #1 │ │ │ │ │ movle r3, #0 │ │ │ │ │ - str r3, [sp, #36] @ 0x24 │ │ │ │ │ str r9, [sp, #32] │ │ │ │ │ + str r3, [sp, #36] @ 0x24 │ │ │ │ │ ldr r0, [sp, #108] @ 0x6c │ │ │ │ │ add r9, r9, #1 │ │ │ │ │ cmp r0, r9 │ │ │ │ │ - bgt c30 │ │ │ │ │ + bgt d1c │ │ │ │ │ ldr r7, [sp, #68] @ 0x44 │ │ │ │ │ ldr r5, [sp, #72] @ 0x48 │ │ │ │ │ - ldr r3, [sp, #104] @ 0x68 │ │ │ │ │ + str r0, [r7, #88] @ 0x58 │ │ │ │ │ ldr r2, [sp, #60] @ 0x3c │ │ │ │ │ - str r2, [r7, #104] @ 0x68 │ │ │ │ │ + ldr r3, [sp, #104] @ 0x68 │ │ │ │ │ + str r2, [r7, #100] @ 0x64 │ │ │ │ │ + cmp r3, r0 │ │ │ │ │ ldr r2, [sp, #64] @ 0x40 │ │ │ │ │ + str r3, [r7, #92] @ 0x5c │ │ │ │ │ + str r2, [r7, #104] @ 0x68 │ │ │ │ │ + ldr r2, [sp, #44] @ 0x2c │ │ │ │ │ str r2, [r7, #108] @ 0x6c │ │ │ │ │ - cmp r3, r0 │ │ │ │ │ ldr r2, [sp, #56] @ 0x38 │ │ │ │ │ - str r0, [r7, #88] @ 0x58 │ │ │ │ │ - str r3, [r7, #92] @ 0x5c │ │ │ │ │ - str r5, [r7, #100] @ 0x64 │ │ │ │ │ str r2, [r7, #112] @ 0x70 │ │ │ │ │ - blt e50 │ │ │ │ │ + blt f34 │ │ │ │ │ mov r3, #0 │ │ │ │ │ str r3, [r7, #96] @ 0x60 │ │ │ │ │ add r4, r7, #8 │ │ │ │ │ mov r0, r4 │ │ │ │ │ bl 0 │ │ │ │ │ R_ARM_CALL fftw_ops_zero │ │ │ │ │ ldr r3, [sp, #40] @ 0x28 │ │ │ │ │ cmp r3, #0 │ │ │ │ │ - beq d4c │ │ │ │ │ + beq e3c │ │ │ │ │ mov r1, r4 │ │ │ │ │ add r0, r3, #8 │ │ │ │ │ bl 0 │ │ │ │ │ R_ARM_CALL fftw_ops_add2 │ │ │ │ │ - ldr r3, [sp, #52] @ 0x34 │ │ │ │ │ - cmp r3, #0 │ │ │ │ │ - beq d64 │ │ │ │ │ + cmp r5, #0 │ │ │ │ │ + beq e50 │ │ │ │ │ mov r1, r4 │ │ │ │ │ - add r0, r3, #8 │ │ │ │ │ + add r0, r5, #8 │ │ │ │ │ bl 0 │ │ │ │ │ R_ARM_CALL fftw_ops_add2 │ │ │ │ │ - ldr r3, [sp, #48] @ 0x30 │ │ │ │ │ + ldr r3, [sp, #52] @ 0x34 │ │ │ │ │ cmp r3, #0 │ │ │ │ │ - beq d7c │ │ │ │ │ + beq e68 │ │ │ │ │ mov r1, r4 │ │ │ │ │ add r0, r3, #8 │ │ │ │ │ bl 0 │ │ │ │ │ R_ARM_CALL fftw_ops_add2 │ │ │ │ │ - ldr r3, [sp, #44] @ 0x2c │ │ │ │ │ + ldr r3, [sp, #48] @ 0x30 │ │ │ │ │ cmp r3, #0 │ │ │ │ │ - beq d94 │ │ │ │ │ + beq e80 │ │ │ │ │ mov r1, r4 │ │ │ │ │ add r0, r3, #8 │ │ │ │ │ bl 0 │ │ │ │ │ R_ARM_CALL fftw_ops_add2 │ │ │ │ │ mov r0, r7 │ │ │ │ │ - add sp, sp, #116 @ 0x74 │ │ │ │ │ - pop {r4, r5, r6, r7, r8, r9, sl, fp, pc} │ │ │ │ │ - ldr r3, [r8, #164] @ 0xa4 │ │ │ │ │ + b ae8 │ │ │ │ │ + ldr r3, [r9, #164] @ 0xa4 │ │ │ │ │ tst r3, #4096 @ 0x1000 │ │ │ │ │ - movne r9, sl │ │ │ │ │ - b a94 │ │ │ │ │ + movne r7, sl │ │ │ │ │ + b b78 │ │ │ │ │ mul r3, r6, r3 │ │ │ │ │ mov r2, #1 │ │ │ │ │ - str r2, [sp, #16] │ │ │ │ │ - str r2, [sp, #12] │ │ │ │ │ - str r6, [sp, #8] │ │ │ │ │ - str r3, [sp, #4] │ │ │ │ │ str r6, [sp] │ │ │ │ │ - ldr r3, [r4, #12] │ │ │ │ │ + str r3, [sp, #4] │ │ │ │ │ + str r6, [sp, #8] │ │ │ │ │ + str r2, [sp, #12] │ │ │ │ │ + str r2, [sp, #16] │ │ │ │ │ mov r2, r6 │ │ │ │ │ + ldr r3, [r4, #12] │ │ │ │ │ mul r1, r6, r3 │ │ │ │ │ bl 0 │ │ │ │ │ R_ARM_CALL fftw_mktensor_3d │ │ │ │ │ mov r2, sl │ │ │ │ │ - mov r1, r9 │ │ │ │ │ + mov r1, r7 │ │ │ │ │ bl 0 │ │ │ │ │ R_ARM_CALL fftw_mkproblem_rdft_0_d │ │ │ │ │ mov r3, #8 │ │ │ │ │ - mov r2, r7 │ │ │ │ │ - str r3, [sp] │ │ │ │ │ - mov r3, r7 │ │ │ │ │ mov r1, r0 │ │ │ │ │ - mov r0, r8 │ │ │ │ │ + mov r2, r5 │ │ │ │ │ + mov r0, r9 │ │ │ │ │ + str r3, [sp] │ │ │ │ │ + mov r3, r5 │ │ │ │ │ bl 0 │ │ │ │ │ R_ARM_CALL fftw_mkplan_f_d │ │ │ │ │ - ldr r1, [r4, #36] @ 0x24 │ │ │ │ │ str r0, [sp, #40] @ 0x28 │ │ │ │ │ clz r0, r0 │ │ │ │ │ + ldr r1, [r4, #36] @ 0x24 │ │ │ │ │ lsr r0, r0, #5 │ │ │ │ │ bl 0 │ │ │ │ │ R_ARM_CALL fftw_mpi_any_true │ │ │ │ │ cmp r0, #0 │ │ │ │ │ - beq a84 │ │ │ │ │ - str r7, [sp, #52] @ 0x34 │ │ │ │ │ - str r7, [sp, #48] @ 0x30 │ │ │ │ │ - str r7, [sp, #44] @ 0x2c │ │ │ │ │ - ldr r0, [sp, #44] @ 0x2c │ │ │ │ │ - bl 0 │ │ │ │ │ - R_ARM_CALL fftw_plan_destroy_internal │ │ │ │ │ + beq b68 │ │ │ │ │ + str r5, [sp, #48] @ 0x30 │ │ │ │ │ + str r5, [sp, #52] @ 0x34 │ │ │ │ │ ldr r0, [sp, #48] @ 0x30 │ │ │ │ │ bl 0 │ │ │ │ │ R_ARM_CALL fftw_plan_destroy_internal │ │ │ │ │ ldr r0, [sp, #52] @ 0x34 │ │ │ │ │ bl 0 │ │ │ │ │ R_ARM_CALL fftw_plan_destroy_internal │ │ │ │ │ + mov r0, r5 │ │ │ │ │ + bl 0 │ │ │ │ │ + R_ARM_CALL fftw_plan_destroy_internal │ │ │ │ │ ldr r0, [sp, #40] @ 0x28 │ │ │ │ │ bl 0 │ │ │ │ │ R_ARM_CALL fftw_plan_destroy_internal │ │ │ │ │ - b a14 │ │ │ │ │ + b ae4 │ │ │ │ │ lsl r0, r0, #2 │ │ │ │ │ bl 0 │ │ │ │ │ R_ARM_CALL fftw_malloc_plain │ │ │ │ │ - ldr r2, [sp, #108] @ 0x6c │ │ │ │ │ ldr r1, [sp, #104] @ 0x68 │ │ │ │ │ + mov r6, r0 │ │ │ │ │ str r0, [r7, #96] @ 0x60 │ │ │ │ │ - mov r5, r0 │ │ │ │ │ - bl 70 │ │ │ │ │ - ldr r8, [sp, #32] │ │ │ │ │ - cmn r8, #1 │ │ │ │ │ - beq d28 │ │ │ │ │ - ldr r6, [sp, #108] @ 0x6c │ │ │ │ │ - lsl r0, r6, #3 │ │ │ │ │ + ldr r2, [sp, #108] @ 0x6c │ │ │ │ │ + bl 7c │ │ │ │ │ + ldr r9, [sp, #32] │ │ │ │ │ + cmn r9, #1 │ │ │ │ │ + beq e18 │ │ │ │ │ + ldr r8, [sp, #108] @ 0x6c │ │ │ │ │ + lsl r0, r8, #3 │ │ │ │ │ bl 0 │ │ │ │ │ R_ARM_CALL fftw_malloc_plain │ │ │ │ │ - mov r2, r6 │ │ │ │ │ - mov r1, r8 │ │ │ │ │ + mov r2, r8 │ │ │ │ │ + mov r1, r9 │ │ │ │ │ mov r4, r0 │ │ │ │ │ - bl 70 │ │ │ │ │ + bl 7c │ │ │ │ │ ldr r3, [sp, #36] @ 0x24 │ │ │ │ │ cmp r3, #0 │ │ │ │ │ - bne f68 │ │ │ │ │ - cmp r6, #0 │ │ │ │ │ - ble f48 │ │ │ │ │ - lsl r0, r6, #2 │ │ │ │ │ - lsl lr, r6, #1 │ │ │ │ │ - sub r8, r5, #4 │ │ │ │ │ - sub ip, r0, #4 │ │ │ │ │ - sub lr, lr, #1 │ │ │ │ │ - sub r2, r4, #4 │ │ │ │ │ - mov r1, r8 │ │ │ │ │ - add ip, r4, ip │ │ │ │ │ - ldr r3, [r2, #4]! │ │ │ │ │ - ldr r9, [r1, #4]! │ │ │ │ │ - sub r3, lr, r3 │ │ │ │ │ - cmp r2, ip │ │ │ │ │ - str r9, [r4, r3, lsl #2] │ │ │ │ │ - bne ec8 │ │ │ │ │ - cmp r6, #9 │ │ │ │ │ - ble fa4 │ │ │ │ │ + bne 104c │ │ │ │ │ + cmp r8, #0 │ │ │ │ │ + ble 102c │ │ │ │ │ + lsl ip, r8, #1 │ │ │ │ │ + sub r9, r6, #4 │ │ │ │ │ + mov r2, r4 │ │ │ │ │ + lsl r0, r8, #2 │ │ │ │ │ + mov r1, r9 │ │ │ │ │ + sub ip, ip, #1 │ │ │ │ │ + add lr, r4, r0 │ │ │ │ │ + ldr r3, [r2], #4 │ │ │ │ │ + ldr sl, [r1, #4]! │ │ │ │ │ + sub r3, ip, r3 │ │ │ │ │ + cmp r2, lr │ │ │ │ │ + str sl, [r4, r3, lsl #2] │ │ │ │ │ + bne fa8 │ │ │ │ │ + cmp r8, #9 │ │ │ │ │ + ble 1084 │ │ │ │ │ add r3, r4, r0 │ │ │ │ │ add r2, r0, #4 │ │ │ │ │ add r2, r4, r2 │ │ │ │ │ - orr r1, r5, r3 │ │ │ │ │ - subs r2, r5, r2 │ │ │ │ │ + orr r1, r6, r3 │ │ │ │ │ + subs r2, r6, r2 │ │ │ │ │ and r1, r1, #7 │ │ │ │ │ movne r2, #1 │ │ │ │ │ cmp r1, #0 │ │ │ │ │ movne r2, #0 │ │ │ │ │ cmp r2, #0 │ │ │ │ │ - lsrne ip, r6, #1 │ │ │ │ │ - subne r0, r3, #8 │ │ │ │ │ - addne ip, r5, ip, lsl #3 │ │ │ │ │ - movne r1, r5 │ │ │ │ │ - beq fa4 │ │ │ │ │ + beq 1084 │ │ │ │ │ + lsr ip, r8, #1 │ │ │ │ │ + sub r0, r3, #8 │ │ │ │ │ + mov r1, r6 │ │ │ │ │ + add ip, r6, ip, lsl #3 │ │ │ │ │ ldrd r2, [r0, #8]! │ │ │ │ │ strd r2, [r1], #8 │ │ │ │ │ cmp ip, r1 │ │ │ │ │ - bne f24 │ │ │ │ │ - tst r6, #1 │ │ │ │ │ - bicne r3, r6, #1 │ │ │ │ │ - addne r6, r3, r6 │ │ │ │ │ - ldrne r2, [r4, r6, lsl #2] │ │ │ │ │ - strne r2, [r5, r3, lsl #2] │ │ │ │ │ + bne 1004 │ │ │ │ │ + tst r8, #1 │ │ │ │ │ + beq 102c │ │ │ │ │ + bic r3, r8, #1 │ │ │ │ │ + add r8, r3, r8 │ │ │ │ │ + ldr r2, [r4, r8, lsl #2] │ │ │ │ │ + str r2, [r6, r3, lsl #2] │ │ │ │ │ mov r0, r4 │ │ │ │ │ bl 0 │ │ │ │ │ R_ARM_CALL fftw_ifree │ │ │ │ │ - b d28 │ │ │ │ │ + b e18 │ │ │ │ │ mov r3, #1 │ │ │ │ │ str r3, [sp, #36] @ 0x24 │ │ │ │ │ mvn r3, #0 │ │ │ │ │ str r3, [sp, #32] │ │ │ │ │ - b cf0 │ │ │ │ │ - cmp r6, #0 │ │ │ │ │ - ble f48 │ │ │ │ │ - lsl r0, r6, #2 │ │ │ │ │ - sub r8, r5, #4 │ │ │ │ │ - sub lr, r0, #4 │ │ │ │ │ - sub r2, r4, #4 │ │ │ │ │ - mov r1, r8 │ │ │ │ │ - add lr, r4, lr │ │ │ │ │ - ldr r3, [r2, #4]! │ │ │ │ │ + b ddc │ │ │ │ │ + cmp r8, #0 │ │ │ │ │ + ble 102c │ │ │ │ │ + lsl r0, r8, #2 │ │ │ │ │ + sub r9, r6, #4 │ │ │ │ │ + mov r2, r4 │ │ │ │ │ + mov r1, r9 │ │ │ │ │ + add lr, r4, r0 │ │ │ │ │ + ldr r3, [r2], #4 │ │ │ │ │ ldr ip, [r1, #4]! │ │ │ │ │ - add r3, r6, r3 │ │ │ │ │ + add r3, r8, r3 │ │ │ │ │ cmp r2, lr │ │ │ │ │ str ip, [r4, r3, lsl #2] │ │ │ │ │ - bne f88 │ │ │ │ │ - b ee0 │ │ │ │ │ - sub r3, r6, #-1073741823 @ 0xc0000001 │ │ │ │ │ - ldr r2, [sp, #76] @ 0x4c │ │ │ │ │ - add r3, r4, r3, lsl #2 │ │ │ │ │ - add r2, r2, #1 │ │ │ │ │ - ldr r1, [r3, #4]! │ │ │ │ │ - cmp r6, r2 │ │ │ │ │ - str r1, [r8, #4]! │ │ │ │ │ - bgt fb0 │ │ │ │ │ - b f48 │ │ │ │ │ - .word 0xfffff9a8 │ │ │ │ │ - .word 0x000004b0 │ │ │ │ │ + bne 1068 │ │ │ │ │ + b fc0 │ │ │ │ │ + ldr r3, [sp, #76] @ 0x4c │ │ │ │ │ + add r0, r4, r0 │ │ │ │ │ + add r3, r3, #1 │ │ │ │ │ + ldr r2, [r0], #4 │ │ │ │ │ + cmp r8, r3 │ │ │ │ │ + str r2, [r9, #4]! │ │ │ │ │ + bgt 108c │ │ │ │ │ + b 102c │ │ │ │ │ + .word 0xfffff918 │ │ │ │ │ + .word 0x000004a8 │ │ │ │ │ R_ARM_REL32 .data.rel.ro │ │ │ │ │ │ │ │ │ │ -00000fd0 : │ │ │ │ │ +000010ac : │ │ │ │ │ fftw_mpi_transpose_pairwise_register(): │ │ │ │ │ - push {r4, r5, r6, lr} │ │ │ │ │ - ldr r5, [pc, #72] @ 1024 │ │ │ │ │ + strd r4, [sp, #-16]! │ │ │ │ │ mov r4, r0 │ │ │ │ │ + mov r0, #12 │ │ │ │ │ + ldr r5, [pc, #84] @ 1114 │ │ │ │ │ + str r6, [sp, #8] │ │ │ │ │ + str lr, [sp, #12] │ │ │ │ │ add r5, pc, r5 │ │ │ │ │ mov r1, r5 │ │ │ │ │ - mov r0, #12 │ │ │ │ │ bl 0 │ │ │ │ │ R_ARM_CALL fftw_mksolver │ │ │ │ │ mov r3, #0 │ │ │ │ │ - str r3, [r0, #8] │ │ │ │ │ mov r1, r0 │ │ │ │ │ + str r3, [r0, #8] │ │ │ │ │ mov r0, r4 │ │ │ │ │ bl 0 │ │ │ │ │ R_ARM_CALL fftw_solver_register │ │ │ │ │ mov r1, r5 │ │ │ │ │ mov r0, #12 │ │ │ │ │ bl 0 │ │ │ │ │ R_ARM_CALL fftw_mksolver │ │ │ │ │ mov r3, #1 │ │ │ │ │ + ldr r6, [sp, #8] │ │ │ │ │ mov r1, r0 │ │ │ │ │ + ldr lr, [sp, #12] │ │ │ │ │ str r3, [r0, #8] │ │ │ │ │ mov r0, r4 │ │ │ │ │ - pop {r4, r5, r6, lr} │ │ │ │ │ + ldrd r4, [sp] │ │ │ │ │ + add sp, sp, #16 │ │ │ │ │ b 0 │ │ │ │ │ R_ARM_JUMP24 fftw_solver_register │ │ │ │ │ - .word 0x00000040 │ │ │ │ │ + .word 0x00000048 │ │ │ │ │ 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: 4836 (bytes into file) │ │ │ │ │ + Start of section headers: 5024 (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 0x12e4: │ │ │ │ │ +There are 15 section headers, starting at offset 0x13a0: │ │ │ │ │ │ │ │ │ │ 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 000988 00 AX 0 0 4 │ │ │ │ │ - [ 2] .rel.text REL 00000000 000fdc 000258 08 I 12 1 4 │ │ │ │ │ - [ 3] .data PROGBITS 00000000 0009bc 000000 00 WA 0 0 1 │ │ │ │ │ - [ 4] .bss NOBITS 00000000 0009bc 000000 00 WA 0 0 1 │ │ │ │ │ - [ 5] .rodata.str1.4 PROGBITS 00000000 0009bc 00004a 01 AMS 0 0 4 │ │ │ │ │ - [ 6] .data.rel.ro PROGBITS 00000000 000a06 000010 00 WA 0 0 4 │ │ │ │ │ - [ 7] .rel.data.rel.ro REL 00000000 001234 000020 08 I 12 6 4 │ │ │ │ │ - [ 8] .data.rel.ro.local PROGBITS 00000000 000a16 00000c 00 WA 0 0 4 │ │ │ │ │ - [ 9] .rel.data.rel.ro.local REL 00000000 001254 000008 08 I 12 8 4 │ │ │ │ │ - [10] .note.GNU-stack PROGBITS 00000000 000a22 000000 00 0 0 1 │ │ │ │ │ - [11] .ARM.attributes ARM_ATTRIBUTES 00000000 000a22 00002b 00 0 0 1 │ │ │ │ │ - [12] .symtab SYMTAB 00000000 000a50 000350 10 13 26 4 │ │ │ │ │ - [13] .strtab STRTAB 00000000 000da0 00023b 00 0 0 1 │ │ │ │ │ - [14] .shstrtab STRTAB 00000000 00125c 000087 00 0 0 1 │ │ │ │ │ + [ 1] .text PROGBITS 00000000 000034 000a44 00 AX 0 0 4 │ │ │ │ │ + [ 2] .rel.text REL 00000000 001098 000258 08 I 12 1 4 │ │ │ │ │ + [ 3] .data PROGBITS 00000000 000a78 000000 00 WA 0 0 1 │ │ │ │ │ + [ 4] .bss NOBITS 00000000 000a78 000000 00 WA 0 0 1 │ │ │ │ │ + [ 5] .rodata.str1.4 PROGBITS 00000000 000a78 00004a 01 AMS 0 0 4 │ │ │ │ │ + [ 6] .data.rel.ro PROGBITS 00000000 000ac2 000010 00 WA 0 0 4 │ │ │ │ │ + [ 7] .rel.data.rel.ro REL 00000000 0012f0 000020 08 I 12 6 4 │ │ │ │ │ + [ 8] .data.rel.ro.local PROGBITS 00000000 000ad2 00000c 00 WA 0 0 4 │ │ │ │ │ + [ 9] .rel.data.rel.ro.local REL 00000000 001310 000008 08 I 12 8 4 │ │ │ │ │ + [10] .note.GNU-stack PROGBITS 00000000 000ade 000000 00 0 0 1 │ │ │ │ │ + [11] .ARM.attributes ARM_ATTRIBUTES 00000000 000ade 00002b 00 0 0 1 │ │ │ │ │ + [12] .symtab SYMTAB 00000000 000b0c 000350 10 13 26 4 │ │ │ │ │ + [13] .strtab STRTAB 00000000 000e5c 00023b 00 0 0 1 │ │ │ │ │ + [14] .shstrtab STRTAB 00000000 001318 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: 00000000 0 NOTYPE LOCAL DEFAULT 1 $a │ │ │ │ │ - 2: 00000000 108 FUNC LOCAL DEFAULT 1 apply │ │ │ │ │ + 2: 00000000 144 FUNC LOCAL DEFAULT 1 apply │ │ │ │ │ 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: 0000006c 116 FUNC LOCAL DEFAULT 1 print │ │ │ │ │ - 8: 000000d4 0 NOTYPE LOCAL DEFAULT 1 $d │ │ │ │ │ - 9: 000000e0 0 NOTYPE LOCAL DEFAULT 1 $a │ │ │ │ │ - 10: 000000e0 40 FUNC LOCAL DEFAULT 1 radix_first │ │ │ │ │ - 11: 00000108 68 FUNC LOCAL DEFAULT 1 radix_sqrt │ │ │ │ │ - 12: 0000014c 36 FUNC LOCAL DEFAULT 1 destroy │ │ │ │ │ - 13: 00000170 48 FUNC LOCAL DEFAULT 1 awake │ │ │ │ │ - 14: 000001a0 1860 FUNC LOCAL DEFAULT 1 mkplan │ │ │ │ │ - 15: 000008d8 0 NOTYPE LOCAL DEFAULT 1 $d │ │ │ │ │ + 7: 00000090 128 FUNC LOCAL DEFAULT 1 print │ │ │ │ │ + 8: 00000104 0 NOTYPE LOCAL DEFAULT 1 $d │ │ │ │ │ + 9: 00000110 0 NOTYPE LOCAL DEFAULT 1 $a │ │ │ │ │ + 10: 00000110 60 FUNC LOCAL DEFAULT 1 radix_first │ │ │ │ │ + 11: 0000014c 88 FUNC LOCAL DEFAULT 1 radix_sqrt │ │ │ │ │ + 12: 000001a4 48 FUNC LOCAL DEFAULT 1 destroy │ │ │ │ │ + 13: 000001d4 68 FUNC LOCAL DEFAULT 1 awake │ │ │ │ │ + 14: 00000218 1900 FUNC LOCAL DEFAULT 1 mkplan │ │ │ │ │ + 15: 00000978 0 NOTYPE LOCAL DEFAULT 1 $d │ │ │ │ │ 16: 0000003c 0 NOTYPE LOCAL DEFAULT 5 .LC3 │ │ │ │ │ 17: 00000044 0 NOTYPE LOCAL DEFAULT 5 .LC4 │ │ │ │ │ - 18: 000008e4 0 NOTYPE LOCAL DEFAULT 1 $a │ │ │ │ │ - 19: 00000974 0 NOTYPE LOCAL DEFAULT 1 $d │ │ │ │ │ + 18: 00000984 0 NOTYPE LOCAL DEFAULT 1 $a │ │ │ │ │ + 19: 00000a30 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: 000008e4 164 FUNC GLOBAL DEFAULT 1 fftw_mpi_transpose_recurse_register │ │ │ │ │ + 49: 00000984 192 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,89 +1,89 @@ │ │ │ │ │ │ │ │ │ │ -Relocation section '.rel.text' at offset 0xfdc contains 75 entries: │ │ │ │ │ +Relocation section '.rel.text' at offset 0x1098 contains 75 entries: │ │ │ │ │ Offset Info Type Sym. Value Symbol's Name │ │ │ │ │ -000000d4 00000503 R_ARM_REL32 00000004 .LC1 │ │ │ │ │ -000000d8 00000603 R_ARM_REL32 00000008 .LC2 │ │ │ │ │ -000000dc 00000403 R_ARM_REL32 00000000 .LC0 │ │ │ │ │ -000000e8 00001a1c R_ARM_CALL 00000000 fftw_first_divisor │ │ │ │ │ -000000f4 00001b1c R_ARM_CALL 00000000 fftw_isqrt │ │ │ │ │ -00000110 00001b1c R_ARM_CALL 00000000 fftw_isqrt │ │ │ │ │ -00000120 00001c1c R_ARM_CALL 00000000 __aeabi_idivmod │ │ │ │ │ -00000138 00001c1c R_ARM_CALL 00000000 __aeabi_idivmod │ │ │ │ │ -00000158 00001d1c R_ARM_CALL 00000000 fftw_plan_destroy_internal │ │ │ │ │ -00000160 00001d1c R_ARM_CALL 00000000 fftw_plan_destroy_internal │ │ │ │ │ -0000016c 00001d1d R_ARM_JUMP24 00000000 fftw_plan_destroy_internal │ │ │ │ │ -00000180 00001e1c R_ARM_CALL 00000000 fftw_plan_awake │ │ │ │ │ -0000018c 00001e1c R_ARM_CALL 00000000 fftw_plan_awake │ │ │ │ │ -0000019c 00001e1d R_ARM_JUMP24 00000000 fftw_plan_awake │ │ │ │ │ -000001c8 00001f1c R_ARM_CALL 00000000 MPI_Comm_size │ │ │ │ │ -00000274 0000201c R_ARM_CALL 00000000 __aeabi_idiv │ │ │ │ │ -000002b0 0000211c R_ARM_CALL 00000000 fftw_mpi_block │ │ │ │ │ -000002c4 0000211c R_ARM_CALL 00000000 fftw_mpi_block │ │ │ │ │ -000002d0 0000221c R_ARM_CALL 00000000 fftw_imax │ │ │ │ │ -000002e0 00001c1c R_ARM_CALL 00000000 __aeabi_idivmod │ │ │ │ │ -000002f8 0000211c R_ARM_CALL 00000000 fftw_mpi_block │ │ │ │ │ -0000030c 0000211c R_ARM_CALL 00000000 fftw_mpi_block │ │ │ │ │ -00000320 0000211c R_ARM_CALL 00000000 fftw_mpi_block │ │ │ │ │ -00000338 0000211c R_ARM_CALL 00000000 fftw_mpi_block │ │ │ │ │ -00000344 0000221c R_ARM_CALL 00000000 fftw_imax │ │ │ │ │ -0000035c 0000211c R_ARM_CALL 00000000 fftw_mpi_block │ │ │ │ │ -00000370 0000211c R_ARM_CALL 00000000 fftw_mpi_block │ │ │ │ │ -0000037c 0000221c R_ARM_CALL 00000000 fftw_imax │ │ │ │ │ -000003e0 0000201c R_ARM_CALL 00000000 __aeabi_idiv │ │ │ │ │ -000003f8 0000201c R_ARM_CALL 00000000 __aeabi_idiv │ │ │ │ │ -0000041c 00001f1c R_ARM_CALL 00000000 MPI_Comm_size │ │ │ │ │ -00000428 0000231c R_ARM_CALL 00000000 MPI_Comm_rank │ │ │ │ │ -00000434 0000201c R_ARM_CALL 00000000 __aeabi_idiv │ │ │ │ │ -00000450 0000211c R_ARM_CALL 00000000 fftw_mpi_block │ │ │ │ │ -000004d8 0000241c R_ARM_CALL 00000000 fftw_mktensor_5d │ │ │ │ │ -000004e4 0000251c R_ARM_CALL 00000000 fftw_mkproblem_rdft_0_d │ │ │ │ │ -00000500 0000261c R_ARM_CALL 00000000 fftw_mkplan_f_d │ │ │ │ │ -00000518 0000271c R_ARM_CALL 00000000 fftw_mpi_any_true │ │ │ │ │ -00000550 0000201c R_ARM_CALL 00000000 __aeabi_idiv │ │ │ │ │ -00000568 0000211c R_ARM_CALL 00000000 fftw_mpi_block │ │ │ │ │ -0000057c 0000201c R_ARM_CALL 00000000 __aeabi_idiv │ │ │ │ │ -00000590 0000281c R_ARM_CALL 00000000 MPI_Comm_split │ │ │ │ │ -000005e8 0000291c R_ARM_CALL 00000000 fftw_mpi_mkproblem_transpose │ │ │ │ │ -000005f4 00002a1c R_ARM_CALL 00000000 fftw_mkplan_d │ │ │ │ │ -0000060c 00002b1c R_ARM_CALL 00000000 MPI_Comm_free │ │ │ │ │ -00000628 0000271c R_ARM_CALL 00000000 fftw_mpi_any_true │ │ │ │ │ -0000063c 00001c1c R_ARM_CALL 00000000 __aeabi_idivmod │ │ │ │ │ -00000650 0000211c R_ARM_CALL 00000000 fftw_mpi_block │ │ │ │ │ -00000664 00001c1c R_ARM_CALL 00000000 __aeabi_idivmod │ │ │ │ │ -00000674 0000281c R_ARM_CALL 00000000 MPI_Comm_split │ │ │ │ │ -0000068c 00002b1c R_ARM_CALL 00000000 MPI_Comm_free │ │ │ │ │ -000006a4 0000271c R_ARM_CALL 00000000 fftw_mpi_any_true │ │ │ │ │ -000006c4 00002c1c R_ARM_CALL 00000000 fftw_mkplan_rdft │ │ │ │ │ -00000734 00002d1c R_ARM_CALL 00000000 fftw_ops_add2 │ │ │ │ │ -00000748 00002d1c R_ARM_CALL 00000000 fftw_ops_add2 │ │ │ │ │ -00000760 00001d1c R_ARM_CALL 00000000 fftw_plan_destroy_internal │ │ │ │ │ -00000768 00001d1c R_ARM_CALL 00000000 fftw_plan_destroy_internal │ │ │ │ │ -00000770 00001d1c R_ARM_CALL 00000000 fftw_plan_destroy_internal │ │ │ │ │ -000007a4 00002e1c R_ARM_CALL 00000000 fftw_mktensor_3d │ │ │ │ │ -000007b0 0000251c R_ARM_CALL 00000000 fftw_mkproblem_rdft_0_d │ │ │ │ │ -000007cc 0000261c R_ARM_CALL 00000000 fftw_mkplan_f_d │ │ │ │ │ -00000818 00002f1c R_ARM_CALL 00000000 fftw_mktensor_4d │ │ │ │ │ -00000868 0000291c R_ARM_CALL 00000000 fftw_mpi_mkproblem_transpose │ │ │ │ │ -00000874 00002a1c R_ARM_CALL 00000000 fftw_mkplan_d │ │ │ │ │ -000008a0 0000201c R_ARM_CALL 00000000 __aeabi_idiv │ │ │ │ │ -000008b8 0000201c R_ARM_CALL 00000000 __aeabi_idiv │ │ │ │ │ -000008bc 0000301c R_ARM_CALL 00000000 fftw_toobig │ │ │ │ │ -000008e0 00001403 R_ARM_REL32 00000000 .data.rel.ro │ │ │ │ │ -00000908 0000321c R_ARM_CALL 00000000 fftw_mksolver │ │ │ │ │ -00000928 0000331c R_ARM_CALL 00000000 fftw_solver_register │ │ │ │ │ -00000934 0000321c R_ARM_CALL 00000000 fftw_mksolver │ │ │ │ │ -0000095c 0000331c R_ARM_CALL 00000000 fftw_solver_register │ │ │ │ │ -00000974 00001703 R_ARM_REL32 00000000 .data.rel.ro.local │ │ │ │ │ -0000097c 00001003 R_ARM_REL32 0000003c .LC3 │ │ │ │ │ -00000984 00001103 R_ARM_REL32 00000044 .LC4 │ │ │ │ │ +00000104 00000503 R_ARM_REL32 00000004 .LC1 │ │ │ │ │ +00000108 00000603 R_ARM_REL32 00000008 .LC2 │ │ │ │ │ +0000010c 00000403 R_ARM_REL32 00000000 .LC0 │ │ │ │ │ +00000120 00001a1c R_ARM_CALL 00000000 fftw_first_divisor │ │ │ │ │ +0000012c 00001b1c R_ARM_CALL 00000000 fftw_isqrt │ │ │ │ │ +0000015c 00001b1c R_ARM_CALL 00000000 fftw_isqrt │ │ │ │ │ +0000016c 00001c1c R_ARM_CALL 00000000 __aeabi_idivmod │ │ │ │ │ +00000184 00001c1c R_ARM_CALL 00000000 __aeabi_idivmod │ │ │ │ │ +000001b4 00001d1c R_ARM_CALL 00000000 fftw_plan_destroy_internal │ │ │ │ │ +000001bc 00001d1c R_ARM_CALL 00000000 fftw_plan_destroy_internal │ │ │ │ │ +000001d0 00001d1d R_ARM_JUMP24 00000000 fftw_plan_destroy_internal │ │ │ │ │ +000001ec 00001e1c R_ARM_CALL 00000000 fftw_plan_awake │ │ │ │ │ +000001f8 00001e1c R_ARM_CALL 00000000 fftw_plan_awake │ │ │ │ │ +00000214 00001e1d R_ARM_JUMP24 00000000 fftw_plan_awake │ │ │ │ │ +00000250 00001f1c R_ARM_CALL 00000000 MPI_Comm_size │ │ │ │ │ +00000310 0000201c R_ARM_CALL 00000000 __aeabi_idiv │ │ │ │ │ +0000034c 0000211c R_ARM_CALL 00000000 fftw_mpi_block │ │ │ │ │ +00000360 0000211c R_ARM_CALL 00000000 fftw_mpi_block │ │ │ │ │ +0000036c 0000221c R_ARM_CALL 00000000 fftw_imax │ │ │ │ │ +0000037c 00001c1c R_ARM_CALL 00000000 __aeabi_idivmod │ │ │ │ │ +00000394 0000211c R_ARM_CALL 00000000 fftw_mpi_block │ │ │ │ │ +000003a8 0000211c R_ARM_CALL 00000000 fftw_mpi_block │ │ │ │ │ +000003bc 0000211c R_ARM_CALL 00000000 fftw_mpi_block │ │ │ │ │ +000003d4 0000211c R_ARM_CALL 00000000 fftw_mpi_block │ │ │ │ │ +000003e0 0000221c R_ARM_CALL 00000000 fftw_imax │ │ │ │ │ +000003f8 0000211c R_ARM_CALL 00000000 fftw_mpi_block │ │ │ │ │ +0000040c 0000211c R_ARM_CALL 00000000 fftw_mpi_block │ │ │ │ │ +00000418 0000221c R_ARM_CALL 00000000 fftw_imax │ │ │ │ │ +0000047c 0000201c R_ARM_CALL 00000000 __aeabi_idiv │ │ │ │ │ +00000494 0000201c R_ARM_CALL 00000000 __aeabi_idiv │ │ │ │ │ +000004b8 00001f1c R_ARM_CALL 00000000 MPI_Comm_size │ │ │ │ │ +000004c4 0000231c R_ARM_CALL 00000000 MPI_Comm_rank │ │ │ │ │ +000004d0 0000201c R_ARM_CALL 00000000 __aeabi_idiv │ │ │ │ │ +000004ec 0000211c R_ARM_CALL 00000000 fftw_mpi_block │ │ │ │ │ +00000574 0000241c R_ARM_CALL 00000000 fftw_mktensor_5d │ │ │ │ │ +00000580 0000251c R_ARM_CALL 00000000 fftw_mkproblem_rdft_0_d │ │ │ │ │ +0000059c 0000261c R_ARM_CALL 00000000 fftw_mkplan_f_d │ │ │ │ │ +000005b4 0000271c R_ARM_CALL 00000000 fftw_mpi_any_true │ │ │ │ │ +000005ec 0000201c R_ARM_CALL 00000000 __aeabi_idiv │ │ │ │ │ +00000604 0000211c R_ARM_CALL 00000000 fftw_mpi_block │ │ │ │ │ +00000618 0000201c R_ARM_CALL 00000000 __aeabi_idiv │ │ │ │ │ +0000062c 0000281c R_ARM_CALL 00000000 MPI_Comm_split │ │ │ │ │ +00000684 0000291c R_ARM_CALL 00000000 fftw_mpi_mkproblem_transpose │ │ │ │ │ +00000690 00002a1c R_ARM_CALL 00000000 fftw_mkplan_d │ │ │ │ │ +000006a8 00002b1c R_ARM_CALL 00000000 MPI_Comm_free │ │ │ │ │ +000006c4 0000271c R_ARM_CALL 00000000 fftw_mpi_any_true │ │ │ │ │ +000006d8 00001c1c R_ARM_CALL 00000000 __aeabi_idivmod │ │ │ │ │ +000006ec 0000211c R_ARM_CALL 00000000 fftw_mpi_block │ │ │ │ │ +00000700 00001c1c R_ARM_CALL 00000000 __aeabi_idivmod │ │ │ │ │ +00000710 0000281c R_ARM_CALL 00000000 MPI_Comm_split │ │ │ │ │ +00000728 00002b1c R_ARM_CALL 00000000 MPI_Comm_free │ │ │ │ │ +00000740 0000271c R_ARM_CALL 00000000 fftw_mpi_any_true │ │ │ │ │ +00000760 00002c1c R_ARM_CALL 00000000 fftw_mkplan_rdft │ │ │ │ │ +000007d8 00002d1c R_ARM_CALL 00000000 fftw_ops_add2 │ │ │ │ │ +000007ec 00002d1c R_ARM_CALL 00000000 fftw_ops_add2 │ │ │ │ │ +00000800 00001d1c R_ARM_CALL 00000000 fftw_plan_destroy_internal │ │ │ │ │ +00000808 00001d1c R_ARM_CALL 00000000 fftw_plan_destroy_internal │ │ │ │ │ +00000810 00001d1c R_ARM_CALL 00000000 fftw_plan_destroy_internal │ │ │ │ │ +00000844 00002e1c R_ARM_CALL 00000000 fftw_mktensor_3d │ │ │ │ │ +00000850 0000251c R_ARM_CALL 00000000 fftw_mkproblem_rdft_0_d │ │ │ │ │ +0000086c 0000261c R_ARM_CALL 00000000 fftw_mkplan_f_d │ │ │ │ │ +000008b8 00002f1c R_ARM_CALL 00000000 fftw_mktensor_4d │ │ │ │ │ +00000908 0000291c R_ARM_CALL 00000000 fftw_mpi_mkproblem_transpose │ │ │ │ │ +00000914 00002a1c R_ARM_CALL 00000000 fftw_mkplan_d │ │ │ │ │ +00000940 0000201c R_ARM_CALL 00000000 __aeabi_idiv │ │ │ │ │ +00000958 0000201c R_ARM_CALL 00000000 __aeabi_idiv │ │ │ │ │ +0000095c 0000301c R_ARM_CALL 00000000 fftw_toobig │ │ │ │ │ +00000980 00001403 R_ARM_REL32 00000000 .data.rel.ro │ │ │ │ │ +000009b4 0000321c R_ARM_CALL 00000000 fftw_mksolver │ │ │ │ │ +000009d4 0000331c R_ARM_CALL 00000000 fftw_solver_register │ │ │ │ │ +000009e0 0000321c R_ARM_CALL 00000000 fftw_mksolver │ │ │ │ │ +00000a08 0000331c R_ARM_CALL 00000000 fftw_solver_register │ │ │ │ │ +00000a30 00001703 R_ARM_REL32 00000000 .data.rel.ro.local │ │ │ │ │ +00000a38 00001003 R_ARM_REL32 0000003c .LC3 │ │ │ │ │ +00000a40 00001103 R_ARM_REL32 00000044 .LC4 │ │ │ │ │ │ │ │ │ │ -Relocation section '.rel.data.rel.ro' at offset 0x1234 contains 4 entries: │ │ │ │ │ +Relocation section '.rel.data.rel.ro' at offset 0x12f0 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 00000170 awake │ │ │ │ │ -00000008 00000702 R_ARM_ABS32 0000006c print │ │ │ │ │ -0000000c 00000c02 R_ARM_ABS32 0000014c destroy │ │ │ │ │ +00000004 00000d02 R_ARM_ABS32 000001d4 awake │ │ │ │ │ +00000008 00000702 R_ARM_ABS32 00000090 print │ │ │ │ │ +0000000c 00000c02 R_ARM_ABS32 000001a4 destroy │ │ │ │ │ │ │ │ │ │ -Relocation section '.rel.data.rel.ro.local' at offset 0x1254 contains 1 entry: │ │ │ │ │ +Relocation section '.rel.data.rel.ro.local' at offset 0x1310 contains 1 entry: │ │ │ │ │ Offset Info Type Sym. Value Symbol's Name │ │ │ │ │ -00000004 00000e02 R_ARM_ABS32 000001a0 mkplan │ │ │ │ │ +00000004 00000e02 R_ARM_ABS32 00000218 mkplan │ │ │ │ ├── objdump --line-numbers --disassemble --demangle --reloc --no-show-raw-insn --section=.text {} │ │ │ │ │ @@ -1,450 +1,489 @@ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ Disassembly of section .text: │ │ │ │ │ │ │ │ │ │ 00000000 : │ │ │ │ │ apply(): │ │ │ │ │ - push {r4, r5, r6, lr} │ │ │ │ │ + strd r4, [sp, #-16]! │ │ │ │ │ mov r4, r0 │ │ │ │ │ + mov r5, r2 │ │ │ │ │ ldr r0, [r0, #64] @ 0x40 │ │ │ │ │ + str r6, [sp, #8] │ │ │ │ │ mov r6, r1 │ │ │ │ │ + str lr, [sp, #12] │ │ │ │ │ cmp r0, #0 │ │ │ │ │ - mov r5, r2 │ │ │ │ │ - beq 24 │ │ │ │ │ + beq 2c │ │ │ │ │ ldr r3, [r0, #56] @ 0x38 │ │ │ │ │ blx r3 │ │ │ │ │ - ldr r3, [r4, #76] @ 0x4c │ │ │ │ │ ldr r0, [r4, #68] @ 0x44 │ │ │ │ │ + ldr r3, [r4, #76] @ 0x4c │ │ │ │ │ cmp r3, #0 │ │ │ │ │ movne r6, r5 │ │ │ │ │ cmp r0, #0 │ │ │ │ │ - beq 4c │ │ │ │ │ + beq 54 │ │ │ │ │ ldr r3, [r0, #56] @ 0x38 │ │ │ │ │ mov r2, r6 │ │ │ │ │ mov r1, r5 │ │ │ │ │ blx r3 │ │ │ │ │ ldr r0, [r4, #72] @ 0x48 │ │ │ │ │ cmp r0, #0 │ │ │ │ │ - popeq {r4, r5, r6, pc} │ │ │ │ │ + beq 80 │ │ │ │ │ + ldr lr, [sp, #12] │ │ │ │ │ mov r2, r5 │ │ │ │ │ mov r1, r6 │ │ │ │ │ + ldrd r4, [sp] │ │ │ │ │ + ldr r6, [sp, #8] │ │ │ │ │ + add sp, sp, #16 │ │ │ │ │ ldr r3, [r0, #56] @ 0x38 │ │ │ │ │ - pop {r4, r5, r6, lr} │ │ │ │ │ bx r3 │ │ │ │ │ + ldrd r4, [sp] │ │ │ │ │ + ldr r6, [sp, #8] │ │ │ │ │ + add sp, sp, #12 │ │ │ │ │ + pop {pc} @ (ldr pc, [sp], #4) │ │ │ │ │ │ │ │ │ │ -0000006c : │ │ │ │ │ +00000090 : │ │ │ │ │ print(): │ │ │ │ │ mov ip, r0 │ │ │ │ │ - push {r4, lr} │ │ │ │ │ mov r0, r1 │ │ │ │ │ + str r4, [sp, #-8]! │ │ │ │ │ ldr r4, [r1] │ │ │ │ │ + str lr, [sp, #4] │ │ │ │ │ + sub sp, sp, #16 │ │ │ │ │ ldr r1, [ip, #76] @ 0x4c │ │ │ │ │ + ldr r3, [ip, #80] @ 0x50 │ │ │ │ │ ldr r2, [ip, #84] @ 0x54 │ │ │ │ │ cmp r1, #2 │ │ │ │ │ - ldr r3, [ip, #80] @ 0x50 │ │ │ │ │ - sub sp, sp, #16 │ │ │ │ │ - beq c8 │ │ │ │ │ - ldr r1, [pc, #56] @ d4 │ │ │ │ │ + beq f8 │ │ │ │ │ + ldr r1, [pc, #64] @ 104 │ │ │ │ │ add r1, pc, r1 │ │ │ │ │ ldr lr, [ip, #72] @ 0x48 │ │ │ │ │ str lr, [sp, #12] │ │ │ │ │ ldr lr, [ip, #68] @ 0x44 │ │ │ │ │ str lr, [sp, #8] │ │ │ │ │ ldr ip, [ip, #64] @ 0x40 │ │ │ │ │ stm sp, {r1, ip} │ │ │ │ │ - ldr r1, [pc, #28] @ d8 │ │ │ │ │ + ldr r1, [pc, #36] @ 108 │ │ │ │ │ add r1, pc, r1 │ │ │ │ │ blx r4 │ │ │ │ │ add sp, sp, #16 │ │ │ │ │ - pop {r4, pc} │ │ │ │ │ - ldr r1, [pc, #12] @ dc │ │ │ │ │ + ldr r4, [sp] │ │ │ │ │ + add sp, sp, #4 │ │ │ │ │ + pop {pc} @ (ldr pc, [sp], #4) │ │ │ │ │ + ldr r1, [pc, #12] @ 10c │ │ │ │ │ add r1, pc, r1 │ │ │ │ │ - b 9c │ │ │ │ │ - .word 0x00000034 │ │ │ │ │ + b c4 │ │ │ │ │ + .word 0x0000003c │ │ │ │ │ R_ARM_REL32 .LC1 │ │ │ │ │ - .word 0x00000018 │ │ │ │ │ + .word 0x00000020 │ │ │ │ │ R_ARM_REL32 .LC2 │ │ │ │ │ .word 0x00000008 │ │ │ │ │ R_ARM_REL32 .LC0 │ │ │ │ │ │ │ │ │ │ -000000e0 : │ │ │ │ │ +00000110 : │ │ │ │ │ radix_first(): │ │ │ │ │ - push {r4, r5, r6, lr} │ │ │ │ │ + strd r4, [sp, #-16]! │ │ │ │ │ mov r5, r0 │ │ │ │ │ + str r6, [sp, #8] │ │ │ │ │ + str lr, [sp, #12] │ │ │ │ │ bl 0 │ │ │ │ │ R_ARM_CALL fftw_first_divisor │ │ │ │ │ mov r4, r0 │ │ │ │ │ mov r0, r5 │ │ │ │ │ bl 0 │ │ │ │ │ R_ARM_CALL fftw_isqrt │ │ │ │ │ cmp r0, r4 │ │ │ │ │ + ldr r6, [sp, #8] │ │ │ │ │ movgt r0, r4 │ │ │ │ │ movle r0, #0 │ │ │ │ │ - pop {r4, r5, r6, pc} │ │ │ │ │ + ldrd r4, [sp] │ │ │ │ │ + add sp, sp, #12 │ │ │ │ │ + pop {pc} @ (ldr pc, [sp], #4) │ │ │ │ │ │ │ │ │ │ -00000108 : │ │ │ │ │ +0000014c : │ │ │ │ │ radix_sqrt(): │ │ │ │ │ - push {r4, r5, r6, lr} │ │ │ │ │ + strd r4, [sp, #-16]! │ │ │ │ │ mov r5, r0 │ │ │ │ │ + str r6, [sp, #8] │ │ │ │ │ + str lr, [sp, #12] │ │ │ │ │ bl 0 │ │ │ │ │ R_ARM_CALL fftw_isqrt │ │ │ │ │ mov r1, r0 │ │ │ │ │ mov r4, r0 │ │ │ │ │ mov r0, r5 │ │ │ │ │ bl 0 <__aeabi_idivmod> │ │ │ │ │ R_ARM_CALL __aeabi_idivmod │ │ │ │ │ cmp r1, #0 │ │ │ │ │ - beq 144 │ │ │ │ │ + beq 190 │ │ │ │ │ add r4, r4, #1 │ │ │ │ │ - mov r1, r4 │ │ │ │ │ mov r0, r5 │ │ │ │ │ + mov r1, r4 │ │ │ │ │ bl 0 <__aeabi_idivmod> │ │ │ │ │ R_ARM_CALL __aeabi_idivmod │ │ │ │ │ cmp r1, #0 │ │ │ │ │ - bne 12c │ │ │ │ │ + bne 178 │ │ │ │ │ + ldr r6, [sp, #8] │ │ │ │ │ mov r0, r4 │ │ │ │ │ - pop {r4, r5, r6, pc} │ │ │ │ │ + ldrd r4, [sp] │ │ │ │ │ + add sp, sp, #12 │ │ │ │ │ + pop {pc} @ (ldr pc, [sp], #4) │ │ │ │ │ │ │ │ │ │ -0000014c : │ │ │ │ │ +000001a4 : │ │ │ │ │ destroy(): │ │ │ │ │ - push {r4, lr} │ │ │ │ │ + str r4, [sp, #-8]! │ │ │ │ │ mov r4, r0 │ │ │ │ │ ldr r0, [r0, #72] @ 0x48 │ │ │ │ │ + str lr, [sp, #4] │ │ │ │ │ bl 0 │ │ │ │ │ R_ARM_CALL fftw_plan_destroy_internal │ │ │ │ │ ldr r0, [r4, #68] @ 0x44 │ │ │ │ │ bl 0 │ │ │ │ │ R_ARM_CALL fftw_plan_destroy_internal │ │ │ │ │ + ldr lr, [sp, #4] │ │ │ │ │ ldr r0, [r4, #64] @ 0x40 │ │ │ │ │ - pop {r4, lr} │ │ │ │ │ + ldr r4, [sp] │ │ │ │ │ + add sp, sp, #8 │ │ │ │ │ b 0 │ │ │ │ │ R_ARM_JUMP24 fftw_plan_destroy_internal │ │ │ │ │ │ │ │ │ │ -00000170 : │ │ │ │ │ +000001d4 : │ │ │ │ │ awake(): │ │ │ │ │ - push {r4, r5, r6, lr} │ │ │ │ │ + strd r4, [sp, #-16]! │ │ │ │ │ mov r4, r0 │ │ │ │ │ mov r5, r1 │ │ │ │ │ ldr r0, [r0, #64] @ 0x40 │ │ │ │ │ + str r6, [sp, #8] │ │ │ │ │ + str lr, [sp, #12] │ │ │ │ │ bl 0 │ │ │ │ │ R_ARM_CALL fftw_plan_awake │ │ │ │ │ ldr r0, [r4, #68] @ 0x44 │ │ │ │ │ mov r1, r5 │ │ │ │ │ bl 0 │ │ │ │ │ R_ARM_CALL fftw_plan_awake │ │ │ │ │ - ldr r0, [r4, #72] @ 0x48 │ │ │ │ │ + ldr r6, [sp, #8] │ │ │ │ │ mov r1, r5 │ │ │ │ │ - pop {r4, r5, r6, lr} │ │ │ │ │ + ldr lr, [sp, #12] │ │ │ │ │ + ldr r0, [r4, #72] @ 0x48 │ │ │ │ │ + ldrd r4, [sp] │ │ │ │ │ + add sp, sp, #16 │ │ │ │ │ b 0 │ │ │ │ │ R_ARM_JUMP24 fftw_plan_awake │ │ │ │ │ │ │ │ │ │ -000001a0 : │ │ │ │ │ +00000218 : │ │ │ │ │ mkplan(): │ │ │ │ │ - push {r4, r5, r6, r7, r8, r9, sl, fp, lr} │ │ │ │ │ - sub sp, sp, #116 @ 0x74 │ │ │ │ │ + strd r4, [sp, #-36]! @ 0xffffffdc │ │ │ │ │ mov r4, r1 │ │ │ │ │ + strd r6, [sp, #8] │ │ │ │ │ + strd r8, [sp, #16] │ │ │ │ │ + strd sl, [sp, #24] │ │ │ │ │ + str lr, [sp, #32] │ │ │ │ │ + sub sp, sp, #116 @ 0x74 │ │ │ │ │ + str r1, [sp, #52] @ 0x34 │ │ │ │ │ str r2, [sp, #60] @ 0x3c │ │ │ │ │ add r2, sp, #108 @ 0x6c │ │ │ │ │ - str r0, [sp, #64] @ 0x40 │ │ │ │ │ - str r1, [sp, #52] @ 0x34 │ │ │ │ │ - ldr r0, [r4, #36] @ 0x24 │ │ │ │ │ mov r1, r2 │ │ │ │ │ str r2, [sp, #56] @ 0x38 │ │ │ │ │ + str r0, [sp, #64] @ 0x40 │ │ │ │ │ + ldr r0, [r4, #36] @ 0x24 │ │ │ │ │ bl 0 │ │ │ │ │ R_ARM_CALL MPI_Comm_size │ │ │ │ │ ldr r0, [sp, #108] @ 0x6c │ │ │ │ │ ldr r3, [r4, #32] │ │ │ │ │ ldr r2, [r4, #12] │ │ │ │ │ mul r3, r0, r3 │ │ │ │ │ cmp r3, r2 │ │ │ │ │ - beq 1f0 │ │ │ │ │ + beq 28c │ │ │ │ │ mov r0, #0 │ │ │ │ │ add sp, sp, #116 @ 0x74 │ │ │ │ │ - pop {r4, r5, r6, r7, r8, r9, sl, fp, pc} │ │ │ │ │ + ldrd r4, [sp] │ │ │ │ │ + ldrd r6, [sp, #8] │ │ │ │ │ + ldrd r8, [sp, #16] │ │ │ │ │ + ldrd sl, [sp, #24] │ │ │ │ │ + add sp, sp, #32 │ │ │ │ │ + pop {pc} @ (ldr pc, [sp], #4) │ │ │ │ │ ldr r3, [sp, #64] @ 0x40 │ │ │ │ │ ldr r3, [r3, #16] │ │ │ │ │ cmp r3, #0 │ │ │ │ │ - beq 224 │ │ │ │ │ + beq 2c0 │ │ │ │ │ ldr r3, [sp, #60] @ 0x3c │ │ │ │ │ ldr r3, [r3, #164] @ 0xa4 │ │ │ │ │ tst r3, #4096 @ 0x1000 │ │ │ │ │ - bne 1e4 │ │ │ │ │ + bne 26c │ │ │ │ │ ldr r3, [sp, #52] @ 0x34 │ │ │ │ │ ldr r2, [r3, #16] │ │ │ │ │ ldr r3, [r3, #20] │ │ │ │ │ cmp r2, r3 │ │ │ │ │ - beq 1e4 │ │ │ │ │ + beq 26c │ │ │ │ │ ldr r3, [sp, #64] @ 0x40 │ │ │ │ │ ldr r3, [r3, #8] │ │ │ │ │ blx r3 │ │ │ │ │ - subs r6, r0, #0 │ │ │ │ │ - beq 1e4 │ │ │ │ │ + subs r5, r0, #0 │ │ │ │ │ + beq 26c │ │ │ │ │ ldr r3, [sp, #108] @ 0x6c │ │ │ │ │ - cmp r6, r3 │ │ │ │ │ - bge 1e4 │ │ │ │ │ - cmp r6, #1 │ │ │ │ │ - ble 1e4 │ │ │ │ │ + cmp r5, r3 │ │ │ │ │ + bge 26c │ │ │ │ │ + cmp r5, #1 │ │ │ │ │ + ble 26c │ │ │ │ │ ldr r2, [sp, #52] @ 0x34 │ │ │ │ │ mov r0, r3 │ │ │ │ │ - ldr r4, [r2, #28] │ │ │ │ │ - ldr r5, [r2, #32] │ │ │ │ │ - mov r1, r6 │ │ │ │ │ + mov r1, r5 │ │ │ │ │ str r3, [sp, #72] @ 0x48 │ │ │ │ │ ldr r9, [r2, #8] │ │ │ │ │ + ldr r4, [r2, #28] │ │ │ │ │ + ldr r6, [r2, #32] │ │ │ │ │ ldr r7, [r2, #12] │ │ │ │ │ str r4, [sp, #68] @ 0x44 │ │ │ │ │ - str r5, [sp, #76] @ 0x4c │ │ │ │ │ + str r6, [sp, #76] @ 0x4c │ │ │ │ │ bl 0 <__aeabi_idiv> │ │ │ │ │ R_ARM_CALL __aeabi_idiv │ │ │ │ │ ldr r3, [sp, #72] @ 0x48 │ │ │ │ │ cmp r3, #0 │ │ │ │ │ - ble 39c │ │ │ │ │ - mul r4, r6, r4 │ │ │ │ │ - mul r5, r0, r5 │ │ │ │ │ + ble 438 │ │ │ │ │ + mul r4, r5, r4 │ │ │ │ │ mov r8, #0 │ │ │ │ │ mov fp, r7 │ │ │ │ │ + mul r6, r0, r6 │ │ │ │ │ + str r6, [sp, #72] @ 0x48 │ │ │ │ │ str r4, [sp, #80] @ 0x50 │ │ │ │ │ - str r5, [sp, #72] @ 0x48 │ │ │ │ │ - str r6, [sp, #88] @ 0x58 │ │ │ │ │ + str r5, [sp, #88] @ 0x58 │ │ │ │ │ str r3, [sp, #92] @ 0x5c │ │ │ │ │ ldr r1, [sp, #68] @ 0x44 │ │ │ │ │ mov r2, r8 │ │ │ │ │ mov r0, r9 │ │ │ │ │ bl 0 │ │ │ │ │ R_ARM_CALL fftw_mpi_block │ │ │ │ │ - mov r2, r8 │ │ │ │ │ - ldr r1, [sp, #76] @ 0x4c │ │ │ │ │ mul r4, r0, fp │ │ │ │ │ + ldr r1, [sp, #76] @ 0x4c │ │ │ │ │ + mov r2, r8 │ │ │ │ │ mov r0, fp │ │ │ │ │ bl 0 │ │ │ │ │ R_ARM_CALL fftw_mpi_block │ │ │ │ │ mul r1, r0, r9 │ │ │ │ │ mov r0, r4 │ │ │ │ │ bl 0 │ │ │ │ │ R_ARM_CALL fftw_imax │ │ │ │ │ ldr r1, [sp, #88] @ 0x58 │ │ │ │ │ mov r7, r0 │ │ │ │ │ mov r0, r8 │ │ │ │ │ bl 0 <__aeabi_idivmod> │ │ │ │ │ R_ARM_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_CALL fftw_mpi_block │ │ │ │ │ ldr r1, [sp, #72] @ 0x48 │ │ │ │ │ - mov r2, r4 │ │ │ │ │ mov r6, r0 │ │ │ │ │ + mov r2, r4 │ │ │ │ │ mov r0, fp │ │ │ │ │ bl 0 │ │ │ │ │ R_ARM_CALL fftw_mpi_block │ │ │ │ │ ldr r1, [sp, #68] @ 0x44 │ │ │ │ │ mov r2, r4 │ │ │ │ │ mov sl, r0 │ │ │ │ │ mov r0, r6 │ │ │ │ │ bl 0 │ │ │ │ │ R_ARM_CALL fftw_mpi_block │ │ │ │ │ + mul r3, r0, fp │ │ │ │ │ ldr r1, [sp, #72] @ 0x48 │ │ │ │ │ mov r2, r4 │ │ │ │ │ - mul r3, r0, fp │ │ │ │ │ mov r0, fp │ │ │ │ │ str r3, [sp, #84] @ 0x54 │ │ │ │ │ bl 0 │ │ │ │ │ R_ARM_CALL fftw_mpi_block │ │ │ │ │ mul r1, r0, r6 │ │ │ │ │ ldr r0, [sp, #84] @ 0x54 │ │ │ │ │ bl 0 │ │ │ │ │ R_ARM_CALL fftw_imax │ │ │ │ │ cmp r0, r7 │ │ │ │ │ - bgt 1e4 │ │ │ │ │ + bgt 26c │ │ │ │ │ ldr r1, [sp, #80] @ 0x50 │ │ │ │ │ mov r2, r5 │ │ │ │ │ mov r0, r9 │ │ │ │ │ bl 0 │ │ │ │ │ R_ARM_CALL fftw_mpi_block │ │ │ │ │ + mul r4, r0, sl │ │ │ │ │ ldr r1, [sp, #76] @ 0x4c │ │ │ │ │ mov r2, r5 │ │ │ │ │ - mul r4, r0, sl │ │ │ │ │ mov r0, sl │ │ │ │ │ bl 0 │ │ │ │ │ R_ARM_CALL fftw_mpi_block │ │ │ │ │ mul r1, r0, r9 │ │ │ │ │ mov r0, r4 │ │ │ │ │ bl 0 │ │ │ │ │ R_ARM_CALL fftw_imax │ │ │ │ │ cmp r7, r0 │ │ │ │ │ - blt 1e4 │ │ │ │ │ + blt 26c │ │ │ │ │ ldr r3, [sp, #92] @ 0x5c │ │ │ │ │ add r8, r8, #1 │ │ │ │ │ cmp r3, r8 │ │ │ │ │ - bne 2a4 │ │ │ │ │ - ldr r6, [sp, #88] @ 0x58 │ │ │ │ │ + bne 340 │ │ │ │ │ + ldr r5, [sp, #88] @ 0x58 │ │ │ │ │ ldr r3, [sp, #60] @ 0x3c │ │ │ │ │ - ldr r5, [pc, #1328] @ 8d8 │ │ │ │ │ + ldr r6, [pc, #1332] @ 978 │ │ │ │ │ ldr r2, [r3, #164] @ 0xa4 │ │ │ │ │ - and r2, r2, r5 │ │ │ │ │ + and r2, r2, r6 │ │ │ │ │ lsr r3, r2, #14 │ │ │ │ │ and r3, r3, #1 │ │ │ │ │ eor r3, r3, #1 │ │ │ │ │ - cmp r6, #8 │ │ │ │ │ + cmp r5, #8 │ │ │ │ │ orrgt r3, r3, #1 │ │ │ │ │ cmp r3, #0 │ │ │ │ │ - beq 894 │ │ │ │ │ + beq 934 │ │ │ │ │ tst r2, #8 │ │ │ │ │ - beq 404 │ │ │ │ │ + beq 4a0 │ │ │ │ │ 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_CALL __aeabi_idiv │ │ │ │ │ ldr r3, [r4, #8] │ │ │ │ │ - mov r1, r5 │ │ │ │ │ + mov r1, r6 │ │ │ │ │ mul r3, r0, r3 │ │ │ │ │ ldr r0, [r4, #4] │ │ │ │ │ mul r0, r3, r0 │ │ │ │ │ bl 0 <__aeabi_idiv> │ │ │ │ │ R_ARM_CALL __aeabi_idiv │ │ │ │ │ cmp r0, #2048 @ 0x800 │ │ │ │ │ - bgt 1e4 │ │ │ │ │ + bgt 26c │ │ │ │ │ ldr r4, [sp, #52] @ 0x34 │ │ │ │ │ ldr r8, [r4, #24] │ │ │ │ │ bics r8, r8, #12 │ │ │ │ │ - bne 1e4 │ │ │ │ │ - add r1, sp, #104 @ 0x68 │ │ │ │ │ + bne 26c │ │ │ │ │ ldr r0, [r4, #36] @ 0x24 │ │ │ │ │ + add r1, sp, #104 @ 0x68 │ │ │ │ │ bl 0 │ │ │ │ │ R_ARM_CALL MPI_Comm_size │ │ │ │ │ - add r1, sp, #100 @ 0x64 │ │ │ │ │ ldr r0, [r4, #36] @ 0x24 │ │ │ │ │ + add r1, sp, #100 @ 0x64 │ │ │ │ │ bl 0 │ │ │ │ │ R_ARM_CALL MPI_Comm_rank │ │ │ │ │ ldr r0, [sp, #104] @ 0x68 │ │ │ │ │ - mov r1, r6 │ │ │ │ │ + mov r1, r5 │ │ │ │ │ bl 0 <__aeabi_idiv> │ │ │ │ │ R_ARM_CALL __aeabi_idiv │ │ │ │ │ ldr r2, [sp, #100] @ 0x64 │ │ │ │ │ + mov r6, r0 │ │ │ │ │ + ldr r0, [r4, #8] │ │ │ │ │ ldr r1, [r4, #28] │ │ │ │ │ ldr r9, [r4, #16] │ │ │ │ │ ldr fp, [r4, #20] │ │ │ │ │ - mov r7, r0 │ │ │ │ │ - ldr r0, [r4, #8] │ │ │ │ │ bl 0 │ │ │ │ │ R_ARM_CALL fftw_mpi_block │ │ │ │ │ - ldr r5, [r4, #24] │ │ │ │ │ ldr r2, [r4, #4] │ │ │ │ │ - ands r5, r5, #4 │ │ │ │ │ - ldr ip, [r4, #32] │ │ │ │ │ mov r3, r0 │ │ │ │ │ - bne 778 │ │ │ │ │ + ldr r7, [r4, #24] │ │ │ │ │ + ldr ip, [r4, #32] │ │ │ │ │ + ands r7, r7, #4 │ │ │ │ │ + bne 818 │ │ │ │ │ cmp r9, fp │ │ │ │ │ mul lr, ip, r2 │ │ │ │ │ - beq 7d8 │ │ │ │ │ + beq 878 │ │ │ │ │ mov r8, #1 │ │ │ │ │ - str r8, [sp, #40] @ 0x28 │ │ │ │ │ - str r8, [sp, #36] @ 0x24 │ │ │ │ │ - mul r8, r2, r0 │ │ │ │ │ - mul r1, r6, r7 │ │ │ │ │ - str r8, [sp, #28] │ │ │ │ │ - mul r8, ip, r7 │ │ │ │ │ - mul r1, ip, r1 │ │ │ │ │ - mul r8, r0, r8 │ │ │ │ │ + mul r1, r5, r6 │ │ │ │ │ + str r5, [sp, #8] │ │ │ │ │ mul r3, ip, r3 │ │ │ │ │ str ip, [sp, #20] │ │ │ │ │ - mul ip, r6, ip │ │ │ │ │ + str lr, [sp, #12] │ │ │ │ │ + str r8, [sp, #36] @ 0x24 │ │ │ │ │ + mul r1, ip, r1 │ │ │ │ │ + str r8, [sp, #40] @ 0x28 │ │ │ │ │ + mul r8, r2, r0 │ │ │ │ │ mul r3, r2, r3 │ │ │ │ │ - mul r8, r2, r8 │ │ │ │ │ - mul ip, r2, ip │ │ │ │ │ mul r1, r2, r1 │ │ │ │ │ str r2, [sp, #32] │ │ │ │ │ - str r2, [sp, #24] │ │ │ │ │ + str r8, [sp, #28] │ │ │ │ │ + mul r8, ip, r6 │ │ │ │ │ + mul ip, r5, ip │ │ │ │ │ str r3, [sp, #4] │ │ │ │ │ - str r8, [sp, #16] │ │ │ │ │ - mov r3, r7 │ │ │ │ │ - str lr, [sp, #12] │ │ │ │ │ - str r6, [sp, #8] │ │ │ │ │ + mov r3, r6 │ │ │ │ │ + str r2, [sp, #24] │ │ │ │ │ + mul r8, r0, r8 │ │ │ │ │ + mul ip, r2, ip │ │ │ │ │ + mul r8, r2, r8 │ │ │ │ │ str ip, [sp] │ │ │ │ │ + str r8, [sp, #16] │ │ │ │ │ bl 0 │ │ │ │ │ R_ARM_CALL fftw_mktensor_5d │ │ │ │ │ mov r2, fp │ │ │ │ │ mov r1, r9 │ │ │ │ │ bl 0 │ │ │ │ │ R_ARM_CALL fftw_mkproblem_rdft_0_d │ │ │ │ │ mov r3, #8 │ │ │ │ │ - mov r2, r5 │ │ │ │ │ - str r3, [sp] │ │ │ │ │ - mov r3, r5 │ │ │ │ │ mov r1, r0 │ │ │ │ │ ldr r0, [sp, #60] @ 0x3c │ │ │ │ │ + mov r2, r7 │ │ │ │ │ + str r3, [sp] │ │ │ │ │ + mov r3, r7 │ │ │ │ │ bl 0 │ │ │ │ │ R_ARM_CALL fftw_mkplan_f_d │ │ │ │ │ - mov r5, r0 │ │ │ │ │ + mov r7, r0 │ │ │ │ │ ldr r3, [sp, #52] @ 0x34 │ │ │ │ │ - clz r0, r5 │ │ │ │ │ - ldr r1, [r3, #36] @ 0x24 │ │ │ │ │ + clz r0, r7 │ │ │ │ │ lsr r0, r0, #5 │ │ │ │ │ + ldr r1, [r3, #36] @ 0x24 │ │ │ │ │ bl 0 │ │ │ │ │ R_ARM_CALL fftw_mpi_any_true │ │ │ │ │ cmp r0, #0 │ │ │ │ │ - bne 888 │ │ │ │ │ + bne 928 │ │ │ │ │ ldr r3, [sp, #64] @ 0x40 │ │ │ │ │ ldr r3, [r3, #16] │ │ │ │ │ cmp r3, #0 │ │ │ │ │ movne r9, fp │ │ │ │ │ - bne 548 │ │ │ │ │ + bne 5e4 │ │ │ │ │ ldr r3, [sp, #60] @ 0x3c │ │ │ │ │ ldr r3, [r3, #164] @ 0xa4 │ │ │ │ │ tst r3, #4096 @ 0x1000 │ │ │ │ │ movne r9, fp │ │ │ │ │ ldr r0, [sp, #100] @ 0x64 │ │ │ │ │ - mov r1, r6 │ │ │ │ │ + mov r1, r5 │ │ │ │ │ bl 0 <__aeabi_idiv> │ │ │ │ │ R_ARM_CALL __aeabi_idiv │ │ │ │ │ ldr sl, [sp, #52] @ 0x34 │ │ │ │ │ - ldr r1, [sl, #28] │ │ │ │ │ - mul r1, r6, r1 │ │ │ │ │ mov r2, r0 │ │ │ │ │ ldr r0, [sl, #8] │ │ │ │ │ + ldr r1, [sl, #28] │ │ │ │ │ + mul r1, r5, r1 │ │ │ │ │ bl 0 │ │ │ │ │ R_ARM_CALL fftw_mpi_block │ │ │ │ │ ldr r4, [sp, #100] @ 0x64 │ │ │ │ │ - mov r1, r6 │ │ │ │ │ mov r8, r0 │ │ │ │ │ + mov r1, r5 │ │ │ │ │ mov r0, r4 │ │ │ │ │ bl 0 <__aeabi_idiv> │ │ │ │ │ R_ARM_CALL __aeabi_idiv │ │ │ │ │ ldr r3, [sp, #56] @ 0x38 │ │ │ │ │ - mov r2, r4 │ │ │ │ │ mov r1, r0 │ │ │ │ │ + mov r2, r4 │ │ │ │ │ ldr r0, [sl, #36] @ 0x24 │ │ │ │ │ bl 0 │ │ │ │ │ R_ARM_CALL MPI_Comm_split │ │ │ │ │ cmp r8, #0 │ │ │ │ │ moveq r3, #1 │ │ │ │ │ moveq sl, r8 │ │ │ │ │ - beq 604 │ │ │ │ │ - ldr lr, [sl, #20] │ │ │ │ │ + beq 6a0 │ │ │ │ │ + ldr ip, [sp, #108] @ 0x6c │ │ │ │ │ ldr r4, [sl, #16] │ │ │ │ │ + ldr lr, [sl, #20] │ │ │ │ │ ldr r3, [sl, #32] │ │ │ │ │ + ldr r0, [sl, #28] │ │ │ │ │ cmp r4, lr │ │ │ │ │ ldreq lr, [sp, #52] @ 0x34 │ │ │ │ │ - mul r3, r7, r3 │ │ │ │ │ - ldreq lr, [lr, #24] │ │ │ │ │ - ldr r0, [sl, #28] │ │ │ │ │ - ldr ip, [sp, #108] @ 0x6c │ │ │ │ │ - andeq lr, lr, #4 │ │ │ │ │ movne lr, #4 │ │ │ │ │ - ldr r1, [sl, #12] │ │ │ │ │ + mul r3, r6, r3 │ │ │ │ │ ldr r2, [sl, #4] │ │ │ │ │ - stmib sp, {r0, r3, ip, lr} │ │ │ │ │ + ldr r1, [sl, #12] │ │ │ │ │ + ldreq lr, [lr, #24] │ │ │ │ │ str r9, [sp] │ │ │ │ │ + andeq lr, lr, #4 │ │ │ │ │ + stmib sp, {r0, r3, ip, lr} │ │ │ │ │ mov r3, fp │ │ │ │ │ mov r0, r8 │ │ │ │ │ bl 0 │ │ │ │ │ R_ARM_CALL fftw_mpi_mkproblem_transpose │ │ │ │ │ mov r1, r0 │ │ │ │ │ ldr r0, [sp, #60] @ 0x3c │ │ │ │ │ bl 0 │ │ │ │ │ @@ -461,253 +500,261 @@ │ │ │ │ │ ldr r1, [r4, #36] @ 0x24 │ │ │ │ │ cmp r8, #0 │ │ │ │ │ moveq r0, #0 │ │ │ │ │ andne r0, r3, #1 │ │ │ │ │ bl 0 │ │ │ │ │ R_ARM_CALL fftw_mpi_any_true │ │ │ │ │ cmp r0, #0 │ │ │ │ │ - bne 758 │ │ │ │ │ + bne 7f8 │ │ │ │ │ ldr r0, [sp, #100] @ 0x64 │ │ │ │ │ - mov r1, r6 │ │ │ │ │ + mov r1, r5 │ │ │ │ │ bl 0 <__aeabi_idivmod> │ │ │ │ │ R_ARM_CALL __aeabi_idivmod │ │ │ │ │ - ldr r0, [r4, #12] │ │ │ │ │ mov r2, r1 │ │ │ │ │ + ldr r0, [r4, #12] │ │ │ │ │ ldr r1, [r4, #32] │ │ │ │ │ - mul r1, r7, r1 │ │ │ │ │ + mul r1, r6, r1 │ │ │ │ │ bl 0 │ │ │ │ │ R_ARM_CALL fftw_mpi_block │ │ │ │ │ ldr r8, [sp, #100] @ 0x64 │ │ │ │ │ - mov r1, r6 │ │ │ │ │ - mov r7, r0 │ │ │ │ │ + mov r6, r0 │ │ │ │ │ + mov r1, r5 │ │ │ │ │ mov r0, r8 │ │ │ │ │ bl 0 <__aeabi_idivmod> │ │ │ │ │ R_ARM_CALL __aeabi_idivmod │ │ │ │ │ + ldr r0, [r4, #36] @ 0x24 │ │ │ │ │ mov r2, r8 │ │ │ │ │ ldr r3, [sp, #56] @ 0x38 │ │ │ │ │ - ldr r0, [r4, #36] @ 0x24 │ │ │ │ │ bl 0 │ │ │ │ │ R_ARM_CALL MPI_Comm_split │ │ │ │ │ - cmp r7, #0 │ │ │ │ │ + cmp r6, #0 │ │ │ │ │ moveq r9, #1 │ │ │ │ │ - moveq r8, r7 │ │ │ │ │ - bne 824 │ │ │ │ │ + moveq r8, r6 │ │ │ │ │ + bne 8c4 │ │ │ │ │ ldr r0, [sp, #56] @ 0x38 │ │ │ │ │ bl 0 │ │ │ │ │ R_ARM_CALL MPI_Comm_free │ │ │ │ │ ldr r3, [sp, #52] @ 0x34 │ │ │ │ │ - cmp r7, #0 │ │ │ │ │ + cmp r6, #0 │ │ │ │ │ moveq r0, #0 │ │ │ │ │ andne r0, r9, #1 │ │ │ │ │ ldr r1, [r3, #36] @ 0x24 │ │ │ │ │ bl 0 │ │ │ │ │ R_ARM_CALL fftw_mpi_any_true │ │ │ │ │ cmp r0, #0 │ │ │ │ │ - bne 75c │ │ │ │ │ - ldr r2, [pc, #548] @ 8dc │ │ │ │ │ - ldr r1, [pc, #548] @ 8e0 │ │ │ │ │ + bne 7fc │ │ │ │ │ + ldr r2, [pc, #552] @ 97c │ │ │ │ │ + mov r0, #88 @ 0x58 │ │ │ │ │ + ldr r1, [pc, #548] @ 980 │ │ │ │ │ add r2, pc, r2 │ │ │ │ │ add r1, pc, r1 │ │ │ │ │ - mov r0, #88 @ 0x58 │ │ │ │ │ bl 0 │ │ │ │ │ R_ARM_CALL fftw_mkplan_rdft │ │ │ │ │ ldr r3, [sp, #64] @ 0x40 │ │ │ │ │ + mov r4, r0 │ │ │ │ │ + str r7, [r0, #64] @ 0x40 │ │ │ │ │ + str sl, [r0, #68] @ 0x44 │ │ │ │ │ + str r8, [r0, #72] @ 0x48 │ │ │ │ │ ldr r3, [r3, #16] │ │ │ │ │ cmp r3, #0 │ │ │ │ │ ldreq r3, [sp, #60] @ 0x3c │ │ │ │ │ movne r3, #2 │ │ │ │ │ ldreq r3, [r3, #164] @ 0xa4 │ │ │ │ │ + str r5, [r0, #80] @ 0x50 │ │ │ │ │ + add r5, r0, #8 │ │ │ │ │ andeq r3, r3, #4096 @ 0x1000 │ │ │ │ │ cmp sl, #0 │ │ │ │ │ str r3, [r0, #76] @ 0x4c │ │ │ │ │ ldr r3, [sp, #64] @ 0x40 │ │ │ │ │ - str r5, [r0, #64] @ 0x40 │ │ │ │ │ ldr r3, [r3, #12] │ │ │ │ │ - add r5, r5, #8 │ │ │ │ │ - str r6, [r0, #80] @ 0x50 │ │ │ │ │ - str sl, [r0, #68] @ 0x44 │ │ │ │ │ - str r8, [r0, #72] @ 0x48 │ │ │ │ │ str r3, [r0, #84] @ 0x54 │ │ │ │ │ - add r6, r0, #8 │ │ │ │ │ - mov r4, r0 │ │ │ │ │ - ldm r5!, {r0, r1, r2, r3} │ │ │ │ │ - mov ip, r6 │ │ │ │ │ - stmia ip!, {r0, r1, r2, r3} │ │ │ │ │ - ldm r5, {r0, r1, r2, r3} │ │ │ │ │ - stm ip, {r0, r1, r2, r3} │ │ │ │ │ - beq 738 │ │ │ │ │ - mov r1, r6 │ │ │ │ │ + ldrd r2, [r7, #8] │ │ │ │ │ + strd r2, [r0, #8] │ │ │ │ │ + ldrd r2, [r7, #16] │ │ │ │ │ + strd r2, [r5, #8] │ │ │ │ │ + ldrd r2, [r7, #24] │ │ │ │ │ + strd r2, [r5, #16] │ │ │ │ │ + ldrd r2, [r7, #32] │ │ │ │ │ + strd r2, [r5, #24] │ │ │ │ │ + beq 7dc │ │ │ │ │ + mov r1, r5 │ │ │ │ │ add r0, sl, #8 │ │ │ │ │ bl 0 │ │ │ │ │ R_ARM_CALL fftw_ops_add2 │ │ │ │ │ cmp r8, #0 │ │ │ │ │ - beq 74c │ │ │ │ │ - mov r1, r6 │ │ │ │ │ + beq 7f0 │ │ │ │ │ + mov r1, r5 │ │ │ │ │ add r0, r8, #8 │ │ │ │ │ bl 0 │ │ │ │ │ R_ARM_CALL fftw_ops_add2 │ │ │ │ │ mov r0, r4 │ │ │ │ │ - add sp, sp, #116 @ 0x74 │ │ │ │ │ - pop {r4, r5, r6, r7, r8, r9, sl, fp, pc} │ │ │ │ │ + b 270 │ │ │ │ │ mov r8, #0 │ │ │ │ │ mov r0, r8 │ │ │ │ │ bl 0 │ │ │ │ │ R_ARM_CALL fftw_plan_destroy_internal │ │ │ │ │ mov r0, sl │ │ │ │ │ bl 0 │ │ │ │ │ R_ARM_CALL fftw_plan_destroy_internal │ │ │ │ │ - mov r0, r5 │ │ │ │ │ + mov r0, r7 │ │ │ │ │ bl 0 │ │ │ │ │ R_ARM_CALL fftw_plan_destroy_internal │ │ │ │ │ - b 1e4 │ │ │ │ │ + b 26c │ │ │ │ │ mul r3, r2, r3 │ │ │ │ │ - mov r0, r7 │ │ │ │ │ + mov r0, r6 │ │ │ │ │ mul r2, ip, r3 │ │ │ │ │ mov r3, #1 │ │ │ │ │ - str r3, [sp, #16] │ │ │ │ │ str r3, [sp, #12] │ │ │ │ │ - mul r3, r2, r7 │ │ │ │ │ - mul r1, r6, r2 │ │ │ │ │ + mul r1, r5, r2 │ │ │ │ │ + str r3, [sp, #16] │ │ │ │ │ + mul r3, r2, r6 │ │ │ │ │ stm sp, {r2, r3} │ │ │ │ │ + mov r3, r5 │ │ │ │ │ str r2, [sp, #8] │ │ │ │ │ - mov r3, r6 │ │ │ │ │ bl 0 │ │ │ │ │ R_ARM_CALL fftw_mktensor_3d │ │ │ │ │ mov r2, fp │ │ │ │ │ mov r1, r9 │ │ │ │ │ bl 0 │ │ │ │ │ R_ARM_CALL fftw_mkproblem_rdft_0_d │ │ │ │ │ mov r3, #8 │ │ │ │ │ - str r3, [sp] │ │ │ │ │ - mov r2, r8 │ │ │ │ │ - mov r3, r8 │ │ │ │ │ mov r1, r0 │ │ │ │ │ ldr r0, [sp, #60] @ 0x3c │ │ │ │ │ + mov r2, r8 │ │ │ │ │ + str r3, [sp] │ │ │ │ │ + mov r3, r8 │ │ │ │ │ bl 0 │ │ │ │ │ R_ARM_CALL fftw_mkplan_f_d │ │ │ │ │ - mov r5, r0 │ │ │ │ │ - b 508 │ │ │ │ │ + mov r7, r0 │ │ │ │ │ + b 5a4 │ │ │ │ │ ldr r2, [sp, #104] @ 0x68 │ │ │ │ │ mov r3, #1 │ │ │ │ │ - mul r2, lr, r2 │ │ │ │ │ - str r3, [sp, #16] │ │ │ │ │ + mul r1, lr, r5 │ │ │ │ │ + str lr, [sp] │ │ │ │ │ + str lr, [sp, #8] │ │ │ │ │ str r3, [sp, #12] │ │ │ │ │ - mul r3, lr, r7 │ │ │ │ │ - str r2, [sp, #28] │ │ │ │ │ - str r2, [sp, #24] │ │ │ │ │ + str r3, [sp, #16] │ │ │ │ │ + mul r3, lr, r6 │ │ │ │ │ + mul r2, lr, r2 │ │ │ │ │ + str r3, [sp, #4] │ │ │ │ │ + mov r3, r5 │ │ │ │ │ str r0, [sp, #20] │ │ │ │ │ + mov r0, r6 │ │ │ │ │ + str r2, [sp, #24] │ │ │ │ │ + str r2, [sp, #28] │ │ │ │ │ mov r2, lr │ │ │ │ │ - str r3, [sp, #4] │ │ │ │ │ - mul r1, lr, r6 │ │ │ │ │ - mov r3, r6 │ │ │ │ │ - mov r0, r7 │ │ │ │ │ - str lr, [sp, #8] │ │ │ │ │ - str lr, [sp] │ │ │ │ │ bl 0 │ │ │ │ │ R_ARM_CALL fftw_mktensor_4d │ │ │ │ │ mov r2, r9 │ │ │ │ │ - b 4e0 │ │ │ │ │ + b 57c │ │ │ │ │ ldr r0, [sp, #52] @ 0x34 │ │ │ │ │ - mov r1, r7 │ │ │ │ │ + mov r1, r6 │ │ │ │ │ ldr r3, [r0, #24] │ │ │ │ │ and r3, r3, #8 │ │ │ │ │ orr 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] │ │ │ │ │ str fp, [sp] │ │ │ │ │ - mul r3, r6, r3 │ │ │ │ │ + mul r3, r5, r3 │ │ │ │ │ str r3, [sp, #4] │ │ │ │ │ mov r3, r9 │ │ │ │ │ ldr r2, [r0, #4] │ │ │ │ │ ldr r0, [r0, #8] │ │ │ │ │ bl 0 │ │ │ │ │ R_ARM_CALL fftw_mpi_mkproblem_transpose │ │ │ │ │ mov r1, r0 │ │ │ │ │ ldr r0, [sp, #60] @ 0x3c │ │ │ │ │ bl 0 │ │ │ │ │ R_ARM_CALL fftw_mkplan_d │ │ │ │ │ clz r9, r0 │ │ │ │ │ mov r8, r0 │ │ │ │ │ lsr r9, r9, #5 │ │ │ │ │ - b 688 │ │ │ │ │ + b 724 │ │ │ │ │ mov r8, #0 │ │ │ │ │ mov sl, r8 │ │ │ │ │ - b 75c │ │ │ │ │ + b 7fc │ │ │ │ │ ldr r4, [sp, #52] @ 0x34 │ │ │ │ │ ldr r1, [sp, #108] @ 0x6c │ │ │ │ │ ldr r0, [r4, #12] │ │ │ │ │ bl 0 <__aeabi_idiv> │ │ │ │ │ R_ARM_CALL __aeabi_idiv │ │ │ │ │ ldr r3, [r4, #8] │ │ │ │ │ - mov r1, r6 │ │ │ │ │ + mov r1, r5 │ │ │ │ │ mul r3, r0, r3 │ │ │ │ │ ldr r0, [r4, #4] │ │ │ │ │ mul r0, r3, r0 │ │ │ │ │ bl 0 <__aeabi_idiv> │ │ │ │ │ R_ARM_CALL __aeabi_idiv │ │ │ │ │ bl 0 │ │ │ │ │ R_ARM_CALL fftw_toobig │ │ │ │ │ cmp r0, #0 │ │ │ │ │ - bne 1e4 │ │ │ │ │ + bne 26c │ │ │ │ │ ldr r3, [sp, #60] @ 0x3c │ │ │ │ │ ldr r2, [r3, #164] @ 0xa4 │ │ │ │ │ - and r2, r2, r5 │ │ │ │ │ - b 3c8 │ │ │ │ │ + and r2, r2, r6 │ │ │ │ │ + b 464 │ │ │ │ │ .word 0x000fffff │ │ │ │ │ - .word 0xfffff940 │ │ │ │ │ + .word 0xfffff8a0 │ │ │ │ │ .word 0x0000021c │ │ │ │ │ R_ARM_REL32 .data.rel.ro │ │ │ │ │ │ │ │ │ │ -000008e4 : │ │ │ │ │ +00000984 : │ │ │ │ │ fftw_mpi_transpose_recurse_register(): │ │ │ │ │ - push {r4, r5, r6, r7, r8, lr} │ │ │ │ │ - ldr r6, [pc, #132] @ 974 │ │ │ │ │ - ldr r7, [pc, #132] @ 978 │ │ │ │ │ + strd r4, [sp, #-24]! @ 0xffffffe8 │ │ │ │ │ mov r5, r0 │ │ │ │ │ mov r4, #0 │ │ │ │ │ + strd r6, [sp, #8] │ │ │ │ │ + ldr r6, [pc, #148] @ a30 │ │ │ │ │ + str r8, [sp, #16] │ │ │ │ │ + ldr r7, [pc, #144] @ a34 │ │ │ │ │ + str lr, [sp, #20] │ │ │ │ │ add r6, pc, r6 │ │ │ │ │ add r7, pc, r7 │ │ │ │ │ mov r1, r6 │ │ │ │ │ mov r0, #20 │ │ │ │ │ bl 0 │ │ │ │ │ R_ARM_CALL fftw_mksolver │ │ │ │ │ - ldr r3, [pc, #104] @ 97c │ │ │ │ │ - add r3, pc, r3 │ │ │ │ │ - str r3, [r0, #12] │ │ │ │ │ + ldr r3, [pc, #120] @ a38 │ │ │ │ │ mov r1, r0 │ │ │ │ │ - str r4, [r0, #16] │ │ │ │ │ str r7, [r0, #8] │ │ │ │ │ + str r4, [r0, #16] │ │ │ │ │ + add r3, pc, r3 │ │ │ │ │ + str r3, [r0, #12] │ │ │ │ │ mov r0, r5 │ │ │ │ │ bl 0 │ │ │ │ │ R_ARM_CALL fftw_solver_register │ │ │ │ │ mov r1, r6 │ │ │ │ │ mov r0, #20 │ │ │ │ │ bl 0 │ │ │ │ │ R_ARM_CALL fftw_mksolver │ │ │ │ │ - ldr r3, [pc, #64] @ 980 │ │ │ │ │ + ldr r3, [pc, #80] @ a3c │ │ │ │ │ + mov r1, r0 │ │ │ │ │ + str r4, [r0, #16] │ │ │ │ │ add r3, pc, r3 │ │ │ │ │ str r3, [r0, #8] │ │ │ │ │ - ldr r3, [pc, #56] @ 984 │ │ │ │ │ - str r4, [r0, #16] │ │ │ │ │ + ldr r3, [pc, #64] @ a40 │ │ │ │ │ add r3, pc, r3 │ │ │ │ │ str r3, [r0, #12] │ │ │ │ │ - mov r1, r0 │ │ │ │ │ mov r0, r5 │ │ │ │ │ bl 0 │ │ │ │ │ R_ARM_CALL fftw_solver_register │ │ │ │ │ add r3, r4, #1 │ │ │ │ │ - cmp r3, #2 │ │ │ │ │ mov r4, #1 │ │ │ │ │ - bne 900 │ │ │ │ │ - pop {r4, r5, r6, r7, r8, pc} │ │ │ │ │ - .word 0x00000074 │ │ │ │ │ + cmp r3, #2 │ │ │ │ │ + bne 9ac │ │ │ │ │ + ldrd r4, [sp] │ │ │ │ │ + ldrd r6, [sp, #8] │ │ │ │ │ + ldr r8, [sp, #16] │ │ │ │ │ + add sp, sp, #20 │ │ │ │ │ + pop {pc} @ (ldr pc, [sp], #4) │ │ │ │ │ + .word 0x00000084 │ │ │ │ │ R_ARM_REL32 .data.rel.ro.local │ │ │ │ │ - .word 0xfffff804 │ │ │ │ │ - .word 0x00000064 │ │ │ │ │ - R_ARM_REL32 .LC3 │ │ │ │ │ .word 0xfffff79c │ │ │ │ │ - .word 0x00000030 │ │ │ │ │ + .word 0x00000068 │ │ │ │ │ + R_ARM_REL32 .LC3 │ │ │ │ │ + .word 0xfffff718 │ │ │ │ │ + .word 0x0000003c │ │ │ │ │ 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: 1792 (bytes into file) │ │ │ │ │ + Start of section headers: 1908 (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 0x700: │ │ │ │ │ +There are 13 section headers, starting at offset 0x774: │ │ │ │ │ │ │ │ │ │ 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 00023c 00 AX 0 0 4 │ │ │ │ │ - [ 2] .rel.text REL 00000000 0005b8 0000b0 08 I 10 1 4 │ │ │ │ │ - [ 3] .data PROGBITS 00000000 000270 000000 00 WA 0 0 1 │ │ │ │ │ - [ 4] .bss NOBITS 00000000 000270 000000 00 WA 0 0 1 │ │ │ │ │ - [ 5] .rodata.str1.4 PROGBITS 00000000 000270 00003a 01 AMS 0 0 4 │ │ │ │ │ - [ 6] .data.rel.ro.local PROGBITS 00000000 0002aa 000014 00 WA 0 0 4 │ │ │ │ │ - [ 7] .rel.data.rel.ro.local REL 00000000 000668 000020 08 I 10 6 4 │ │ │ │ │ - [ 8] .note.GNU-stack PROGBITS 00000000 0002be 000000 00 0 0 1 │ │ │ │ │ - [ 9] .ARM.attributes ARM_ATTRIBUTES 00000000 0002be 00002b 00 0 0 1 │ │ │ │ │ - [10] .symtab SYMTAB 00000000 0002ec 0001e0 10 11 17 4 │ │ │ │ │ - [11] .strtab STRTAB 00000000 0004cc 0000ea 00 0 0 1 │ │ │ │ │ - [12] .shstrtab STRTAB 00000000 000688 000076 00 0 0 1 │ │ │ │ │ + [ 1] .text PROGBITS 00000000 000034 0002b0 00 AX 0 0 4 │ │ │ │ │ + [ 2] .rel.text REL 00000000 00062c 0000b0 08 I 10 1 4 │ │ │ │ │ + [ 3] .data PROGBITS 00000000 0002e4 000000 00 WA 0 0 1 │ │ │ │ │ + [ 4] .bss NOBITS 00000000 0002e4 000000 00 WA 0 0 1 │ │ │ │ │ + [ 5] .rodata.str1.4 PROGBITS 00000000 0002e4 00003a 01 AMS 0 0 4 │ │ │ │ │ + [ 6] .data.rel.ro.local PROGBITS 00000000 00031e 000014 00 WA 0 0 4 │ │ │ │ │ + [ 7] .rel.data.rel.ro.local REL 00000000 0006dc 000020 08 I 10 6 4 │ │ │ │ │ + [ 8] .note.GNU-stack PROGBITS 00000000 000332 000000 00 0 0 1 │ │ │ │ │ + [ 9] .ARM.attributes ARM_ATTRIBUTES 00000000 000332 00002b 00 0 0 1 │ │ │ │ │ + [10] .symtab SYMTAB 00000000 000360 0001e0 10 11 17 4 │ │ │ │ │ + [11] .strtab STRTAB 00000000 000540 0000ea 00 0 0 1 │ │ │ │ │ + [12] .shstrtab STRTAB 00000000 0006fc 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: 00000000 0 NOTYPE LOCAL DEFAULT 1 $a │ │ │ │ │ - 2: 00000000 28 FUNC LOCAL DEFAULT 1 destroy │ │ │ │ │ + 2: 00000000 40 FUNC LOCAL DEFAULT 1 destroy │ │ │ │ │ 3: 00000000 0 NOTYPE LOCAL DEFAULT 5 $d │ │ │ │ │ 4: 00000000 0 NOTYPE LOCAL DEFAULT 5 .LC0 │ │ │ │ │ - 5: 0000001c 152 FUNC LOCAL DEFAULT 1 print │ │ │ │ │ - 6: 000000b0 0 NOTYPE LOCAL DEFAULT 1 $d │ │ │ │ │ - 7: 000000b4 0 NOTYPE LOCAL DEFAULT 1 $a │ │ │ │ │ - 8: 000000b4 92 FUNC LOCAL DEFAULT 1 zero │ │ │ │ │ + 5: 00000028 180 FUNC LOCAL DEFAULT 1 print │ │ │ │ │ + 6: 000000d8 0 NOTYPE LOCAL DEFAULT 1 $d │ │ │ │ │ + 7: 000000dc 0 NOTYPE LOCAL DEFAULT 1 $a │ │ │ │ │ + 8: 000000dc 112 FUNC LOCAL DEFAULT 1 zero │ │ │ │ │ 9: 0000002c 0 NOTYPE LOCAL DEFAULT 5 .LC1 │ │ │ │ │ - 10: 00000110 156 FUNC LOCAL DEFAULT 1 hash │ │ │ │ │ - 11: 000001a8 0 NOTYPE LOCAL DEFAULT 1 $d │ │ │ │ │ - 12: 000001ac 0 NOTYPE LOCAL DEFAULT 1 $a │ │ │ │ │ - 13: 00000238 0 NOTYPE LOCAL DEFAULT 1 $d │ │ │ │ │ + 10: 0000014c 168 FUNC LOCAL DEFAULT 1 hash │ │ │ │ │ + 11: 000001f0 0 NOTYPE LOCAL DEFAULT 1 $d │ │ │ │ │ + 12: 000001f4 0 NOTYPE LOCAL DEFAULT 1 $a │ │ │ │ │ + 13: 000002ac 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: 000001ac 144 FUNC GLOBAL DEFAULT 1 fftw_mpi_mkproblem_transpose │ │ │ │ │ + 27: 000001f4 188 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 0x5b8 contains 22 entries: │ │ │ │ │ +Relocation section '.rel.text' at offset 0x62c contains 22 entries: │ │ │ │ │ Offset Info Type Sym. Value Symbol's Name │ │ │ │ │ -0000000c 0000111c R_ARM_CALL 00000000 MPI_Comm_free │ │ │ │ │ -00000018 0000121d R_ARM_JUMP24 00000000 fftw_ifree │ │ │ │ │ -00000034 0000131c R_ARM_CALL 00000000 MPI_Comm_size │ │ │ │ │ -00000048 0000141c R_ARM_CALL 00000000 fftw_ialignment_of │ │ │ │ │ -0000005c 0000141c R_ARM_CALL 00000000 fftw_ialignment_of │ │ │ │ │ -000000b0 00000403 R_ARM_REL32 00000000 .LC0 │ │ │ │ │ -000000d8 0000151c R_ARM_CALL 00000000 MPI_Comm_rank │ │ │ │ │ -000000e8 0000161c R_ARM_CALL 00000000 fftw_mpi_block │ │ │ │ │ -00000104 0000171c R_ARM_CALL 00000000 memset │ │ │ │ │ -0000012c 0000181c R_ARM_CALL 00000000 fftw_md5puts │ │ │ │ │ -00000148 0000191c R_ARM_CALL 00000000 fftw_md5int │ │ │ │ │ -00000154 00001a1c R_ARM_CALL 00000000 fftw_md5INT │ │ │ │ │ -00000160 00001a1c R_ARM_CALL 00000000 fftw_md5INT │ │ │ │ │ -0000016c 00001a1c R_ARM_CALL 00000000 fftw_md5INT │ │ │ │ │ -00000178 00001a1c R_ARM_CALL 00000000 fftw_md5INT │ │ │ │ │ -00000184 00001a1c R_ARM_CALL 00000000 fftw_md5INT │ │ │ │ │ -00000190 0000131c R_ARM_CALL 00000000 MPI_Comm_size │ │ │ │ │ -0000019c 0000191c R_ARM_CALL 00000000 fftw_md5int │ │ │ │ │ -000001a8 00000903 R_ARM_REL32 0000002c .LC1 │ │ │ │ │ -000001d8 00001c1c R_ARM_CALL 00000000 fftw_mkproblem │ │ │ │ │ -0000022c 00001d1c R_ARM_CALL 00000000 MPI_Comm_dup │ │ │ │ │ -00000238 00000e03 R_ARM_REL32 00000000 .data.rel.ro.local │ │ │ │ │ +00000010 0000111c R_ARM_CALL 00000000 MPI_Comm_free │ │ │ │ │ +00000024 0000121d R_ARM_JUMP24 00000000 fftw_ifree │ │ │ │ │ +0000004c 0000131c R_ARM_CALL 00000000 MPI_Comm_size │ │ │ │ │ +00000060 0000141c R_ARM_CALL 00000000 fftw_ialignment_of │ │ │ │ │ +00000070 0000141c R_ARM_CALL 00000000 fftw_ialignment_of │ │ │ │ │ +000000d8 00000403 R_ARM_REL32 00000000 .LC0 │ │ │ │ │ +00000108 0000151c R_ARM_CALL 00000000 MPI_Comm_rank │ │ │ │ │ +00000118 0000161c R_ARM_CALL 00000000 fftw_mpi_block │ │ │ │ │ +00000134 0000171c R_ARM_CALL 00000000 memset │ │ │ │ │ +0000016c 0000181c R_ARM_CALL 00000000 fftw_md5puts │ │ │ │ │ +00000188 0000191c R_ARM_CALL 00000000 fftw_md5int │ │ │ │ │ +00000194 00001a1c R_ARM_CALL 00000000 fftw_md5INT │ │ │ │ │ +000001a0 00001a1c R_ARM_CALL 00000000 fftw_md5INT │ │ │ │ │ +000001ac 00001a1c R_ARM_CALL 00000000 fftw_md5INT │ │ │ │ │ +000001b8 00001a1c R_ARM_CALL 00000000 fftw_md5INT │ │ │ │ │ +000001c4 00001a1c R_ARM_CALL 00000000 fftw_md5INT │ │ │ │ │ +000001d0 0000131c R_ARM_CALL 00000000 MPI_Comm_size │ │ │ │ │ +000001dc 0000191c R_ARM_CALL 00000000 fftw_md5int │ │ │ │ │ +000001f0 00000903 R_ARM_REL32 0000002c .LC1 │ │ │ │ │ +00000234 00001c1c R_ARM_CALL 00000000 fftw_mkproblem │ │ │ │ │ +00000288 00001d1c R_ARM_CALL 00000000 MPI_Comm_dup │ │ │ │ │ +000002ac 00000e03 R_ARM_REL32 00000000 .data.rel.ro.local │ │ │ │ │ │ │ │ │ │ -Relocation section '.rel.data.rel.ro.local' at offset 0x668 contains 4 entries: │ │ │ │ │ +Relocation section '.rel.data.rel.ro.local' at offset 0x6dc contains 4 entries: │ │ │ │ │ Offset Info Type Sym. Value Symbol's Name │ │ │ │ │ -00000004 00000a02 R_ARM_ABS32 00000110 hash │ │ │ │ │ -00000008 00000802 R_ARM_ABS32 000000b4 zero │ │ │ │ │ -0000000c 00000502 R_ARM_ABS32 0000001c print │ │ │ │ │ +00000004 00000a02 R_ARM_ABS32 0000014c hash │ │ │ │ │ +00000008 00000802 R_ARM_ABS32 000000dc zero │ │ │ │ │ +0000000c 00000502 R_ARM_ABS32 00000028 print │ │ │ │ │ 00000010 00000202 R_ARM_ABS32 00000000 destroy │ │ │ │ ├── objdump --line-numbers --disassemble --demangle --reloc --no-show-raw-insn --section=.text {} │ │ │ │ │ @@ -1,112 +1,128 @@ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ Disassembly of section .text: │ │ │ │ │ │ │ │ │ │ 00000000 : │ │ │ │ │ destroy(): │ │ │ │ │ - push {r4, lr} │ │ │ │ │ + str r4, [sp, #-8]! │ │ │ │ │ mov r4, r0 │ │ │ │ │ add r0, r0, #36 @ 0x24 │ │ │ │ │ + str lr, [sp, #4] │ │ │ │ │ bl 0 │ │ │ │ │ R_ARM_CALL MPI_Comm_free │ │ │ │ │ + ldr lr, [sp, #4] │ │ │ │ │ mov r0, r4 │ │ │ │ │ - pop {r4, lr} │ │ │ │ │ + ldr r4, [sp] │ │ │ │ │ + add sp, sp, #8 │ │ │ │ │ b 0 │ │ │ │ │ R_ARM_JUMP24 fftw_ifree │ │ │ │ │ │ │ │ │ │ -0000001c : │ │ │ │ │ +00000028 : │ │ │ │ │ print(): │ │ │ │ │ - push {r4, r5, r6, r7, r8, lr} │ │ │ │ │ - sub sp, sp, #40 @ 0x28 │ │ │ │ │ + strd r4, [sp, #-24]! @ 0xffffffe8 │ │ │ │ │ mov r4, r0 │ │ │ │ │ mov r5, r1 │ │ │ │ │ + strd r6, [sp, #8] │ │ │ │ │ + str r8, [sp, #16] │ │ │ │ │ + str lr, [sp, #20] │ │ │ │ │ + sub sp, sp, #40 @ 0x28 │ │ │ │ │ ldr r0, [r0, #36] @ 0x24 │ │ │ │ │ add r1, sp, #36 @ 0x24 │ │ │ │ │ bl 0 │ │ │ │ │ R_ARM_CALL MPI_Comm_size │ │ │ │ │ ldr r0, [r4, #16] │ │ │ │ │ ldr r6, [r4, #20] │ │ │ │ │ ldr r8, [r5] │ │ │ │ │ sub r6, r6, r0 │ │ │ │ │ bl 0 │ │ │ │ │ R_ARM_CALL fftw_ialignment_of │ │ │ │ │ - clz r6, r6 │ │ │ │ │ - lsr r6, r6, #5 │ │ │ │ │ mov r7, r0 │ │ │ │ │ ldr r0, [r4, #20] │ │ │ │ │ + clz r6, r6 │ │ │ │ │ bl 0 │ │ │ │ │ R_ARM_CALL fftw_ialignment_of │ │ │ │ │ ldr r3, [sp, #36] @ 0x24 │ │ │ │ │ + lsr r6, r6, #5 │ │ │ │ │ + ldr r1, [pc, #84] @ d8 │ │ │ │ │ + mov r2, r6 │ │ │ │ │ str r3, [sp, #24] │ │ │ │ │ ldr r3, [r4, #32] │ │ │ │ │ + add r1, pc, r1 │ │ │ │ │ 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 r1, [pc, #32] @ b0 │ │ │ │ │ ldr r3, [r4, #4] │ │ │ │ │ - mov r2, r6 │ │ │ │ │ - add r1, pc, r1 │ │ │ │ │ stm sp, {r0, r3} │ │ │ │ │ mov r3, r7 │ │ │ │ │ mov r0, r5 │ │ │ │ │ blx r8 │ │ │ │ │ add sp, sp, #40 @ 0x28 │ │ │ │ │ - pop {r4, r5, r6, r7, r8, pc} │ │ │ │ │ - .word 0x00000014 │ │ │ │ │ + ldrd r4, [sp] │ │ │ │ │ + ldrd r6, [sp, #8] │ │ │ │ │ + ldr r8, [sp, #16] │ │ │ │ │ + add sp, sp, #20 │ │ │ │ │ + pop {pc} @ (ldr pc, [sp], #4) │ │ │ │ │ + .word 0x00000044 │ │ │ │ │ R_ARM_REL32 .LC0 │ │ │ │ │ │ │ │ │ │ -000000b4 : │ │ │ │ │ +000000dc : │ │ │ │ │ zero(): │ │ │ │ │ - push {r4, r5, r6, lr} │ │ │ │ │ ldr r2, [r0, #4] │ │ │ │ │ + strd r4, [sp, #-16]! │ │ │ │ │ + mov r4, r0 │ │ │ │ │ ldr r3, [r0, #12] │ │ │ │ │ + str r6, [sp, #8] │ │ │ │ │ + str lr, [sp, #12] │ │ │ │ │ sub sp, sp, #8 │ │ │ │ │ - mov r4, r0 │ │ │ │ │ ldr r6, [r0, #16] │ │ │ │ │ add r1, sp, #4 │ │ │ │ │ ldr r0, [r0, #36] @ 0x24 │ │ │ │ │ mul r5, r3, r2 │ │ │ │ │ bl 0 │ │ │ │ │ R_ARM_CALL MPI_Comm_rank │ │ │ │ │ ldr r2, [sp, #4] │ │ │ │ │ - ldr r1, [r4, #28] │ │ │ │ │ ldr r0, [r4, #8] │ │ │ │ │ + ldr r1, [r4, #28] │ │ │ │ │ bl 0 │ │ │ │ │ R_ARM_CALL fftw_mpi_block │ │ │ │ │ mul r0, r5, r0 │ │ │ │ │ cmp r0, #0 │ │ │ │ │ - ble 108 │ │ │ │ │ + ble 138 │ │ │ │ │ lsl r2, r0, #3 │ │ │ │ │ mov r1, #0 │ │ │ │ │ mov r0, r6 │ │ │ │ │ bl 0 │ │ │ │ │ R_ARM_CALL memset │ │ │ │ │ add sp, sp, #8 │ │ │ │ │ - pop {r4, r5, r6, pc} │ │ │ │ │ + ldrd r4, [sp] │ │ │ │ │ + ldr r6, [sp, #8] │ │ │ │ │ + add sp, sp, #12 │ │ │ │ │ + pop {pc} @ (ldr pc, [sp], #4) │ │ │ │ │ │ │ │ │ │ -00000110 : │ │ │ │ │ +0000014c : │ │ │ │ │ hash(): │ │ │ │ │ - push {r4, r5, lr} │ │ │ │ │ + strd r4, [sp, #-12]! │ │ │ │ │ mov r4, r1 │ │ │ │ │ - ldr r1, [pc, #136] @ 1a8 │ │ │ │ │ - sub sp, sp, #12 │ │ │ │ │ mov r5, r0 │ │ │ │ │ - add r1, pc, r1 │ │ │ │ │ + ldr r1, [pc, #144] @ 1f0 │ │ │ │ │ mov r0, r4 │ │ │ │ │ + str lr, [sp, #8] │ │ │ │ │ + sub sp, sp, #12 │ │ │ │ │ + add r1, pc, r1 │ │ │ │ │ bl 0 │ │ │ │ │ R_ARM_CALL fftw_md5puts │ │ │ │ │ - ldr r3, [r5, #20] │ │ │ │ │ ldr r1, [r5, #16] │ │ │ │ │ mov r0, r4 │ │ │ │ │ + ldr r3, [r5, #20] │ │ │ │ │ sub r1, r1, r3 │ │ │ │ │ clz r1, r1 │ │ │ │ │ lsr r1, r1, #5 │ │ │ │ │ bl 0 │ │ │ │ │ R_ARM_CALL fftw_md5int │ │ │ │ │ ldr r1, [r5, #4] │ │ │ │ │ mov r0, r4 │ │ │ │ │ @@ -124,61 +140,74 @@ │ │ │ │ │ mov r0, r4 │ │ │ │ │ bl 0 │ │ │ │ │ R_ARM_CALL fftw_md5INT │ │ │ │ │ ldr r1, [r5, #32] │ │ │ │ │ mov r0, r4 │ │ │ │ │ bl 0 │ │ │ │ │ R_ARM_CALL fftw_md5INT │ │ │ │ │ - add r1, sp, #4 │ │ │ │ │ ldr r0, [r5, #36] @ 0x24 │ │ │ │ │ + add r1, sp, #4 │ │ │ │ │ bl 0 │ │ │ │ │ R_ARM_CALL MPI_Comm_size │ │ │ │ │ ldr r1, [sp, #4] │ │ │ │ │ mov r0, r4 │ │ │ │ │ bl 0 │ │ │ │ │ R_ARM_CALL fftw_md5int │ │ │ │ │ add sp, sp, #12 │ │ │ │ │ - pop {r4, r5, pc} │ │ │ │ │ - .word 0x0000007c │ │ │ │ │ + ldrd r4, [sp] │ │ │ │ │ + add sp, sp, #8 │ │ │ │ │ + pop {pc} @ (ldr pc, [sp], #4) │ │ │ │ │ + .word 0x00000080 │ │ │ │ │ R_ARM_REL32 .LC1 │ │ │ │ │ │ │ │ │ │ -000001ac : │ │ │ │ │ +000001f4 : │ │ │ │ │ fftw_mpi_mkproblem_transpose(): │ │ │ │ │ - push {r3, r4, r5, r6, r7, r8, r9, sl, fp, lr} │ │ │ │ │ + strd r4, [sp, #-36]! @ 0xffffffdc │ │ │ │ │ mov r5, r1 │ │ │ │ │ - ldr r1, [pc, #124] @ 238 │ │ │ │ │ + ldr r1, [pc, #168] @ 2ac │ │ │ │ │ + strd r6, [sp, #8] │ │ │ │ │ mov r6, r0 │ │ │ │ │ - add r1, pc, r1 │ │ │ │ │ mov r0, #40 @ 0x28 │ │ │ │ │ - ldr r9, [sp, #56] @ 0x38 │ │ │ │ │ + strd r8, [sp, #16] │ │ │ │ │ + mov r7, r3 │ │ │ │ │ + mov r8, r2 │ │ │ │ │ + strd sl, [sp, #24] │ │ │ │ │ + str lr, [sp, #32] │ │ │ │ │ + sub sp, sp, #4 │ │ │ │ │ ldr fp, [sp, #44] @ 0x2c │ │ │ │ │ + add r1, pc, r1 │ │ │ │ │ ldr sl, [sp, #48] @ 0x30 │ │ │ │ │ - mov r8, r2 │ │ │ │ │ - mov r7, r3 │ │ │ │ │ + ldr r9, [sp, #56] @ 0x38 │ │ │ │ │ bl 0 │ │ │ │ │ R_ARM_CALL fftw_mkproblem │ │ │ │ │ cmp r6, fp │ │ │ │ │ ldr r3, [sp, #40] @ 0x28 │ │ │ │ │ + mov r4, r0 │ │ │ │ │ + add r1, r0, #36 @ 0x24 │ │ │ │ │ + str r8, [r0, #4] │ │ │ │ │ str r6, [r0, #8] │ │ │ │ │ movge r6, fp │ │ │ │ │ cmp r5, sl │ │ │ │ │ str r5, [r0, #12] │ │ │ │ │ movge r5, sl │ │ │ │ │ cmp r6, #1 │ │ │ │ │ orreq r9, r9, #4 │ │ │ │ │ cmp r5, #1 │ │ │ │ │ - orreq r9, r9, #8 │ │ │ │ │ - mov r4, r0 │ │ │ │ │ - add r1, r0, #36 @ 0x24 │ │ │ │ │ - str r8, [r0, #4] │ │ │ │ │ str r7, [r0, #16] │ │ │ │ │ + orreq r9, r9, #8 │ │ │ │ │ str r3, [r0, #20] │ │ │ │ │ + str r9, [r0, #24] │ │ │ │ │ str r6, [r0, #28] │ │ │ │ │ str r5, [r0, #32] │ │ │ │ │ - str r9, [r0, #24] │ │ │ │ │ ldr r0, [sp, #52] @ 0x34 │ │ │ │ │ bl 0 │ │ │ │ │ R_ARM_CALL MPI_Comm_dup │ │ │ │ │ mov r0, r4 │ │ │ │ │ - pop {r3, r4, r5, r6, r7, r8, r9, sl, fp, pc} │ │ │ │ │ - .word 0x00000074 │ │ │ │ │ + add sp, sp, #4 │ │ │ │ │ + ldrd r4, [sp] │ │ │ │ │ + ldrd r6, [sp, #8] │ │ │ │ │ + ldrd r8, [sp, #16] │ │ │ │ │ + ldrd sl, [sp, #24] │ │ │ │ │ + add sp, sp, #32 │ │ │ │ │ + pop {pc} @ (ldr pc, [sp], #4) │ │ │ │ │ + .word 0x0000007c │ │ │ │ │ R_ARM_REL32 .data.rel.ro.local │ │ │ ├── transpose-solve.o │ │ │ │ ├── objdump --line-numbers --disassemble --demangle --reloc --no-show-raw-insn --section=.text {} │ │ │ │ │ @@ -2,10 +2,10 @@ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ Disassembly of section .text: │ │ │ │ │ │ │ │ │ │ 00000000 : │ │ │ │ │ fftw_mpi_transpose_solve(): │ │ │ │ │ ldr r2, [r1, #20] │ │ │ │ │ - ldr r3, [r0, #56] @ 0x38 │ │ │ │ │ ldr r1, [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: 2280 (bytes into file) │ │ │ │ │ + Start of section headers: 2304 (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 0x8e8: │ │ │ │ │ +There are 15 section headers, starting at offset 0x900: │ │ │ │ │ │ │ │ │ │ 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 000304 00 AX 0 0 4 │ │ │ │ │ - [ 2] .rel.text REL 00000000 000780 0000b8 08 I 12 1 4 │ │ │ │ │ - [ 3] .data PROGBITS 00000000 000338 000000 00 WA 0 0 1 │ │ │ │ │ - [ 4] .bss NOBITS 00000000 000338 000000 00 WA 0 0 1 │ │ │ │ │ - [ 5] .rodata.str1.4 PROGBITS 00000000 000338 000018 01 AMS 0 0 4 │ │ │ │ │ - [ 6] .data.rel.ro PROGBITS 00000000 000350 000010 00 WA 0 0 4 │ │ │ │ │ - [ 7] .rel.data.rel.ro REL 00000000 000838 000020 08 I 12 6 4 │ │ │ │ │ - [ 8] .data.rel.ro.local PROGBITS 00000000 000360 00000c 00 WA 0 0 4 │ │ │ │ │ - [ 9] .rel.data.rel.ro.local REL 00000000 000858 000008 08 I 12 8 4 │ │ │ │ │ - [10] .note.GNU-stack PROGBITS 00000000 00036c 000000 00 0 0 1 │ │ │ │ │ - [11] .ARM.attributes ARM_ATTRIBUTES 00000000 00036c 00002b 00 0 0 1 │ │ │ │ │ - [12] .symtab SYMTAB 00000000 000398 000260 10 13 20 4 │ │ │ │ │ - [13] .strtab STRTAB 00000000 0005f8 000187 00 0 0 1 │ │ │ │ │ - [14] .shstrtab STRTAB 00000000 000860 000087 00 0 0 1 │ │ │ │ │ + [ 1] .text PROGBITS 00000000 000034 000324 00 AX 0 0 4 │ │ │ │ │ + [ 2] .rel.text REL 00000000 0007a0 0000b0 08 I 12 1 4 │ │ │ │ │ + [ 3] .data PROGBITS 00000000 000358 000000 00 WA 0 0 1 │ │ │ │ │ + [ 4] .bss NOBITS 00000000 000358 000000 00 WA 0 0 1 │ │ │ │ │ + [ 5] .rodata.str1.4 PROGBITS 00000000 000358 000018 01 AMS 0 0 4 │ │ │ │ │ + [ 6] .data.rel.ro PROGBITS 00000000 000370 000010 00 WA 0 0 4 │ │ │ │ │ + [ 7] .rel.data.rel.ro REL 00000000 000850 000020 08 I 12 6 4 │ │ │ │ │ + [ 8] .data.rel.ro.local PROGBITS 00000000 000380 00000c 00 WA 0 0 4 │ │ │ │ │ + [ 9] .rel.data.rel.ro.local REL 00000000 000870 000008 08 I 12 8 4 │ │ │ │ │ + [10] .note.GNU-stack PROGBITS 00000000 00038c 000000 00 0 0 1 │ │ │ │ │ + [11] .ARM.attributes ARM_ATTRIBUTES 00000000 00038c 00002b 00 0 0 1 │ │ │ │ │ + [12] .symtab SYMTAB 00000000 0003b8 000260 10 13 20 4 │ │ │ │ │ + [13] .strtab STRTAB 00000000 000618 000187 00 0 0 1 │ │ │ │ │ + [14] .shstrtab STRTAB 00000000 000878 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: 00000000 0 NOTYPE LOCAL DEFAULT 1 $a │ │ │ │ │ - 2: 00000000 60 FUNC LOCAL DEFAULT 1 apply │ │ │ │ │ + 2: 00000000 80 FUNC LOCAL DEFAULT 1 apply │ │ │ │ │ 3: 00000000 0 NOTYPE LOCAL DEFAULT 5 $d │ │ │ │ │ 4: 00000000 0 NOTYPE LOCAL DEFAULT 5 .LC0 │ │ │ │ │ - 5: 0000003c 32 FUNC LOCAL DEFAULT 1 print │ │ │ │ │ - 6: 00000058 0 NOTYPE LOCAL DEFAULT 1 $d │ │ │ │ │ - 7: 0000005c 0 NOTYPE LOCAL DEFAULT 1 $a │ │ │ │ │ - 8: 0000005c 8 FUNC LOCAL DEFAULT 1 destroy │ │ │ │ │ - 9: 00000064 8 FUNC LOCAL DEFAULT 1 awake │ │ │ │ │ - 10: 0000006c 532 FUNC LOCAL DEFAULT 1 mkplan │ │ │ │ │ - 11: 00000278 0 NOTYPE LOCAL DEFAULT 1 $d │ │ │ │ │ - 12: 00000280 0 NOTYPE LOCAL DEFAULT 1 $a │ │ │ │ │ - 13: 00000300 0 NOTYPE LOCAL DEFAULT 1 $d │ │ │ │ │ + 5: 00000050 32 FUNC LOCAL DEFAULT 1 print │ │ │ │ │ + 6: 0000006c 0 NOTYPE LOCAL DEFAULT 1 $d │ │ │ │ │ + 7: 00000070 0 NOTYPE LOCAL DEFAULT 1 $a │ │ │ │ │ + 8: 00000070 8 FUNC LOCAL DEFAULT 1 destroy │ │ │ │ │ + 9: 00000078 8 FUNC LOCAL DEFAULT 1 awake │ │ │ │ │ + 10: 00000080 520 FUNC LOCAL DEFAULT 1 mkplan │ │ │ │ │ + 11: 00000280 0 NOTYPE LOCAL DEFAULT 1 $d │ │ │ │ │ + 12: 00000288 0 NOTYPE LOCAL DEFAULT 1 $a │ │ │ │ │ + 13: 00000320 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: 00000280 88 FUNC GLOBAL DEFAULT 1 fftw_mpi_dft_serial_applicable │ │ │ │ │ - 34: 000002d8 44 FUNC GLOBAL DEFAULT 1 fftw_mpi_dft_serial_register │ │ │ │ │ + 33: 00000288 100 FUNC GLOBAL DEFAULT 1 fftw_mpi_dft_serial_applicable │ │ │ │ │ + 34: 000002ec 56 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,37 +1,36 @@ │ │ │ │ │ │ │ │ │ │ -Relocation section '.rel.text' at offset 0x780 contains 23 entries: │ │ │ │ │ +Relocation section '.rel.text' at offset 0x7a0 contains 22 entries: │ │ │ │ │ Offset Info Type Sym. Value Symbol's Name │ │ │ │ │ -00000058 00000403 R_ARM_REL32 00000000 .LC0 │ │ │ │ │ -00000060 0000141d R_ARM_JUMP24 00000000 fftw_plan_destroy_internal │ │ │ │ │ -00000068 0000151d R_ARM_JUMP24 00000000 fftw_plan_awake │ │ │ │ │ -00000098 0000161c R_ARM_CALL 00000000 fftw_mpi_is_local │ │ │ │ │ -000000c0 0000171c R_ARM_CALL 00000000 fftw_extract_reim │ │ │ │ │ -000000d4 0000171c R_ARM_CALL 00000000 fftw_extract_reim │ │ │ │ │ -000000e0 0000181c R_ARM_CALL 00000000 MPI_Comm_rank │ │ │ │ │ -000000fc 0000191c R_ARM_CALL 00000000 fftw_mktensor_0d │ │ │ │ │ -00000110 00001a1c R_ARM_CALL 00000000 fftw_mktensor_1d │ │ │ │ │ -00000130 00001b1c R_ARM_CALL 00000000 fftw_mkproblem_dft_d │ │ │ │ │ -0000013c 00001c1c R_ARM_CALL 00000000 fftw_mkplan_d │ │ │ │ │ -00000150 00001d1c R_ARM_CALL 00000000 fftw_mpi_any_true │ │ │ │ │ -00000170 00001e1c R_ARM_CALL 00000000 fftw_mkplan_rdft │ │ │ │ │ -000001a8 00001f1c R_ARM_CALL 00000000 fftw_ops_cpy │ │ │ │ │ -000001c4 0000201c R_ARM_CALL 00000000 fftw_mktensor │ │ │ │ │ -0000023c 00001a1c R_ARM_CALL 00000000 fftw_mktensor_1d │ │ │ │ │ -00000268 0000161c R_ARM_CALL 00000000 fftw_mpi_is_local │ │ │ │ │ -0000027c 00000e03 R_ARM_REL32 00000000 .data.rel.ro │ │ │ │ │ -000002a0 0000161c R_ARM_CALL 00000000 fftw_mpi_is_local │ │ │ │ │ -000002c4 0000161c R_ARM_CALL 00000000 fftw_mpi_is_local │ │ │ │ │ -000002ec 0000231c R_ARM_CALL 00000000 fftw_mksolver │ │ │ │ │ -000002fc 0000241d R_ARM_JUMP24 00000000 fftw_solver_register │ │ │ │ │ -00000300 00001103 R_ARM_REL32 00000000 .data.rel.ro.local │ │ │ │ │ +0000006c 00000403 R_ARM_REL32 00000000 .LC0 │ │ │ │ │ +00000074 0000141d R_ARM_JUMP24 00000000 fftw_plan_destroy_internal │ │ │ │ │ +0000007c 0000151d R_ARM_JUMP24 00000000 fftw_plan_awake │ │ │ │ │ +000000c0 0000161c R_ARM_CALL 00000000 fftw_mpi_is_local │ │ │ │ │ +000000e8 0000171c R_ARM_CALL 00000000 fftw_extract_reim │ │ │ │ │ +000000fc 0000171c R_ARM_CALL 00000000 fftw_extract_reim │ │ │ │ │ +00000108 0000181c R_ARM_CALL 00000000 MPI_Comm_rank │ │ │ │ │ +00000124 0000191c R_ARM_CALL 00000000 fftw_mktensor_0d │ │ │ │ │ +00000138 00001a1c R_ARM_CALL 00000000 fftw_mktensor_1d │ │ │ │ │ +00000158 00001b1c R_ARM_CALL 00000000 fftw_mkproblem_dft_d │ │ │ │ │ +00000164 00001c1c R_ARM_CALL 00000000 fftw_mkplan_d │ │ │ │ │ +00000178 00001d1c R_ARM_CALL 00000000 fftw_mpi_any_true │ │ │ │ │ +00000198 00001e1c R_ARM_CALL 00000000 fftw_mkplan_rdft │ │ │ │ │ +000001d0 00001f1c R_ARM_CALL 00000000 fftw_ops_cpy │ │ │ │ │ +000001e8 0000201c R_ARM_CALL 00000000 fftw_mktensor │ │ │ │ │ +00000270 0000161c R_ARM_CALL 00000000 fftw_mpi_is_local │ │ │ │ │ +00000284 00000e03 R_ARM_REL32 00000000 .data.rel.ro │ │ │ │ │ +000002ac 0000161c R_ARM_CALL 00000000 fftw_mpi_is_local │ │ │ │ │ +000002d8 0000161c R_ARM_CALL 00000000 fftw_mpi_is_local │ │ │ │ │ +00000304 0000231c R_ARM_CALL 00000000 fftw_mksolver │ │ │ │ │ +0000031c 0000241d R_ARM_JUMP24 00000000 fftw_solver_register │ │ │ │ │ +00000320 00001103 R_ARM_REL32 00000000 .data.rel.ro.local │ │ │ │ │ │ │ │ │ │ -Relocation section '.rel.data.rel.ro' at offset 0x838 contains 4 entries: │ │ │ │ │ +Relocation section '.rel.data.rel.ro' at offset 0x850 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 00000064 awake │ │ │ │ │ -00000008 00000502 R_ARM_ABS32 0000003c print │ │ │ │ │ -0000000c 00000802 R_ARM_ABS32 0000005c destroy │ │ │ │ │ +00000004 00000902 R_ARM_ABS32 00000078 awake │ │ │ │ │ +00000008 00000502 R_ARM_ABS32 00000050 print │ │ │ │ │ +0000000c 00000802 R_ARM_ABS32 00000070 destroy │ │ │ │ │ │ │ │ │ │ -Relocation section '.rel.data.rel.ro.local' at offset 0x858 contains 1 entry: │ │ │ │ │ +Relocation section '.rel.data.rel.ro.local' at offset 0x870 contains 1 entry: │ │ │ │ │ Offset Info Type Sym. Value Symbol's Name │ │ │ │ │ -00000004 00000a02 R_ARM_ABS32 0000006c mkplan │ │ │ │ │ +00000004 00000a02 R_ARM_ABS32 00000080 mkplan │ │ │ │ ├── objdump --line-numbers --disassemble --demangle --reloc --no-show-raw-insn --section=.text {} │ │ │ │ │ @@ -2,240 +2,247 @@ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ Disassembly of section .text: │ │ │ │ │ │ │ │ │ │ 00000000 : │ │ │ │ │ apply(): │ │ │ │ │ mov ip, r0 │ │ │ │ │ - push {r4, lr} │ │ │ │ │ + str r4, [sp, #-8]! │ │ │ │ │ + str lr, [sp, #4] │ │ │ │ │ + sub sp, sp, #8 │ │ │ │ │ ldr lr, [ip, #68] @ 0x44 │ │ │ │ │ ldr ip, [ip, #72] @ 0x48 │ │ │ │ │ ldr r0, [r0, #64] @ 0x40 │ │ │ │ │ - sub sp, sp, #8 │ │ │ │ │ - add r3, r2, ip, lsl #3 │ │ │ │ │ + lsl lr, lr, #3 │ │ │ │ │ + lsl ip, ip, #3 │ │ │ │ │ + add r3, r2, ip │ │ │ │ │ str r3, [sp] │ │ │ │ │ - add r3, r2, lr, lsl #3 │ │ │ │ │ + add r3, r2, lr │ │ │ │ │ + add r2, r1, ip │ │ │ │ │ ldr r4, [r0, #56] @ 0x38 │ │ │ │ │ - add r2, r1, ip, lsl #3 │ │ │ │ │ - add r1, r1, lr, lsl #3 │ │ │ │ │ + add r1, r1, lr │ │ │ │ │ blx r4 │ │ │ │ │ add sp, sp, #8 │ │ │ │ │ - pop {r4, pc} │ │ │ │ │ + ldr r4, [sp] │ │ │ │ │ + add sp, sp, #4 │ │ │ │ │ + pop {pc} @ (ldr pc, [sp], #4) │ │ │ │ │ │ │ │ │ │ -0000003c : │ │ │ │ │ +00000050 : │ │ │ │ │ print(): │ │ │ │ │ - mov r2, r0 │ │ │ │ │ ldr r3, [r1] │ │ │ │ │ + mov r2, r0 │ │ │ │ │ mov r0, r1 │ │ │ │ │ - ldr r1, [pc, #8] @ 58 │ │ │ │ │ + ldr r1, [pc, #8] @ 6c │ │ │ │ │ ldr r2, [r2, #64] @ 0x40 │ │ │ │ │ add r1, pc, r1 │ │ │ │ │ bx r3 │ │ │ │ │ .word 0x00000000 │ │ │ │ │ R_ARM_REL32 .LC0 │ │ │ │ │ │ │ │ │ │ -0000005c : │ │ │ │ │ +00000070 : │ │ │ │ │ destroy(): │ │ │ │ │ ldr r0, [r0, #64] @ 0x40 │ │ │ │ │ b 0 │ │ │ │ │ R_ARM_JUMP24 fftw_plan_destroy_internal │ │ │ │ │ │ │ │ │ │ -00000064 : │ │ │ │ │ +00000078 : │ │ │ │ │ awake(): │ │ │ │ │ ldr r0, [r0, #64] @ 0x40 │ │ │ │ │ b 0 │ │ │ │ │ R_ARM_JUMP24 fftw_plan_awake │ │ │ │ │ │ │ │ │ │ -0000006c : │ │ │ │ │ +00000080 : │ │ │ │ │ mkplan(): │ │ │ │ │ - push {r4, r5, r6, r7, lr} │ │ │ │ │ + strd r4, [sp, #-20]! @ 0xffffffec │ │ │ │ │ mov r4, r1 │ │ │ │ │ ldr r1, [r1, #24] │ │ │ │ │ + strd r6, [sp, #8] │ │ │ │ │ + str lr, [sp, #16] │ │ │ │ │ sub sp, sp, #36 @ 0x24 │ │ │ │ │ cmp r1, #0 │ │ │ │ │ - beq 90 │ │ │ │ │ + beq b8 │ │ │ │ │ mov r0, #0 │ │ │ │ │ add sp, sp, #36 @ 0x24 │ │ │ │ │ - pop {r4, r5, r6, r7, pc} │ │ │ │ │ + ldrd r4, [sp] │ │ │ │ │ + ldrd r6, [sp, #8] │ │ │ │ │ + add sp, sp, #16 │ │ │ │ │ + pop {pc} @ (ldr pc, [sp], #4) │ │ │ │ │ ldr r0, [r4, #4] │ │ │ │ │ - mov r6, r2 │ │ │ │ │ + mov r5, r2 │ │ │ │ │ bl 0 │ │ │ │ │ R_ARM_CALL fftw_mpi_is_local │ │ │ │ │ cmp r0, #0 │ │ │ │ │ - bne 260 │ │ │ │ │ + bne 268 │ │ │ │ │ ldr r3, [r4, #8] │ │ │ │ │ cmp r3, #0 │ │ │ │ │ - bne 84 │ │ │ │ │ + bne a0 │ │ │ │ │ ldr r1, [r4, #12] │ │ │ │ │ - ldr r0, [r4, #20] │ │ │ │ │ add r3, sp, #20 │ │ │ │ │ add r2, sp, #16 │ │ │ │ │ + ldr r0, [r4, #20] │ │ │ │ │ bl 0 │ │ │ │ │ R_ARM_CALL fftw_extract_reim │ │ │ │ │ - add r3, sp, #28 │ │ │ │ │ ldr r1, [r4, #16] │ │ │ │ │ - ldr r0, [r4, #20] │ │ │ │ │ + add r3, sp, #28 │ │ │ │ │ add r2, sp, #24 │ │ │ │ │ + ldr r0, [r4, #20] │ │ │ │ │ bl 0 │ │ │ │ │ R_ARM_CALL fftw_extract_reim │ │ │ │ │ ldr r0, [r4, #28] │ │ │ │ │ add r1, sp, #12 │ │ │ │ │ bl 0 │ │ │ │ │ R_ARM_CALL MPI_Comm_rank │ │ │ │ │ ldr r3, [sp, #12] │ │ │ │ │ cmp r3, #0 │ │ │ │ │ - bne fc │ │ │ │ │ + bne 124 │ │ │ │ │ ldr r3, [r4, #8] │ │ │ │ │ cmp r3, #0 │ │ │ │ │ - bgt 1b8 │ │ │ │ │ + bgt 1dc │ │ │ │ │ bl 0 │ │ │ │ │ R_ARM_CALL fftw_mktensor_0d │ │ │ │ │ mov r2, #0 │ │ │ │ │ + mov r6, r0 │ │ │ │ │ mov r1, r2 │ │ │ │ │ - mov r5, r0 │ │ │ │ │ mov r0, r2 │ │ │ │ │ bl 0 │ │ │ │ │ R_ARM_CALL fftw_mktensor_1d │ │ │ │ │ ldr r3, [sp, #28] │ │ │ │ │ + mov r1, r0 │ │ │ │ │ + mov r0, r6 │ │ │ │ │ str r3, [sp, #4] │ │ │ │ │ ldr r3, [sp, #24] │ │ │ │ │ str r3, [sp] │ │ │ │ │ ldrd r2, [sp, #16] │ │ │ │ │ - mov r1, r0 │ │ │ │ │ - mov r0, r5 │ │ │ │ │ bl 0 │ │ │ │ │ R_ARM_CALL fftw_mkproblem_dft_d │ │ │ │ │ mov r1, r0 │ │ │ │ │ - mov r0, r6 │ │ │ │ │ + mov r0, r5 │ │ │ │ │ bl 0 │ │ │ │ │ R_ARM_CALL fftw_mkplan_d │ │ │ │ │ - ldr r1, [r4, #28] │ │ │ │ │ mov r6, r0 │ │ │ │ │ clz r0, r0 │ │ │ │ │ + ldr r1, [r4, #28] │ │ │ │ │ lsr r0, r0, #5 │ │ │ │ │ bl 0 │ │ │ │ │ R_ARM_CALL fftw_mpi_any_true │ │ │ │ │ cmp r0, #0 │ │ │ │ │ - bne 84 │ │ │ │ │ - ldr r2, [pc, #276] @ 278 │ │ │ │ │ - ldr r1, [pc, #276] @ 27c │ │ │ │ │ + bne a0 │ │ │ │ │ + ldr r2, [pc, #244] @ 280 │ │ │ │ │ + mov r0, #80 @ 0x50 │ │ │ │ │ + ldr r1, [pc, #240] @ 284 │ │ │ │ │ add r2, pc, r2 │ │ │ │ │ add r1, pc, r1 │ │ │ │ │ - mov r0, #80 @ 0x50 │ │ │ │ │ bl 0 │ │ │ │ │ R_ARM_CALL fftw_mkplan_rdft │ │ │ │ │ ldr r2, [r4, #16] │ │ │ │ │ + mov r5, r0 │ │ │ │ │ + add r1, r0, #8 │ │ │ │ │ + str r6, [r0, #64] @ 0x40 │ │ │ │ │ ldr r3, [sp, #24] │ │ │ │ │ sub r3, r3, r2 │ │ │ │ │ asr r3, r3, #3 │ │ │ │ │ str r3, [r0, #68] @ 0x44 │ │ │ │ │ ldr r3, [sp, #28] │ │ │ │ │ - mov r5, r0 │ │ │ │ │ sub r3, r3, r2 │ │ │ │ │ asr r3, r3, #3 │ │ │ │ │ - add r1, r0, #8 │ │ │ │ │ - str r6, [r0, #64] @ 0x40 │ │ │ │ │ str r3, [r0, #72] @ 0x48 │ │ │ │ │ add r0, r6, #8 │ │ │ │ │ bl 0 │ │ │ │ │ R_ARM_CALL fftw_ops_cpy │ │ │ │ │ mov r0, r5 │ │ │ │ │ - add sp, sp, #36 @ 0x24 │ │ │ │ │ - pop {r4, r5, r6, r7, pc} │ │ │ │ │ + b a4 │ │ │ │ │ ldr r3, [r4, #4] │ │ │ │ │ - ldr r5, [r3] │ │ │ │ │ - mov r0, r5 │ │ │ │ │ + ldr r7, [r3] │ │ │ │ │ + mov r0, r7 │ │ │ │ │ bl 0 │ │ │ │ │ R_ARM_CALL fftw_mktensor │ │ │ │ │ - sub r2, r5, #1 │ │ │ │ │ - ldr ip, [r4, #4] │ │ │ │ │ - add lr, r2, r2, lsl #1 │ │ │ │ │ - cmp r2, #0 │ │ │ │ │ - mov r7, r0 │ │ │ │ │ + ldr r2, [r4, #4] │ │ │ │ │ + sub ip, r7, #1 │ │ │ │ │ + mov r6, r0 │ │ │ │ │ + add lr, ip, ip, lsl #1 │ │ │ │ │ + cmp ip, #0 │ │ │ │ │ ldr r0, [r4, #8] │ │ │ │ │ - add r3, r7, lr, lsl #2 │ │ │ │ │ + add r7, r7, r7, lsl #1 │ │ │ │ │ + lsl lr, lr, #2 │ │ │ │ │ + lsl r7, r7, #2 │ │ │ │ │ + add r3, r6, lr │ │ │ │ │ + add lr, r2, lr │ │ │ │ │ + ldr lr, [lr, #4] │ │ │ │ │ lsl r1, r0, #1 │ │ │ │ │ - add lr, ip, lr, lsl #2 │ │ │ │ │ str r1, [r3, #12] │ │ │ │ │ - add r3, r5, r5, lsl #1 │ │ │ │ │ - ldr lr, [lr, #4] │ │ │ │ │ - lsl r5, r3, #2 │ │ │ │ │ - add r3, r7, r3, lsl #2 │ │ │ │ │ - str r1, [r3, #-4] │ │ │ │ │ + add r3, r6, r7 │ │ │ │ │ str lr, [r3, #-8] │ │ │ │ │ - ble 234 │ │ │ │ │ - add ip, ip, r5 │ │ │ │ │ + str r1, [r3, #-4] │ │ │ │ │ + ble 25c │ │ │ │ │ + add r2, r2, r7 │ │ │ │ │ mul r1, lr, r1 │ │ │ │ │ - subs r2, r2, #1 │ │ │ │ │ - str r1, [r3, #-12] │ │ │ │ │ - str r1, [r3, #-16] │ │ │ │ │ - ldr lr, [ip, #-20] @ 0xffffffec │ │ │ │ │ - str lr, [r3, #-20] @ 0xffffffec │ │ │ │ │ - sub ip, ip, #12 │ │ │ │ │ + subs ip, ip, #1 │ │ │ │ │ sub r3, r3, #12 │ │ │ │ │ - bne 210 │ │ │ │ │ + sub r2, r2, #12 │ │ │ │ │ + str r1, [r3, #-4] │ │ │ │ │ + str r1, [r3] │ │ │ │ │ + ldr lr, [r2, #-8] │ │ │ │ │ + str lr, [r3, #-8] │ │ │ │ │ + bne 238 │ │ │ │ │ mov r2, #2 │ │ │ │ │ mov r1, r2 │ │ │ │ │ - bl 0 │ │ │ │ │ - R_ARM_CALL fftw_mktensor_1d │ │ │ │ │ - ldr r3, [sp, #28] │ │ │ │ │ - str r3, [sp, #4] │ │ │ │ │ - ldr r3, [sp, #24] │ │ │ │ │ - str r3, [sp] │ │ │ │ │ - ldrd r2, [sp, #16] │ │ │ │ │ - mov r1, r0 │ │ │ │ │ - mov r0, r7 │ │ │ │ │ - b 130 │ │ │ │ │ + b 138 │ │ │ │ │ ldr r0, [r4, #4] │ │ │ │ │ mov r1, #1 │ │ │ │ │ bl 0 │ │ │ │ │ R_ARM_CALL fftw_mpi_is_local │ │ │ │ │ cmp r0, #0 │ │ │ │ │ - beq a4 │ │ │ │ │ - b b0 │ │ │ │ │ - .word 0xfffffe94 │ │ │ │ │ - .word 0x0000010c │ │ │ │ │ + beq cc │ │ │ │ │ + b d8 │ │ │ │ │ + .word 0xfffffe68 │ │ │ │ │ + .word 0x000000e8 │ │ │ │ │ R_ARM_REL32 .data.rel.ro │ │ │ │ │ │ │ │ │ │ -00000280 : │ │ │ │ │ +00000288 : │ │ │ │ │ fftw_mpi_dft_serial_applicable(): │ │ │ │ │ ldr r1, [r0, #24] │ │ │ │ │ cmp r1, #0 │ │ │ │ │ - beq 294 │ │ │ │ │ + beq 29c │ │ │ │ │ mov r0, #0 │ │ │ │ │ bx lr │ │ │ │ │ - push {r4, lr} │ │ │ │ │ + str r4, [sp, #-8]! │ │ │ │ │ mov r4, r0 │ │ │ │ │ ldr r0, [r0, #4] │ │ │ │ │ + str lr, [sp, #4] │ │ │ │ │ bl 0 │ │ │ │ │ R_ARM_CALL fftw_mpi_is_local │ │ │ │ │ cmp r0, #0 │ │ │ │ │ - bne 2bc │ │ │ │ │ + bne 2d0 │ │ │ │ │ ldr r0, [r4, #8] │ │ │ │ │ clz r0, r0 │ │ │ │ │ lsr r0, r0, #5 │ │ │ │ │ - pop {r4, pc} │ │ │ │ │ + ldr r4, [sp] │ │ │ │ │ + add sp, sp, #4 │ │ │ │ │ + pop {pc} @ (ldr pc, [sp], #4) │ │ │ │ │ ldr r0, [r4, #4] │ │ │ │ │ mov r1, #1 │ │ │ │ │ bl 0 │ │ │ │ │ R_ARM_CALL fftw_mpi_is_local │ │ │ │ │ cmp r0, #0 │ │ │ │ │ - beq 2ac │ │ │ │ │ - mov r0, #1 │ │ │ │ │ - pop {r4, pc} │ │ │ │ │ + movne r0, #1 │ │ │ │ │ + bne 2c4 │ │ │ │ │ + b 2b8 │ │ │ │ │ │ │ │ │ │ -000002d8 : │ │ │ │ │ +000002ec : │ │ │ │ │ fftw_mpi_dft_serial_register(): │ │ │ │ │ - ldr r1, [pc, #32] @ 300 │ │ │ │ │ - push {r4, lr} │ │ │ │ │ - add r1, pc, r1 │ │ │ │ │ + ldr r1, [pc, #44] @ 320 │ │ │ │ │ + str r4, [sp, #-8]! │ │ │ │ │ mov r4, r0 │ │ │ │ │ mov r0, #8 │ │ │ │ │ + str lr, [sp, #4] │ │ │ │ │ + add r1, pc, r1 │ │ │ │ │ bl 0 │ │ │ │ │ R_ARM_CALL fftw_mksolver │ │ │ │ │ + ldr lr, [sp, #4] │ │ │ │ │ mov r1, r0 │ │ │ │ │ mov r0, r4 │ │ │ │ │ - pop {r4, lr} │ │ │ │ │ + ldr r4, [sp] │ │ │ │ │ + add sp, sp, #8 │ │ │ │ │ b 0 │ │ │ │ │ R_ARM_JUMP24 fftw_solver_register │ │ │ │ │ .word 0x00000018 │ │ │ │ │ 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: 3168 (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 0xc60: │ │ │ │ │ +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 00054c 00 AX 0 0 4 │ │ │ │ │ - [ 2] .rel.text REL 00000000 000a98 000118 08 I 12 1 4 │ │ │ │ │ - [ 3] .data PROGBITS 00000000 000580 000000 00 WA 0 0 1 │ │ │ │ │ - [ 4] .bss NOBITS 00000000 000580 000000 00 WA 0 0 1 │ │ │ │ │ - [ 5] .rodata.str1.4 PROGBITS 00000000 000580 00002a 01 AMS 0 0 4 │ │ │ │ │ - [ 6] .data.rel.ro PROGBITS 00000000 0005aa 000010 00 WA 0 0 4 │ │ │ │ │ - [ 7] .rel.data.rel.ro REL 00000000 000bb0 000020 08 I 12 6 4 │ │ │ │ │ - [ 8] .data.rel.ro.local PROGBITS 00000000 0005ba 00000c 00 WA 0 0 4 │ │ │ │ │ - [ 9] .rel.data.rel.ro.local REL 00000000 000bd0 000008 08 I 12 8 4 │ │ │ │ │ - [10] .note.GNU-stack PROGBITS 00000000 0005c6 000000 00 0 0 1 │ │ │ │ │ - [11] .ARM.attributes ARM_ATTRIBUTES 00000000 0005c6 00002b 00 0 0 1 │ │ │ │ │ - [12] .symtab SYMTAB 00000000 0005f4 0002c0 10 13 22 4 │ │ │ │ │ - [13] .strtab STRTAB 00000000 0008b4 0001e1 00 0 0 1 │ │ │ │ │ - [14] .shstrtab STRTAB 00000000 000bd8 000087 00 0 0 1 │ │ │ │ │ + [ 1] .text PROGBITS 00000000 000034 0005c8 00 AX 0 0 4 │ │ │ │ │ + [ 2] .rel.text REL 00000000 000b14 000118 08 I 12 1 4 │ │ │ │ │ + [ 3] .data PROGBITS 00000000 0005fc 000000 00 WA 0 0 1 │ │ │ │ │ + [ 4] .bss NOBITS 00000000 0005fc 000000 00 WA 0 0 1 │ │ │ │ │ + [ 5] .rodata.str1.4 PROGBITS 00000000 0005fc 00002a 01 AMS 0 0 4 │ │ │ │ │ + [ 6] .data.rel.ro PROGBITS 00000000 000626 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 000636 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 000642 000000 00 0 0 1 │ │ │ │ │ + [11] .ARM.attributes ARM_ATTRIBUTES 00000000 000642 00002b 00 0 0 1 │ │ │ │ │ + [12] .symtab SYMTAB 00000000 000670 0002c0 10 13 22 4 │ │ │ │ │ + [13] .strtab STRTAB 00000000 000930 0001e1 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 {} │ │ │ │ │ @@ -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: 00000000 0 NOTYPE LOCAL DEFAULT 1 $a │ │ │ │ │ - 2: 00000000 128 FUNC LOCAL DEFAULT 1 apply │ │ │ │ │ + 2: 00000000 148 FUNC LOCAL DEFAULT 1 apply │ │ │ │ │ 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: 00000080 96 FUNC LOCAL DEFAULT 1 print │ │ │ │ │ - 8: 000000d4 0 NOTYPE LOCAL DEFAULT 1 $d │ │ │ │ │ - 9: 000000e0 0 NOTYPE LOCAL DEFAULT 1 $a │ │ │ │ │ - 10: 000000e0 28 FUNC LOCAL DEFAULT 1 destroy │ │ │ │ │ - 11: 000000fc 980 FUNC LOCAL DEFAULT 1 mkplan │ │ │ │ │ - 12: 000004c8 0 NOTYPE LOCAL DEFAULT 1 $d │ │ │ │ │ - 13: 000004d0 0 NOTYPE LOCAL DEFAULT 1 $a │ │ │ │ │ - 14: 000004d0 36 FUNC LOCAL DEFAULT 1 awake │ │ │ │ │ - 15: 00000548 0 NOTYPE LOCAL DEFAULT 1 $d │ │ │ │ │ + 7: 00000094 108 FUNC LOCAL DEFAULT 1 print │ │ │ │ │ + 8: 000000f4 0 NOTYPE LOCAL DEFAULT 1 $d │ │ │ │ │ + 9: 00000100 0 NOTYPE LOCAL DEFAULT 1 $a │ │ │ │ │ + 10: 00000100 40 FUNC LOCAL DEFAULT 1 destroy │ │ │ │ │ + 11: 00000128 1020 FUNC LOCAL DEFAULT 1 mkplan │ │ │ │ │ + 12: 0000051c 0 NOTYPE LOCAL DEFAULT 1 $d │ │ │ │ │ + 13: 00000524 0 NOTYPE LOCAL DEFAULT 1 $a │ │ │ │ │ + 14: 00000524 56 FUNC LOCAL DEFAULT 1 awake │ │ │ │ │ + 15: 000005c4 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: 000004f4 88 FUNC GLOBAL DEFAULT 1 fftw_mpi_dft_rank_geq2_register │ │ │ │ │ + 40: 0000055c 108 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,49 +1,49 @@ │ │ │ │ │ │ │ │ │ │ -Relocation section '.rel.text' at offset 0xa98 contains 35 entries: │ │ │ │ │ +Relocation section '.rel.text' at offset 0xb14 contains 35 entries: │ │ │ │ │ Offset Info Type Sym. Value Symbol's Name │ │ │ │ │ -000000d4 00000503 R_ARM_REL32 00000004 .LC1 │ │ │ │ │ -000000d8 00000603 R_ARM_REL32 00000008 .LC2 │ │ │ │ │ -000000dc 00000403 R_ARM_REL32 00000000 .LC0 │ │ │ │ │ -000000ec 0000161c R_ARM_CALL 00000000 fftw_plan_destroy_internal │ │ │ │ │ -000000f8 0000161d R_ARM_JUMP24 00000000 fftw_plan_destroy_internal │ │ │ │ │ -00000168 0000171c R_ARM_CALL 00000000 fftw_mpi_is_local_after │ │ │ │ │ -00000180 0000171c R_ARM_CALL 00000000 fftw_mpi_is_local_after │ │ │ │ │ -000001ac 0000181c R_ARM_CALL 00000000 fftw_extract_reim │ │ │ │ │ -000001c4 0000181c R_ARM_CALL 00000000 fftw_extract_reim │ │ │ │ │ -000001f8 0000191c R_ARM_CALL 00000000 MPI_Comm_rank │ │ │ │ │ -00000204 00001a1c R_ARM_CALL 00000000 MPI_Comm_size │ │ │ │ │ -00000214 00001b1c R_ARM_CALL 00000000 fftw_mktensor │ │ │ │ │ -00000314 00001c1c R_ARM_CALL 00000000 fftw_tensor_sz │ │ │ │ │ -00000338 00001d1c R_ARM_CALL 00000000 fftw_mpi_block │ │ │ │ │ -00000350 00001e1c R_ARM_CALL 00000000 fftw_mktensor_2d │ │ │ │ │ -00000370 00001f1c R_ARM_CALL 00000000 fftw_mkproblem_dft_d │ │ │ │ │ -0000037c 0000201c R_ARM_CALL 00000000 fftw_mkplan_d │ │ │ │ │ -00000390 0000211c R_ARM_CALL 00000000 fftw_mpi_any_true │ │ │ │ │ -000003a0 0000221c R_ARM_CALL 00000000 fftw_mpi_mkdtensor │ │ │ │ │ -000003e8 0000231c R_ARM_CALL 00000000 fftw_mpi_mkproblem_dft_d │ │ │ │ │ -000003f4 0000201c R_ARM_CALL 00000000 fftw_mkplan_d │ │ │ │ │ -00000408 0000211c R_ARM_CALL 00000000 fftw_mpi_any_true │ │ │ │ │ -00000428 0000241c R_ARM_CALL 00000000 fftw_mkplan_rdft │ │ │ │ │ -0000047c 0000251c R_ARM_CALL 00000000 fftw_ops_add │ │ │ │ │ -0000049c 0000161c R_ARM_CALL 00000000 fftw_plan_destroy_internal │ │ │ │ │ -000004a4 0000161c R_ARM_CALL 00000000 fftw_plan_destroy_internal │ │ │ │ │ -000004b8 0000261c R_ARM_CALL 00000000 fftw_mpi_dft_serial_applicable │ │ │ │ │ -000004cc 00001003 R_ARM_REL32 00000000 .data.rel.ro │ │ │ │ │ -000004e0 0000271c R_ARM_CALL 00000000 fftw_plan_awake │ │ │ │ │ -000004f0 0000271d R_ARM_JUMP24 00000000 fftw_plan_awake │ │ │ │ │ -0000050c 0000291c R_ARM_CALL 00000000 fftw_mksolver │ │ │ │ │ -00000520 00002a1c R_ARM_CALL 00000000 fftw_solver_register │ │ │ │ │ -0000052c 0000291c R_ARM_CALL 00000000 fftw_mksolver │ │ │ │ │ -00000544 00002a1d R_ARM_JUMP24 00000000 fftw_solver_register │ │ │ │ │ -00000548 00001303 R_ARM_REL32 00000000 .data.rel.ro.local │ │ │ │ │ +000000f4 00000503 R_ARM_REL32 00000004 .LC1 │ │ │ │ │ +000000f8 00000603 R_ARM_REL32 00000008 .LC2 │ │ │ │ │ +000000fc 00000403 R_ARM_REL32 00000000 .LC0 │ │ │ │ │ +00000110 0000161c R_ARM_CALL 00000000 fftw_plan_destroy_internal │ │ │ │ │ +00000124 0000161d R_ARM_JUMP24 00000000 fftw_plan_destroy_internal │ │ │ │ │ +000001b8 0000171c R_ARM_CALL 00000000 fftw_mpi_is_local_after │ │ │ │ │ +000001d0 0000171c R_ARM_CALL 00000000 fftw_mpi_is_local_after │ │ │ │ │ +000001fc 0000181c R_ARM_CALL 00000000 fftw_extract_reim │ │ │ │ │ +00000214 0000181c R_ARM_CALL 00000000 fftw_extract_reim │ │ │ │ │ +00000248 0000191c R_ARM_CALL 00000000 MPI_Comm_rank │ │ │ │ │ +00000254 00001a1c R_ARM_CALL 00000000 MPI_Comm_size │ │ │ │ │ +00000264 00001b1c R_ARM_CALL 00000000 fftw_mktensor │ │ │ │ │ +00000368 00001c1c R_ARM_CALL 00000000 fftw_tensor_sz │ │ │ │ │ +00000388 00001d1c R_ARM_CALL 00000000 fftw_mpi_block │ │ │ │ │ +000003a4 00001e1c R_ARM_CALL 00000000 fftw_mktensor_2d │ │ │ │ │ +000003c4 00001f1c R_ARM_CALL 00000000 fftw_mkproblem_dft_d │ │ │ │ │ +000003d0 0000201c R_ARM_CALL 00000000 fftw_mkplan_d │ │ │ │ │ +000003e4 0000211c R_ARM_CALL 00000000 fftw_mpi_any_true │ │ │ │ │ +000003f4 0000221c R_ARM_CALL 00000000 fftw_mpi_mkdtensor │ │ │ │ │ +0000043c 0000231c R_ARM_CALL 00000000 fftw_mpi_mkproblem_dft_d │ │ │ │ │ +00000448 0000201c R_ARM_CALL 00000000 fftw_mkplan_d │ │ │ │ │ +0000045c 0000211c R_ARM_CALL 00000000 fftw_mpi_any_true │ │ │ │ │ +0000047c 0000241c R_ARM_CALL 00000000 fftw_mkplan_rdft │ │ │ │ │ +000004d4 0000251c R_ARM_CALL 00000000 fftw_ops_add │ │ │ │ │ +000004f0 0000161c R_ARM_CALL 00000000 fftw_plan_destroy_internal │ │ │ │ │ +000004f8 0000161c R_ARM_CALL 00000000 fftw_plan_destroy_internal │ │ │ │ │ +0000050c 0000261c R_ARM_CALL 00000000 fftw_mpi_dft_serial_applicable │ │ │ │ │ +00000520 00001003 R_ARM_REL32 00000000 .data.rel.ro │ │ │ │ │ +0000053c 0000271c R_ARM_CALL 00000000 fftw_plan_awake │ │ │ │ │ +00000558 0000271d R_ARM_JUMP24 00000000 fftw_plan_awake │ │ │ │ │ +0000057c 0000291c R_ARM_CALL 00000000 fftw_mksolver │ │ │ │ │ +00000590 00002a1c R_ARM_CALL 00000000 fftw_solver_register │ │ │ │ │ +0000059c 0000291c R_ARM_CALL 00000000 fftw_mksolver │ │ │ │ │ +000005c0 00002a1d R_ARM_JUMP24 00000000 fftw_solver_register │ │ │ │ │ +000005c4 00001303 R_ARM_REL32 00000000 .data.rel.ro.local │ │ │ │ │ │ │ │ │ │ -Relocation section '.rel.data.rel.ro' at offset 0xbb0 contains 4 entries: │ │ │ │ │ +Relocation section '.rel.data.rel.ro' at offset 0xc2c 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 000004d0 awake │ │ │ │ │ -00000008 00000702 R_ARM_ABS32 00000080 print │ │ │ │ │ -0000000c 00000a02 R_ARM_ABS32 000000e0 destroy │ │ │ │ │ +00000004 00000e02 R_ARM_ABS32 00000524 awake │ │ │ │ │ +00000008 00000702 R_ARM_ABS32 00000094 print │ │ │ │ │ +0000000c 00000a02 R_ARM_ABS32 00000100 destroy │ │ │ │ │ │ │ │ │ │ -Relocation section '.rel.data.rel.ro.local' at offset 0xbd0 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 00000b02 R_ARM_ABS32 000000fc mkplan │ │ │ │ │ +00000004 00000b02 R_ARM_ABS32 00000128 mkplan │ │ │ │ ├── objdump --line-numbers --disassemble --demangle --reloc --no-show-raw-insn --section=.text {} │ │ │ │ │ @@ -1,396 +1,427 @@ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ Disassembly of section .text: │ │ │ │ │ │ │ │ │ │ 00000000 : │ │ │ │ │ apply(): │ │ │ │ │ - push {r4, r5, r6, r7, lr} │ │ │ │ │ + strd r4, [sp, #-20]! @ 0xffffffec │ │ │ │ │ mov r4, r0 │ │ │ │ │ - ldr lr, [r4, #80] @ 0x50 │ │ │ │ │ mov r5, r1 │ │ │ │ │ - ldr r0, [r0, #64] @ 0x40 │ │ │ │ │ - ldr r1, [r4, #72] @ 0x48 │ │ │ │ │ + ldr r3, [r4, #72] @ 0x48 │ │ │ │ │ + strd r6, [sp, #8] │ │ │ │ │ mov r6, r2 │ │ │ │ │ - ldr r2, [r4, #76] @ 0x4c │ │ │ │ │ + ldr ip, [r4, #76] @ 0x4c │ │ │ │ │ + str lr, [sp, #16] │ │ │ │ │ + sub sp, sp, #12 │ │ │ │ │ + ldr lr, [r4, #80] @ 0x50 │ │ │ │ │ + lsl r3, r3, #3 │ │ │ │ │ + ldr r0, [r0, #64] @ 0x40 │ │ │ │ │ + lsl ip, ip, #3 │ │ │ │ │ + add r1, r1, r3 │ │ │ │ │ cmp lr, #0 │ │ │ │ │ - lsl r3, r1, #3 │ │ │ │ │ - lsl ip, r2, #3 │ │ │ │ │ + add r2, r5, ip │ │ │ │ │ ldr r7, [r0, #56] @ 0x38 │ │ │ │ │ - sub sp, sp, #12 │ │ │ │ │ - add r1, r5, r1, lsl #3 │ │ │ │ │ - add r2, r5, r2, lsl #3 │ │ │ │ │ - beq 70 │ │ │ │ │ + beq 84 │ │ │ │ │ add ip, r6, ip │ │ │ │ │ add r3, r6, r3 │ │ │ │ │ + mov r5, r6 │ │ │ │ │ str ip, [sp] │ │ │ │ │ blx r7 │ │ │ │ │ - mov r5, r6 │ │ │ │ │ ldr r0, [r4, #68] @ 0x44 │ │ │ │ │ mov r2, r6 │ │ │ │ │ mov r1, r5 │ │ │ │ │ ldr r3, [r0, #56] @ 0x38 │ │ │ │ │ add sp, sp, #12 │ │ │ │ │ - pop {r4, r5, r6, r7, lr} │ │ │ │ │ + ldrd r4, [sp] │ │ │ │ │ + ldrd r6, [sp, #8] │ │ │ │ │ + ldr lr, [sp, #16] │ │ │ │ │ + add sp, sp, #20 │ │ │ │ │ bx r3 │ │ │ │ │ mov r3, r1 │ │ │ │ │ str r2, [sp] │ │ │ │ │ blx r7 │ │ │ │ │ - b 54 │ │ │ │ │ + b 5c │ │ │ │ │ │ │ │ │ │ -00000080 : │ │ │ │ │ +00000094 : │ │ │ │ │ print(): │ │ │ │ │ mov r3, r0 │ │ │ │ │ + mov r0, r1 │ │ │ │ │ + str r4, [sp, #-8]! │ │ │ │ │ ldr r2, [r3, #80] @ 0x50 │ │ │ │ │ - push {r4, lr} │ │ │ │ │ - cmp r2, #2 │ │ │ │ │ - ldr r4, [r1] │ │ │ │ │ + str lr, [sp, #4] │ │ │ │ │ sub sp, sp, #8 │ │ │ │ │ - mov r0, r1 │ │ │ │ │ - beq c8 │ │ │ │ │ - ldr r2, [pc, #44] @ d4 │ │ │ │ │ + ldr r4, [r1] │ │ │ │ │ + cmp r2, #2 │ │ │ │ │ + beq e8 │ │ │ │ │ + ldr r2, [pc, #52] @ f4 │ │ │ │ │ add r2, pc, r2 │ │ │ │ │ ldr r1, [r3, #68] @ 0x44 │ │ │ │ │ str r1, [sp] │ │ │ │ │ - ldr r1, [pc, #32] @ d8 │ │ │ │ │ + ldr r1, [pc, #40] @ f8 │ │ │ │ │ ldr r3, [r3, #64] @ 0x40 │ │ │ │ │ add r1, pc, r1 │ │ │ │ │ blx r4 │ │ │ │ │ add sp, sp, #8 │ │ │ │ │ - pop {r4, pc} │ │ │ │ │ - ldr r2, [pc, #12] @ dc │ │ │ │ │ + ldr r4, [sp] │ │ │ │ │ + add sp, sp, #4 │ │ │ │ │ + pop {pc} @ (ldr pc, [sp], #4) │ │ │ │ │ + ldr r2, [pc, #12] @ fc │ │ │ │ │ add r2, pc, r2 │ │ │ │ │ - b a8 │ │ │ │ │ - .word 0x00000028 │ │ │ │ │ + b c0 │ │ │ │ │ + .word 0x00000030 │ │ │ │ │ R_ARM_REL32 .LC1 │ │ │ │ │ - .word 0x00000018 │ │ │ │ │ + .word 0x00000020 │ │ │ │ │ R_ARM_REL32 .LC2 │ │ │ │ │ .word 0x00000008 │ │ │ │ │ R_ARM_REL32 .LC0 │ │ │ │ │ │ │ │ │ │ -000000e0 : │ │ │ │ │ +00000100 : │ │ │ │ │ destroy(): │ │ │ │ │ - push {r4, lr} │ │ │ │ │ + str r4, [sp, #-8]! │ │ │ │ │ mov r4, r0 │ │ │ │ │ ldr r0, [r0, #68] @ 0x44 │ │ │ │ │ + str lr, [sp, #4] │ │ │ │ │ bl 0 │ │ │ │ │ R_ARM_CALL fftw_plan_destroy_internal │ │ │ │ │ + ldr lr, [sp, #4] │ │ │ │ │ ldr r0, [r4, #64] @ 0x40 │ │ │ │ │ - pop {r4, lr} │ │ │ │ │ + ldr r4, [sp] │ │ │ │ │ + add sp, sp, #8 │ │ │ │ │ b 0 │ │ │ │ │ R_ARM_JUMP24 fftw_plan_destroy_internal │ │ │ │ │ │ │ │ │ │ -000000fc : │ │ │ │ │ +00000128 : │ │ │ │ │ mkplan(): │ │ │ │ │ - push {r4, r5, r6, r7, r8, r9, sl, fp, lr} │ │ │ │ │ + strd r4, [sp, #-36]! @ 0xffffffdc │ │ │ │ │ mov r4, r1 │ │ │ │ │ ldr r1, [r1, #4] │ │ │ │ │ + strd r6, [sp, #8] │ │ │ │ │ + strd r8, [sp, #16] │ │ │ │ │ + strd sl, [sp, #24] │ │ │ │ │ + str lr, [sp, #32] │ │ │ │ │ sub sp, sp, #52 @ 0x34 │ │ │ │ │ ldr r3, [r1] │ │ │ │ │ cmp r3, #1 │ │ │ │ │ - ble 124 │ │ │ │ │ + ble 160 │ │ │ │ │ ldr r3, [r4, #24] │ │ │ │ │ cmp r3, #0 │ │ │ │ │ - beq 130 │ │ │ │ │ + beq 180 │ │ │ │ │ mov r0, #0 │ │ │ │ │ add sp, sp, #52 @ 0x34 │ │ │ │ │ - pop {r4, r5, r6, r7, r8, r9, sl, fp, pc} │ │ │ │ │ + ldrd r4, [sp] │ │ │ │ │ + ldrd r6, [sp, #8] │ │ │ │ │ + ldrd r8, [sp, #16] │ │ │ │ │ + ldrd sl, [sp, #24] │ │ │ │ │ + add sp, sp, #32 │ │ │ │ │ + pop {pc} @ (ldr pc, [sp], #4) │ │ │ │ │ ldr r3, [r0, #8] │ │ │ │ │ mov r7, r0 │ │ │ │ │ - cmp r3, #0 │ │ │ │ │ mov r6, r2 │ │ │ │ │ - beq 160 │ │ │ │ │ + cmp r3, #0 │ │ │ │ │ + beq 1b0 │ │ │ │ │ ldr r3, [r2, #164] @ 0xa4 │ │ │ │ │ tst r3, #4096 @ 0x1000 │ │ │ │ │ - bne 124 │ │ │ │ │ + bne 160 │ │ │ │ │ ldr r2, [r4, #12] │ │ │ │ │ ldr r3, [r4, #16] │ │ │ │ │ cmp r2, r3 │ │ │ │ │ - beq 124 │ │ │ │ │ + beq 160 │ │ │ │ │ mov r2, #0 │ │ │ │ │ mov r0, #1 │ │ │ │ │ bl 0 │ │ │ │ │ R_ARM_CALL fftw_mpi_is_local_after │ │ │ │ │ cmp r0, #0 │ │ │ │ │ - beq 124 │ │ │ │ │ + beq 160 │ │ │ │ │ mov r2, #1 │ │ │ │ │ ldr r1, [r4, #4] │ │ │ │ │ mov r0, r2 │ │ │ │ │ bl 0 │ │ │ │ │ R_ARM_CALL fftw_mpi_is_local_after │ │ │ │ │ cmp r0, #0 │ │ │ │ │ - beq 124 │ │ │ │ │ + beq 160 │ │ │ │ │ ldr r3, [r6, #164] @ 0xa4 │ │ │ │ │ tst r3, #8 │ │ │ │ │ - bne 4b4 │ │ │ │ │ + bne 508 │ │ │ │ │ ldr sl, [r4, #12] │ │ │ │ │ - ldr r0, [r4, #20] │ │ │ │ │ add r3, sp, #28 │ │ │ │ │ add r2, sp, #24 │ │ │ │ │ + ldr r0, [r4, #20] │ │ │ │ │ mov r1, sl │ │ │ │ │ bl 0 │ │ │ │ │ R_ARM_CALL fftw_extract_reim │ │ │ │ │ ldr fp, [r4, #16] │ │ │ │ │ add r3, sp, #36 @ 0x24 │ │ │ │ │ - ldr r0, [r4, #20] │ │ │ │ │ add r2, sp, #32 │ │ │ │ │ + ldr r0, [r4, #20] │ │ │ │ │ mov r1, fp │ │ │ │ │ bl 0 │ │ │ │ │ R_ARM_CALL fftw_extract_reim │ │ │ │ │ ldr r3, [r7, #8] │ │ │ │ │ cmp r3, #0 │ │ │ │ │ - bne 48c │ │ │ │ │ + bne 4e0 │ │ │ │ │ ldr r3, [r6, #164] @ 0xa4 │ │ │ │ │ tst r3, #4096 @ 0x1000 │ │ │ │ │ - bne 48c │ │ │ │ │ + bne 4e0 │ │ │ │ │ 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_CALL MPI_Comm_rank │ │ │ │ │ - add r1, sp, #44 @ 0x2c │ │ │ │ │ ldr r0, [r4, #28] │ │ │ │ │ + add r1, sp, #44 @ 0x2c │ │ │ │ │ bl 0 │ │ │ │ │ R_ARM_CALL MPI_Comm_size │ │ │ │ │ ldr r3, [r4, #4] │ │ │ │ │ ldr r0, [r3] │ │ │ │ │ sub r0, r0, #1 │ │ │ │ │ bl 0 │ │ │ │ │ R_ARM_CALL fftw_mktensor │ │ │ │ │ ldr r9, [r4, #4] │ │ │ │ │ + mov r5, r0 │ │ │ │ │ ldr lr, [r9] │ │ │ │ │ add r2, lr, lr, lsl #1 │ │ │ │ │ - add r3, lr, lr, lsl #1 │ │ │ │ │ + add r1, lr, lr, lsl #1 │ │ │ │ │ add r2, r9, r2, lsl #2 │ │ │ │ │ + lsl r1, r1, #2 │ │ │ │ │ ldr r2, [r2, #-8] │ │ │ │ │ - lsl r1, r3, #2 │ │ │ │ │ - mov r5, r0 │ │ │ │ │ - add r3, r0, r3, lsl #2 │ │ │ │ │ + add r3, r0, r1 │ │ │ │ │ ldr r0, [r4, #8] │ │ │ │ │ str r2, [r3, #-20] @ 0xffffffec │ │ │ │ │ add r2, lr, lr, lsl #1 │ │ │ │ │ lsl r0, r0, #1 │ │ │ │ │ add r2, r5, r2, lsl #2 │ │ │ │ │ str r0, [r2, #-12] │ │ │ │ │ str r0, [r3, #-16] │ │ │ │ │ subs r0, lr, #3 │ │ │ │ │ - bmi 310 │ │ │ │ │ + bmi 364 │ │ │ │ │ cmp lr, #4 │ │ │ │ │ sub r2, r1, #16 │ │ │ │ │ sub ip, r1, #20 │ │ │ │ │ - ble 4ac │ │ │ │ │ - sub lr, lr, #5 │ │ │ │ │ + ble 500 │ │ │ │ │ ldr r2, [r5, r2] │ │ │ │ │ - ldr ip, [r5, ip] │ │ │ │ │ + sub lr, lr, #5 │ │ │ │ │ add r1, r9, r1 │ │ │ │ │ and lr, lr, #1 │ │ │ │ │ + ldr ip, [r5, ip] │ │ │ │ │ mul r2, ip, r2 │ │ │ │ │ - ldr r8, [r1, #-20] @ 0xffffffec │ │ │ │ │ - str r2, [r3, #-24] @ 0xffffffe8 │ │ │ │ │ - str r2, [r3, #-28] @ 0xffffffe4 │ │ │ │ │ - mul r2, r8, r2 │ │ │ │ │ sub r0, r0, #2 │ │ │ │ │ - str r8, [r3, #-32] @ 0xffffffe0 │ │ │ │ │ - cmp r0, lr │ │ │ │ │ - ldr ip, [r1, #-32] @ 0xffffffe0 │ │ │ │ │ - str ip, [r3, #-44] @ 0xffffffd4 │ │ │ │ │ - str r2, [r3, #-36] @ 0xffffffdc │ │ │ │ │ - str r2, [r3, #-40] @ 0xffffffd8 │ │ │ │ │ sub r1, r1, #24 │ │ │ │ │ + ldr r8, [r1, #4] │ │ │ │ │ + cmp r0, lr │ │ │ │ │ sub r3, r3, #24 │ │ │ │ │ - bne 284 │ │ │ │ │ + str r8, [r3, #-8] │ │ │ │ │ + str r2, [r3, #-4] │ │ │ │ │ + str r2, [r3] │ │ │ │ │ + mul r2, r8, r2 │ │ │ │ │ + ldr ip, [r1, #-8] │ │ │ │ │ + str ip, [r3, #-20] @ 0xffffffec │ │ │ │ │ + str r2, [r3, #-16] │ │ │ │ │ + str r2, [r3, #-12] │ │ │ │ │ + bne 2d4 │ │ │ │ │ add r3, lr, lr, lsl #1 │ │ │ │ │ - add r9, r9, r3, lsl #2 │ │ │ │ │ - add r3, r5, r3, lsl #2 │ │ │ │ │ - ldr r1, [r3, #20] │ │ │ │ │ + cmp lr, #0 │ │ │ │ │ + lsl r3, r3, #2 │ │ │ │ │ + add r9, r9, r3 │ │ │ │ │ + add r3, r5, r3 │ │ │ │ │ ldr r2, [r3, #16] │ │ │ │ │ + ldr r1, [r3, #20] │ │ │ │ │ ldr r0, [r9, #16] │ │ │ │ │ mul r2, r1, r2 │ │ │ │ │ - cmp lr, #0 │ │ │ │ │ sub r1, lr, #1 │ │ │ │ │ str r0, [r3, #4] │ │ │ │ │ - str r2, [r3, #12] │ │ │ │ │ str r2, [r3, #8] │ │ │ │ │ - beq 310 │ │ │ │ │ - mul r2, r0, r2 │ │ │ │ │ - add r1, r1, r1, lsl #1 │ │ │ │ │ + str r2, [r3, #12] │ │ │ │ │ + beq 364 │ │ │ │ │ ldr ip, [r9, #4] │ │ │ │ │ + add r1, r1, r1, lsl #1 │ │ │ │ │ + mul r2, r0, r2 │ │ │ │ │ add r1, r5, r1, lsl #2 │ │ │ │ │ str ip, [r3, #-8] │ │ │ │ │ str r2, [r1, #12] │ │ │ │ │ str r2, [r3, #-4] │ │ │ │ │ mov r0, r5 │ │ │ │ │ bl 0 │ │ │ │ │ R_ARM_CALL fftw_tensor_sz │ │ │ │ │ - ldr r3, [r5, #8] │ │ │ │ │ ldr r9, [r5, #4] │ │ │ │ │ + str r0, [sp, #20] │ │ │ │ │ + ldr r3, [r5, #8] │ │ │ │ │ ldr r2, [sp, #40] @ 0x28 │ │ │ │ │ mul r9, r3, r9 │ │ │ │ │ ldr r3, [r4, #4] │ │ │ │ │ - mov r8, #2 │ │ │ │ │ - str r0, [sp, #20] │ │ │ │ │ ldmib r3, {r0, r1} │ │ │ │ │ bl 0 │ │ │ │ │ R_ARM_CALL fftw_mpi_block │ │ │ │ │ + mov r3, #2 │ │ │ │ │ mov r2, r9 │ │ │ │ │ mov r1, r9 │ │ │ │ │ - str r8, [sp, #4] │ │ │ │ │ - str r8, [sp] │ │ │ │ │ + str r3, [sp] │ │ │ │ │ + str r3, [sp, #4] │ │ │ │ │ ldr r3, [r4, #8] │ │ │ │ │ bl 0 │ │ │ │ │ R_ARM_CALL fftw_mktensor_2d │ │ │ │ │ ldr r3, [sp, #36] @ 0x24 │ │ │ │ │ + mov r1, r0 │ │ │ │ │ + mov r0, r5 │ │ │ │ │ str r3, [sp, #4] │ │ │ │ │ ldr r3, [sp, #32] │ │ │ │ │ str r3, [sp] │ │ │ │ │ ldrd r2, [sp, #24] │ │ │ │ │ - mov r1, r0 │ │ │ │ │ - mov r0, r5 │ │ │ │ │ bl 0 │ │ │ │ │ R_ARM_CALL fftw_mkproblem_dft_d │ │ │ │ │ mov r1, r0 │ │ │ │ │ mov r0, r6 │ │ │ │ │ bl 0 │ │ │ │ │ R_ARM_CALL fftw_mkplan_d │ │ │ │ │ - ldr r1, [r4, #28] │ │ │ │ │ mov r5, r0 │ │ │ │ │ clz r0, r0 │ │ │ │ │ + ldr r1, [r4, #28] │ │ │ │ │ lsr r0, r0, #5 │ │ │ │ │ bl 0 │ │ │ │ │ R_ARM_CALL fftw_mpi_any_true │ │ │ │ │ cmp r0, #0 │ │ │ │ │ - bne 494 │ │ │ │ │ + bne 4e8 │ │ │ │ │ mov r0, #1 │ │ │ │ │ bl 0 │ │ │ │ │ R_ARM_CALL fftw_mpi_mkdtensor │ │ │ │ │ - ldr r3, [r4, #4] │ │ │ │ │ - mov ip, r0 │ │ │ │ │ - ldmib r3, {r0, r1, r2} │ │ │ │ │ - stmib ip, {r0, r1, r2} │ │ │ │ │ - ldr r1, [r4, #8] │ │ │ │ │ - ldr r0, [sp, #20] │ │ │ │ │ + ldr r2, [r4, #4] │ │ │ │ │ mov r3, #16 │ │ │ │ │ - mul r0, r1, r0 │ │ │ │ │ + ldr r1, [r4, #8] │ │ │ │ │ + ldr ip, [sp, #20] │ │ │ │ │ + ldrd r8, [r2, #4] │ │ │ │ │ + mul ip, r1, ip │ │ │ │ │ + strd r8, [r0, #4] │ │ │ │ │ + ldr r2, [r2, #12] │ │ │ │ │ + mov r1, ip │ │ │ │ │ + str r2, [r0, #12] │ │ │ │ │ + mov r2, sl │ │ │ │ │ str r3, [sp, #8] │ │ │ │ │ ldr r3, [r4, #20] │ │ │ │ │ str r3, [sp, #4] │ │ │ │ │ ldr r3, [r4, #28] │ │ │ │ │ - mov r2, sl │ │ │ │ │ - mov r1, r0 │ │ │ │ │ str r3, [sp] │ │ │ │ │ - mov r0, ip │ │ │ │ │ mov r3, fp │ │ │ │ │ bl 0 │ │ │ │ │ R_ARM_CALL fftw_mpi_mkproblem_dft_d │ │ │ │ │ mov r1, r0 │ │ │ │ │ mov r0, r6 │ │ │ │ │ bl 0 │ │ │ │ │ R_ARM_CALL fftw_mkplan_d │ │ │ │ │ - ldr r1, [r4, #28] │ │ │ │ │ - mov sl, r0 │ │ │ │ │ + mov r9, r0 │ │ │ │ │ clz r0, r0 │ │ │ │ │ + ldr r1, [r4, #28] │ │ │ │ │ lsr r0, r0, #5 │ │ │ │ │ bl 0 │ │ │ │ │ R_ARM_CALL fftw_mpi_any_true │ │ │ │ │ cmp r0, #0 │ │ │ │ │ - bne 498 │ │ │ │ │ - ldr r2, [pc, #172] @ 4c8 │ │ │ │ │ - ldr r1, [pc, #172] @ 4cc │ │ │ │ │ + bne 4ec │ │ │ │ │ + ldr r2, [pc, #172] @ 51c │ │ │ │ │ + mov r0, #88 @ 0x58 │ │ │ │ │ + ldr r1, [pc, #168] @ 520 │ │ │ │ │ add r2, pc, r2 │ │ │ │ │ add r1, pc, r1 │ │ │ │ │ - mov r0, #88 @ 0x58 │ │ │ │ │ bl 0 │ │ │ │ │ R_ARM_CALL fftw_mkplan_rdft │ │ │ │ │ ldr r3, [r7, #8] │ │ │ │ │ + mov sl, r0 │ │ │ │ │ + add r1, r9, #8 │ │ │ │ │ + str r5, [r0, #64] @ 0x40 │ │ │ │ │ ldr r2, [r4, #12] │ │ │ │ │ + str r9, [r0, #68] @ 0x44 │ │ │ │ │ cmp r3, #0 │ │ │ │ │ ldr r3, [sp, #24] │ │ │ │ │ + movne r8, #2 │ │ │ │ │ ldreq r8, [r6, #164] @ 0xa4 │ │ │ │ │ sub r3, r3, r2 │ │ │ │ │ asr r3, r3, #3 │ │ │ │ │ andeq r8, r8, #4096 @ 0x1000 │ │ │ │ │ - add r1, sl, #8 │ │ │ │ │ str r3, [r0, #72] @ 0x48 │ │ │ │ │ ldr r3, [sp, #28] │ │ │ │ │ - mov r9, r0 │ │ │ │ │ + str r8, [r0, #80] @ 0x50 │ │ │ │ │ sub r3, r3, r2 │ │ │ │ │ - asr r3, r3, #3 │ │ │ │ │ add r2, r0, #8 │ │ │ │ │ - str r5, [r0, #64] @ 0x40 │ │ │ │ │ - str sl, [r0, #68] @ 0x44 │ │ │ │ │ - str r8, [r0, #80] @ 0x50 │ │ │ │ │ + asr r3, r3, #3 │ │ │ │ │ str r3, [r0, #76] @ 0x4c │ │ │ │ │ add r0, r5, #8 │ │ │ │ │ bl 0 │ │ │ │ │ R_ARM_CALL fftw_ops_add │ │ │ │ │ - mov r0, r9 │ │ │ │ │ - add sp, sp, #52 @ 0x34 │ │ │ │ │ - pop {r4, r5, r6, r7, r8, r9, sl, fp, pc} │ │ │ │ │ - mov sl, fp │ │ │ │ │ - b 1f0 │ │ │ │ │ - mov sl, #0 │ │ │ │ │ mov r0, sl │ │ │ │ │ + b 164 │ │ │ │ │ + mov sl, fp │ │ │ │ │ + b 240 │ │ │ │ │ + mov r9, #0 │ │ │ │ │ + mov r0, r9 │ │ │ │ │ bl 0 │ │ │ │ │ R_ARM_CALL fftw_plan_destroy_internal │ │ │ │ │ mov r0, r5 │ │ │ │ │ bl 0 │ │ │ │ │ R_ARM_CALL fftw_plan_destroy_internal │ │ │ │ │ - b 124 │ │ │ │ │ + b 160 │ │ │ │ │ mov lr, r0 │ │ │ │ │ - b 2c0 │ │ │ │ │ + b 310 │ │ │ │ │ mov r0, r4 │ │ │ │ │ bl 0 │ │ │ │ │ R_ARM_CALL fftw_mpi_dft_serial_applicable │ │ │ │ │ cmp r0, #0 │ │ │ │ │ - beq 198 │ │ │ │ │ - b 124 │ │ │ │ │ - .word 0xfffffbdc │ │ │ │ │ - .word 0x000000a4 │ │ │ │ │ + beq 1e8 │ │ │ │ │ + b 160 │ │ │ │ │ + .word 0xfffffb84 │ │ │ │ │ + .word 0x000000a0 │ │ │ │ │ R_ARM_REL32 .data.rel.ro │ │ │ │ │ │ │ │ │ │ -000004d0 : │ │ │ │ │ +00000524 : │ │ │ │ │ awake(): │ │ │ │ │ - push {r4, r5, r6, lr} │ │ │ │ │ + strd r4, [sp, #-16]! │ │ │ │ │ mov r4, r0 │ │ │ │ │ mov r5, r1 │ │ │ │ │ ldr r0, [r0, #64] @ 0x40 │ │ │ │ │ + str r6, [sp, #8] │ │ │ │ │ + str lr, [sp, #12] │ │ │ │ │ bl 0 │ │ │ │ │ R_ARM_CALL fftw_plan_awake │ │ │ │ │ - ldr r0, [r4, #68] @ 0x44 │ │ │ │ │ + ldr r6, [sp, #8] │ │ │ │ │ mov r1, r5 │ │ │ │ │ - pop {r4, r5, r6, lr} │ │ │ │ │ + ldr lr, [sp, #12] │ │ │ │ │ + ldr r0, [r4, #68] @ 0x44 │ │ │ │ │ + ldrd r4, [sp] │ │ │ │ │ + add sp, sp, #16 │ │ │ │ │ b 0 │ │ │ │ │ R_ARM_JUMP24 fftw_plan_awake │ │ │ │ │ │ │ │ │ │ -000004f4 : │ │ │ │ │ +0000055c : │ │ │ │ │ fftw_mpi_dft_rank_geq2_register(): │ │ │ │ │ - push {r4, r5, r6, lr} │ │ │ │ │ - ldr r5, [pc, #72] @ 548 │ │ │ │ │ + strd r4, [sp, #-16]! │ │ │ │ │ mov r4, r0 │ │ │ │ │ + mov r0, #12 │ │ │ │ │ + ldr r5, [pc, #84] @ 5c4 │ │ │ │ │ + str r6, [sp, #8] │ │ │ │ │ + str lr, [sp, #12] │ │ │ │ │ add r5, pc, r5 │ │ │ │ │ mov r1, r5 │ │ │ │ │ - mov r0, #12 │ │ │ │ │ bl 0 │ │ │ │ │ R_ARM_CALL fftw_mksolver │ │ │ │ │ mov r3, #0 │ │ │ │ │ - str r3, [r0, #8] │ │ │ │ │ mov r1, r0 │ │ │ │ │ + str r3, [r0, #8] │ │ │ │ │ mov r0, r4 │ │ │ │ │ bl 0 │ │ │ │ │ R_ARM_CALL fftw_solver_register │ │ │ │ │ mov r1, r5 │ │ │ │ │ mov r0, #12 │ │ │ │ │ bl 0 │ │ │ │ │ R_ARM_CALL fftw_mksolver │ │ │ │ │ mov r3, #1 │ │ │ │ │ + ldr r6, [sp, #8] │ │ │ │ │ mov r1, r0 │ │ │ │ │ + ldr lr, [sp, #12] │ │ │ │ │ str r3, [r0, #8] │ │ │ │ │ mov r0, r4 │ │ │ │ │ - pop {r4, r5, r6, lr} │ │ │ │ │ + ldrd r4, [sp] │ │ │ │ │ + add sp, sp, #16 │ │ │ │ │ b 0 │ │ │ │ │ R_ARM_JUMP24 fftw_solver_register │ │ │ │ │ - .word 0x00000040 │ │ │ │ │ + .word 0x00000048 │ │ │ │ │ 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: 3640 (bytes into file) │ │ │ │ │ + Start of section headers: 3776 (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 0xe38: │ │ │ │ │ +There are 15 section headers, starting at offset 0xec0: │ │ │ │ │ │ │ │ │ │ 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 000694 00 AX 0 0 4 │ │ │ │ │ - [ 2] .rel.text REL 00000000 000c20 000168 08 I 12 1 4 │ │ │ │ │ - [ 3] .data PROGBITS 00000000 0006c8 000000 00 WA 0 0 1 │ │ │ │ │ - [ 4] .bss NOBITS 00000000 0006c8 000000 00 WA 0 0 1 │ │ │ │ │ - [ 5] .rodata.str1.4 PROGBITS 00000000 0006c8 00003b 01 AMS 0 0 4 │ │ │ │ │ - [ 6] .data.rel.ro PROGBITS 00000000 000703 000010 00 WA 0 0 4 │ │ │ │ │ - [ 7] .rel.data.rel.ro REL 00000000 000d88 000020 08 I 12 6 4 │ │ │ │ │ - [ 8] .data.rel.ro.local PROGBITS 00000000 000713 00000c 00 WA 0 0 4 │ │ │ │ │ - [ 9] .rel.data.rel.ro.local REL 00000000 000da8 000008 08 I 12 8 4 │ │ │ │ │ - [10] .note.GNU-stack PROGBITS 00000000 00071f 000000 00 0 0 1 │ │ │ │ │ - [11] .ARM.attributes ARM_ATTRIBUTES 00000000 00071f 00002b 00 0 0 1 │ │ │ │ │ - [12] .symtab SYMTAB 00000000 00074c 0002d0 10 13 22 4 │ │ │ │ │ - [13] .strtab STRTAB 00000000 000a1c 000201 00 0 0 1 │ │ │ │ │ - [14] .shstrtab STRTAB 00000000 000db0 000087 00 0 0 1 │ │ │ │ │ + [ 1] .text PROGBITS 00000000 000034 00071c 00 AX 0 0 4 │ │ │ │ │ + [ 2] .rel.text REL 00000000 000ca8 000168 08 I 12 1 4 │ │ │ │ │ + [ 3] .data PROGBITS 00000000 000750 000000 00 WA 0 0 1 │ │ │ │ │ + [ 4] .bss NOBITS 00000000 000750 000000 00 WA 0 0 1 │ │ │ │ │ + [ 5] .rodata.str1.4 PROGBITS 00000000 000750 00003b 01 AMS 0 0 4 │ │ │ │ │ + [ 6] .data.rel.ro PROGBITS 00000000 00078b 000010 00 WA 0 0 4 │ │ │ │ │ + [ 7] .rel.data.rel.ro REL 00000000 000e10 000020 08 I 12 6 4 │ │ │ │ │ + [ 8] .data.rel.ro.local PROGBITS 00000000 00079b 00000c 00 WA 0 0 4 │ │ │ │ │ + [ 9] .rel.data.rel.ro.local REL 00000000 000e30 000008 08 I 12 8 4 │ │ │ │ │ + [10] .note.GNU-stack PROGBITS 00000000 0007a7 000000 00 0 0 1 │ │ │ │ │ + [11] .ARM.attributes ARM_ATTRIBUTES 00000000 0007a7 00002b 00 0 0 1 │ │ │ │ │ + [12] .symtab SYMTAB 00000000 0007d4 0002d0 10 13 22 4 │ │ │ │ │ + [13] .strtab STRTAB 00000000 000aa4 000201 00 0 0 1 │ │ │ │ │ + [14] .shstrtab STRTAB 00000000 000e38 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: 00000000 0 NOTYPE LOCAL DEFAULT 1 $a │ │ │ │ │ - 2: 00000000 152 FUNC LOCAL DEFAULT 1 apply │ │ │ │ │ + 2: 00000000 188 FUNC LOCAL DEFAULT 1 apply │ │ │ │ │ 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: 00000098 104 FUNC LOCAL DEFAULT 1 print │ │ │ │ │ - 8: 000000f4 0 NOTYPE LOCAL DEFAULT 1 $d │ │ │ │ │ - 9: 00000100 0 NOTYPE LOCAL DEFAULT 1 $a │ │ │ │ │ - 10: 00000100 36 FUNC LOCAL DEFAULT 1 destroy │ │ │ │ │ - 11: 00000124 1256 FUNC LOCAL DEFAULT 1 mkplan │ │ │ │ │ - 12: 00000604 0 NOTYPE LOCAL DEFAULT 1 $d │ │ │ │ │ - 13: 0000060c 0 NOTYPE LOCAL DEFAULT 1 $a │ │ │ │ │ - 14: 0000060c 48 FUNC LOCAL DEFAULT 1 awake │ │ │ │ │ - 15: 00000690 0 NOTYPE LOCAL DEFAULT 1 $d │ │ │ │ │ + 7: 000000bc 116 FUNC LOCAL DEFAULT 1 print │ │ │ │ │ + 8: 00000124 0 NOTYPE LOCAL DEFAULT 1 $d │ │ │ │ │ + 9: 00000130 0 NOTYPE LOCAL DEFAULT 1 $a │ │ │ │ │ + 10: 00000130 48 FUNC LOCAL DEFAULT 1 destroy │ │ │ │ │ + 11: 00000160 1292 FUNC LOCAL DEFAULT 1 mkplan │ │ │ │ │ + 12: 00000664 0 NOTYPE LOCAL DEFAULT 1 $d │ │ │ │ │ + 13: 0000066c 0 NOTYPE LOCAL DEFAULT 1 $a │ │ │ │ │ + 14: 0000066c 68 FUNC LOCAL DEFAULT 1 awake │ │ │ │ │ + 15: 00000718 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: 0000063c 88 FUNC GLOBAL DEFAULT 1 fftw_mpi_dft_rank_geq2_transposed_register │ │ │ │ │ + 41: 000006b0 108 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,59 +1,59 @@ │ │ │ │ │ │ │ │ │ │ -Relocation section '.rel.text' at offset 0xc20 contains 45 entries: │ │ │ │ │ +Relocation section '.rel.text' at offset 0xca8 contains 45 entries: │ │ │ │ │ Offset Info Type Sym. Value Symbol's Name │ │ │ │ │ -000000f4 00000503 R_ARM_REL32 00000004 .LC1 │ │ │ │ │ -000000f8 00000603 R_ARM_REL32 00000008 .LC2 │ │ │ │ │ -000000fc 00000403 R_ARM_REL32 00000000 .LC0 │ │ │ │ │ -0000010c 0000161c R_ARM_CALL 00000000 fftw_plan_destroy_internal │ │ │ │ │ -00000114 0000161c R_ARM_CALL 00000000 fftw_plan_destroy_internal │ │ │ │ │ -00000120 0000161d R_ARM_JUMP24 00000000 fftw_plan_destroy_internal │ │ │ │ │ -00000190 0000171c R_ARM_CALL 00000000 fftw_mpi_is_local_after │ │ │ │ │ -000001a8 0000171c R_ARM_CALL 00000000 fftw_mpi_is_local_after │ │ │ │ │ -000001c0 0000181c R_ARM_CALL 00000000 fftw_mpi_num_blocks │ │ │ │ │ -000001f0 0000191c R_ARM_CALL 00000000 fftw_extract_reim │ │ │ │ │ -00000210 0000191c R_ARM_CALL 00000000 fftw_extract_reim │ │ │ │ │ -00000244 00001a1c R_ARM_CALL 00000000 MPI_Comm_rank │ │ │ │ │ -00000250 00001b1c R_ARM_CALL 00000000 MPI_Comm_size │ │ │ │ │ -00000260 00001c1c R_ARM_CALL 00000000 fftw_mktensor │ │ │ │ │ -000003ac 00001d1c R_ARM_CALL 00000000 fftw_mpi_block │ │ │ │ │ -000003c4 00001e1c R_ARM_CALL 00000000 fftw_mktensor_2d │ │ │ │ │ -000003e4 00001f1c R_ARM_CALL 00000000 fftw_mkproblem_dft_d │ │ │ │ │ -000003f0 0000201c R_ARM_CALL 00000000 fftw_mkplan_d │ │ │ │ │ -00000404 0000211c R_ARM_CALL 00000000 fftw_mpi_any_true │ │ │ │ │ -00000454 0000221c R_ARM_CALL 00000000 fftw_mpi_mkproblem_transpose │ │ │ │ │ -00000460 0000201c R_ARM_CALL 00000000 fftw_mkplan_d │ │ │ │ │ -00000474 0000211c R_ARM_CALL 00000000 fftw_mpi_any_true │ │ │ │ │ -00000490 0000191c R_ARM_CALL 00000000 fftw_extract_reim │ │ │ │ │ -000004a8 00001d1c R_ARM_CALL 00000000 fftw_mpi_block │ │ │ │ │ -000004c8 0000231c R_ARM_CALL 00000000 fftw_mktensor_1d │ │ │ │ │ -000004e8 00001e1c R_ARM_CALL 00000000 fftw_mktensor_2d │ │ │ │ │ -000004fc 00001f1c R_ARM_CALL 00000000 fftw_mkproblem_dft_d │ │ │ │ │ -00000508 0000201c R_ARM_CALL 00000000 fftw_mkplan_d │ │ │ │ │ -0000051c 0000211c R_ARM_CALL 00000000 fftw_mpi_any_true │ │ │ │ │ -0000053c 0000241c R_ARM_CALL 00000000 fftw_mkplan_rdft │ │ │ │ │ -000005a0 0000251c R_ARM_CALL 00000000 fftw_ops_add │ │ │ │ │ -000005ac 0000261c R_ARM_CALL 00000000 fftw_ops_add2 │ │ │ │ │ -000005d0 0000161c R_ARM_CALL 00000000 fftw_plan_destroy_internal │ │ │ │ │ -000005d8 0000161c R_ARM_CALL 00000000 fftw_plan_destroy_internal │ │ │ │ │ -000005e0 0000161c R_ARM_CALL 00000000 fftw_plan_destroy_internal │ │ │ │ │ -000005f4 0000271c R_ARM_CALL 00000000 fftw_mpi_dft_serial_applicable │ │ │ │ │ -00000608 00001003 R_ARM_REL32 00000000 .data.rel.ro │ │ │ │ │ -0000061c 0000281c R_ARM_CALL 00000000 fftw_plan_awake │ │ │ │ │ -00000628 0000281c R_ARM_CALL 00000000 fftw_plan_awake │ │ │ │ │ -00000638 0000281d R_ARM_JUMP24 00000000 fftw_plan_awake │ │ │ │ │ -00000654 00002a1c R_ARM_CALL 00000000 fftw_mksolver │ │ │ │ │ -00000668 00002b1c R_ARM_CALL 00000000 fftw_solver_register │ │ │ │ │ -00000674 00002a1c R_ARM_CALL 00000000 fftw_mksolver │ │ │ │ │ -0000068c 00002b1d R_ARM_JUMP24 00000000 fftw_solver_register │ │ │ │ │ -00000690 00001303 R_ARM_REL32 00000000 .data.rel.ro.local │ │ │ │ │ +00000124 00000503 R_ARM_REL32 00000004 .LC1 │ │ │ │ │ +00000128 00000603 R_ARM_REL32 00000008 .LC2 │ │ │ │ │ +0000012c 00000403 R_ARM_REL32 00000000 .LC0 │ │ │ │ │ +00000140 0000161c R_ARM_CALL 00000000 fftw_plan_destroy_internal │ │ │ │ │ +00000148 0000161c R_ARM_CALL 00000000 fftw_plan_destroy_internal │ │ │ │ │ +0000015c 0000161d R_ARM_JUMP24 00000000 fftw_plan_destroy_internal │ │ │ │ │ +000001f0 0000171c R_ARM_CALL 00000000 fftw_mpi_is_local_after │ │ │ │ │ +00000208 0000171c R_ARM_CALL 00000000 fftw_mpi_is_local_after │ │ │ │ │ +00000220 0000181c R_ARM_CALL 00000000 fftw_mpi_num_blocks │ │ │ │ │ +00000250 0000191c R_ARM_CALL 00000000 fftw_extract_reim │ │ │ │ │ +00000270 0000191c R_ARM_CALL 00000000 fftw_extract_reim │ │ │ │ │ +000002a4 00001a1c R_ARM_CALL 00000000 MPI_Comm_rank │ │ │ │ │ +000002b0 00001b1c R_ARM_CALL 00000000 MPI_Comm_size │ │ │ │ │ +000002c0 00001c1c R_ARM_CALL 00000000 fftw_mktensor │ │ │ │ │ +00000410 00001d1c R_ARM_CALL 00000000 fftw_mpi_block │ │ │ │ │ +00000428 00001e1c R_ARM_CALL 00000000 fftw_mktensor_2d │ │ │ │ │ +00000448 00001f1c R_ARM_CALL 00000000 fftw_mkproblem_dft_d │ │ │ │ │ +00000454 0000201c R_ARM_CALL 00000000 fftw_mkplan_d │ │ │ │ │ +00000468 0000211c R_ARM_CALL 00000000 fftw_mpi_any_true │ │ │ │ │ +000004b8 0000221c R_ARM_CALL 00000000 fftw_mpi_mkproblem_transpose │ │ │ │ │ +000004c4 0000201c R_ARM_CALL 00000000 fftw_mkplan_d │ │ │ │ │ +000004d8 0000211c R_ARM_CALL 00000000 fftw_mpi_any_true │ │ │ │ │ +000004f4 0000191c R_ARM_CALL 00000000 fftw_extract_reim │ │ │ │ │ +0000050c 00001d1c R_ARM_CALL 00000000 fftw_mpi_block │ │ │ │ │ +0000052c 0000231c R_ARM_CALL 00000000 fftw_mktensor_1d │ │ │ │ │ +0000054c 00001e1c R_ARM_CALL 00000000 fftw_mktensor_2d │ │ │ │ │ +00000560 00001f1c R_ARM_CALL 00000000 fftw_mkproblem_dft_d │ │ │ │ │ +0000056c 0000201c R_ARM_CALL 00000000 fftw_mkplan_d │ │ │ │ │ +00000580 0000211c R_ARM_CALL 00000000 fftw_mpi_any_true │ │ │ │ │ +000005a0 0000241c R_ARM_CALL 00000000 fftw_mkplan_rdft │ │ │ │ │ +00000604 0000251c R_ARM_CALL 00000000 fftw_ops_add │ │ │ │ │ +00000610 0000261c R_ARM_CALL 00000000 fftw_ops_add2 │ │ │ │ │ +00000630 0000161c R_ARM_CALL 00000000 fftw_plan_destroy_internal │ │ │ │ │ +00000638 0000161c R_ARM_CALL 00000000 fftw_plan_destroy_internal │ │ │ │ │ +00000640 0000161c R_ARM_CALL 00000000 fftw_plan_destroy_internal │ │ │ │ │ +00000654 0000271c R_ARM_CALL 00000000 fftw_mpi_dft_serial_applicable │ │ │ │ │ +00000668 00001003 R_ARM_REL32 00000000 .data.rel.ro │ │ │ │ │ +00000684 0000281c R_ARM_CALL 00000000 fftw_plan_awake │ │ │ │ │ +00000690 0000281c R_ARM_CALL 00000000 fftw_plan_awake │ │ │ │ │ +000006ac 0000281d R_ARM_JUMP24 00000000 fftw_plan_awake │ │ │ │ │ +000006d0 00002a1c R_ARM_CALL 00000000 fftw_mksolver │ │ │ │ │ +000006e4 00002b1c R_ARM_CALL 00000000 fftw_solver_register │ │ │ │ │ +000006f0 00002a1c R_ARM_CALL 00000000 fftw_mksolver │ │ │ │ │ +00000714 00002b1d R_ARM_JUMP24 00000000 fftw_solver_register │ │ │ │ │ +00000718 00001303 R_ARM_REL32 00000000 .data.rel.ro.local │ │ │ │ │ │ │ │ │ │ -Relocation section '.rel.data.rel.ro' at offset 0xd88 contains 4 entries: │ │ │ │ │ +Relocation section '.rel.data.rel.ro' at offset 0xe10 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 0000060c awake │ │ │ │ │ -00000008 00000702 R_ARM_ABS32 00000098 print │ │ │ │ │ -0000000c 00000a02 R_ARM_ABS32 00000100 destroy │ │ │ │ │ +00000004 00000e02 R_ARM_ABS32 0000066c awake │ │ │ │ │ +00000008 00000702 R_ARM_ABS32 000000bc print │ │ │ │ │ +0000000c 00000a02 R_ARM_ABS32 00000130 destroy │ │ │ │ │ │ │ │ │ │ -Relocation section '.rel.data.rel.ro.local' at offset 0xda8 contains 1 entry: │ │ │ │ │ +Relocation section '.rel.data.rel.ro.local' at offset 0xe30 contains 1 entry: │ │ │ │ │ Offset Info Type Sym. Value Symbol's Name │ │ │ │ │ -00000004 00000b02 R_ARM_ABS32 00000124 mkplan │ │ │ │ │ +00000004 00000b02 R_ARM_ABS32 00000160 mkplan │ │ │ │ ├── objdump --line-numbers --disassemble --demangle --reloc --no-show-raw-insn --section=.text {} │ │ │ │ │ @@ -1,488 +1,522 @@ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ Disassembly of section .text: │ │ │ │ │ │ │ │ │ │ 00000000 : │ │ │ │ │ apply(): │ │ │ │ │ - push {r4, r5, r6, r7, r8, r9, lr} │ │ │ │ │ + strd r4, [sp, #-28]! @ 0xffffffe4 │ │ │ │ │ mov r4, r0 │ │ │ │ │ mov r5, r1 │ │ │ │ │ ldr r1, [r4, #76] @ 0x4c │ │ │ │ │ - ldr r3, [r4, #84] @ 0x54 │ │ │ │ │ + strd r6, [sp, #8] │ │ │ │ │ mov r6, r2 │ │ │ │ │ - add r8, r2, r1, lsl #3 │ │ │ │ │ + ldr ip, [r4, #80] @ 0x50 │ │ │ │ │ + strd r8, [sp, #16] │ │ │ │ │ + ldr r3, [r4, #84] @ 0x54 │ │ │ │ │ + lsl r1, r1, #3 │ │ │ │ │ + str lr, [sp, #24] │ │ │ │ │ + sub sp, sp, #12 │ │ │ │ │ ldr r0, [r0, #64] @ 0x40 │ │ │ │ │ - ldr r2, [r4, #80] @ 0x50 │ │ │ │ │ + lsl ip, ip, #3 │ │ │ │ │ + add r8, r2, r1 │ │ │ │ │ + add r1, r5, r1 │ │ │ │ │ cmp r3, #0 │ │ │ │ │ - add r7, r6, r2, lsl #3 │ │ │ │ │ + add r7, r2, ip │ │ │ │ │ + add r2, r5, ip │ │ │ │ │ ldr r9, [r0, #56] @ 0x38 │ │ │ │ │ - sub sp, sp, #12 │ │ │ │ │ - add r1, r5, r1, lsl #3 │ │ │ │ │ - add r2, r5, r2, lsl #3 │ │ │ │ │ - beq 88 │ │ │ │ │ + beq ac │ │ │ │ │ mov r3, r8 │ │ │ │ │ + mov r5, r6 │ │ │ │ │ str r7, [sp] │ │ │ │ │ blx r9 │ │ │ │ │ - mov r5, r6 │ │ │ │ │ ldr r0, [r4, #68] @ 0x44 │ │ │ │ │ mov r2, r6 │ │ │ │ │ - ldr r3, [r0, #56] @ 0x38 │ │ │ │ │ mov r1, r5 │ │ │ │ │ + ldr r3, [r0, #56] @ 0x38 │ │ │ │ │ blx r3 │ │ │ │ │ ldr r0, [r4, #72] @ 0x48 │ │ │ │ │ mov r3, r8 │ │ │ │ │ - str r7, [sp] │ │ │ │ │ mov r2, r7 │ │ │ │ │ - ldr r4, [r0, #56] @ 0x38 │ │ │ │ │ + str r7, [sp] │ │ │ │ │ mov r1, r8 │ │ │ │ │ + ldr r4, [r0, #56] @ 0x38 │ │ │ │ │ blx r4 │ │ │ │ │ add sp, sp, #12 │ │ │ │ │ - pop {r4, r5, r6, r7, r8, r9, pc} │ │ │ │ │ + ldrd r4, [sp] │ │ │ │ │ + ldrd r6, [sp, #8] │ │ │ │ │ + ldrd r8, [sp, #16] │ │ │ │ │ + add sp, sp, #24 │ │ │ │ │ + pop {pc} @ (ldr pc, [sp], #4) │ │ │ │ │ mov r3, r1 │ │ │ │ │ str r2, [sp] │ │ │ │ │ blx r9 │ │ │ │ │ - b 50 │ │ │ │ │ + b 64 │ │ │ │ │ │ │ │ │ │ -00000098 : │ │ │ │ │ +000000bc : │ │ │ │ │ print(): │ │ │ │ │ mov r3, r0 │ │ │ │ │ + mov r0, r1 │ │ │ │ │ + str r4, [sp, #-8]! │ │ │ │ │ ldr r2, [r3, #84] @ 0x54 │ │ │ │ │ - push {r4, lr} │ │ │ │ │ - cmp r2, #2 │ │ │ │ │ - ldr r4, [r1] │ │ │ │ │ + str lr, [sp, #4] │ │ │ │ │ sub sp, sp, #8 │ │ │ │ │ - mov r0, r1 │ │ │ │ │ - beq e8 │ │ │ │ │ - ldr r2, [pc, #52] @ f4 │ │ │ │ │ + ldr r4, [r1] │ │ │ │ │ + cmp r2, #2 │ │ │ │ │ + beq 118 │ │ │ │ │ + ldr r2, [pc, #60] @ 124 │ │ │ │ │ add r2, pc, r2 │ │ │ │ │ ldr r1, [r3, #72] @ 0x48 │ │ │ │ │ str r1, [sp, #4] │ │ │ │ │ ldr r1, [r3, #68] @ 0x44 │ │ │ │ │ str r1, [sp] │ │ │ │ │ - ldr r1, [pc, #32] @ f8 │ │ │ │ │ + ldr r1, [pc, #40] @ 128 │ │ │ │ │ ldr r3, [r3, #64] @ 0x40 │ │ │ │ │ add r1, pc, r1 │ │ │ │ │ blx r4 │ │ │ │ │ add sp, sp, #8 │ │ │ │ │ - pop {r4, pc} │ │ │ │ │ - ldr r2, [pc, #12] @ fc │ │ │ │ │ + ldr r4, [sp] │ │ │ │ │ + add sp, sp, #4 │ │ │ │ │ + pop {pc} @ (ldr pc, [sp], #4) │ │ │ │ │ + ldr r2, [pc, #12] @ 12c │ │ │ │ │ add r2, pc, r2 │ │ │ │ │ - b c0 │ │ │ │ │ - .word 0x00000030 │ │ │ │ │ + b e8 │ │ │ │ │ + .word 0x00000038 │ │ │ │ │ R_ARM_REL32 .LC1 │ │ │ │ │ - .word 0x00000018 │ │ │ │ │ + .word 0x00000020 │ │ │ │ │ R_ARM_REL32 .LC2 │ │ │ │ │ .word 0x00000008 │ │ │ │ │ R_ARM_REL32 .LC0 │ │ │ │ │ │ │ │ │ │ -00000100 : │ │ │ │ │ +00000130 : │ │ │ │ │ destroy(): │ │ │ │ │ - push {r4, lr} │ │ │ │ │ + str r4, [sp, #-8]! │ │ │ │ │ mov r4, r0 │ │ │ │ │ ldr r0, [r0, #72] @ 0x48 │ │ │ │ │ + str lr, [sp, #4] │ │ │ │ │ bl 0 │ │ │ │ │ R_ARM_CALL fftw_plan_destroy_internal │ │ │ │ │ ldr r0, [r4, #68] @ 0x44 │ │ │ │ │ bl 0 │ │ │ │ │ R_ARM_CALL fftw_plan_destroy_internal │ │ │ │ │ + ldr lr, [sp, #4] │ │ │ │ │ ldr r0, [r4, #64] @ 0x40 │ │ │ │ │ - pop {r4, lr} │ │ │ │ │ + ldr r4, [sp] │ │ │ │ │ + add sp, sp, #8 │ │ │ │ │ b 0 │ │ │ │ │ R_ARM_JUMP24 fftw_plan_destroy_internal │ │ │ │ │ │ │ │ │ │ -00000124 : │ │ │ │ │ +00000160 : │ │ │ │ │ mkplan(): │ │ │ │ │ - push {r4, r5, r6, r7, r8, r9, sl, fp, lr} │ │ │ │ │ + strd r4, [sp, #-36]! @ 0xffffffdc │ │ │ │ │ mov r4, r1 │ │ │ │ │ ldr r1, [r1, #4] │ │ │ │ │ + strd r6, [sp, #8] │ │ │ │ │ + strd r8, [sp, #16] │ │ │ │ │ + strd sl, [sp, #24] │ │ │ │ │ + str lr, [sp, #32] │ │ │ │ │ sub sp, sp, #68 @ 0x44 │ │ │ │ │ ldr r3, [r1] │ │ │ │ │ cmp r3, #1 │ │ │ │ │ - ble 14c │ │ │ │ │ + ble 198 │ │ │ │ │ ldr r3, [r4, #24] │ │ │ │ │ cmp r3, #8 │ │ │ │ │ - beq 158 │ │ │ │ │ + beq 1b8 │ │ │ │ │ mov r0, #0 │ │ │ │ │ add sp, sp, #68 @ 0x44 │ │ │ │ │ - pop {r4, r5, r6, r7, r8, r9, sl, fp, pc} │ │ │ │ │ + ldrd r4, [sp] │ │ │ │ │ + ldrd r6, [sp, #8] │ │ │ │ │ + ldrd r8, [sp, #16] │ │ │ │ │ + ldrd sl, [sp, #24] │ │ │ │ │ + add sp, sp, #32 │ │ │ │ │ + pop {pc} @ (ldr pc, [sp], #4) │ │ │ │ │ ldr r3, [r0, #8] │ │ │ │ │ mov r8, r0 │ │ │ │ │ - cmp r3, #0 │ │ │ │ │ mov sl, r2 │ │ │ │ │ - beq 188 │ │ │ │ │ + cmp r3, #0 │ │ │ │ │ + beq 1e8 │ │ │ │ │ ldr r3, [r2, #164] @ 0xa4 │ │ │ │ │ tst r3, #4096 @ 0x1000 │ │ │ │ │ - bne 14c │ │ │ │ │ + bne 198 │ │ │ │ │ ldr r2, [r4, #12] │ │ │ │ │ ldr r3, [r4, #16] │ │ │ │ │ cmp r2, r3 │ │ │ │ │ - beq 14c │ │ │ │ │ + beq 198 │ │ │ │ │ mov r2, #0 │ │ │ │ │ mov r0, #1 │ │ │ │ │ bl 0 │ │ │ │ │ R_ARM_CALL fftw_mpi_is_local_after │ │ │ │ │ cmp r0, #0 │ │ │ │ │ - beq 14c │ │ │ │ │ + beq 198 │ │ │ │ │ ldr r1, [r4, #4] │ │ │ │ │ mov r2, #1 │ │ │ │ │ mov r0, #2 │ │ │ │ │ bl 0 │ │ │ │ │ R_ARM_CALL fftw_mpi_is_local_after │ │ │ │ │ cmp r0, #0 │ │ │ │ │ - beq 14c │ │ │ │ │ + beq 198 │ │ │ │ │ ldr r3, [r4, #4] │ │ │ │ │ - ldr r1, [r3, #12] │ │ │ │ │ ldr r0, [r3, #4] │ │ │ │ │ + ldr r1, [r3, #12] │ │ │ │ │ bl 0 │ │ │ │ │ R_ARM_CALL fftw_mpi_num_blocks │ │ │ │ │ cmp r0, #1 │ │ │ │ │ mov r5, r0 │ │ │ │ │ - bne 14c │ │ │ │ │ + bne 198 │ │ │ │ │ ldr r3, [sl, #164] @ 0xa4 │ │ │ │ │ tst r3, #8 │ │ │ │ │ - bne 5f0 │ │ │ │ │ + bne 650 │ │ │ │ │ ldr r9, [r4, #12] │ │ │ │ │ - ldr r0, [r4, #20] │ │ │ │ │ add r3, sp, #44 @ 0x2c │ │ │ │ │ add r2, sp, #40 @ 0x28 │ │ │ │ │ + ldr r0, [r4, #20] │ │ │ │ │ mov r1, r9 │ │ │ │ │ bl 0 │ │ │ │ │ R_ARM_CALL fftw_extract_reim │ │ │ │ │ ldr fp, [r4, #16] │ │ │ │ │ add r3, sp, #52 @ 0x34 │ │ │ │ │ add r2, sp, #48 @ 0x30 │ │ │ │ │ ldr r0, [r4, #20] │ │ │ │ │ - mov r1, fp │ │ │ │ │ - str r3, [sp, #36] @ 0x24 │ │ │ │ │ str r2, [sp, #32] │ │ │ │ │ + str r3, [sp, #36] @ 0x24 │ │ │ │ │ + mov r1, fp │ │ │ │ │ bl 0 │ │ │ │ │ R_ARM_CALL fftw_extract_reim │ │ │ │ │ ldr r3, [r8, #8] │ │ │ │ │ cmp r3, #0 │ │ │ │ │ - bne 5bc │ │ │ │ │ + bne 61c │ │ │ │ │ ldr r3, [sl, #164] @ 0xa4 │ │ │ │ │ tst r3, #4096 @ 0x1000 │ │ │ │ │ - bne 5bc │ │ │ │ │ + bne 61c │ │ │ │ │ ldr r3, [sp, #40] @ 0x28 │ │ │ │ │ str r3, [sp, #48] @ 0x30 │ │ │ │ │ ldr r3, [sp, #44] @ 0x2c │ │ │ │ │ str r3, [sp, #52] @ 0x34 │ │ │ │ │ - add r1, sp, #56 @ 0x38 │ │ │ │ │ ldr r0, [r4, #28] │ │ │ │ │ + add r1, sp, #56 @ 0x38 │ │ │ │ │ bl 0 │ │ │ │ │ R_ARM_CALL MPI_Comm_rank │ │ │ │ │ - add r1, sp, #60 @ 0x3c │ │ │ │ │ ldr r0, [r4, #28] │ │ │ │ │ + add r1, sp, #60 @ 0x3c │ │ │ │ │ bl 0 │ │ │ │ │ R_ARM_CALL MPI_Comm_size │ │ │ │ │ ldr r3, [r4, #4] │ │ │ │ │ ldr r0, [r3] │ │ │ │ │ sub r0, r0, #1 │ │ │ │ │ bl 0 │ │ │ │ │ R_ARM_CALL fftw_mktensor │ │ │ │ │ ldr ip, [r4, #4] │ │ │ │ │ + mov r7, r0 │ │ │ │ │ ldr r6, [ip] │ │ │ │ │ add r2, r6, r6, lsl #1 │ │ │ │ │ - add r3, r6, r6, lsl #1 │ │ │ │ │ + add r1, r6, r6, lsl #1 │ │ │ │ │ add r2, ip, r2, lsl #2 │ │ │ │ │ + lsl r1, r1, #2 │ │ │ │ │ ldr r2, [r2, #-8] │ │ │ │ │ - lsl r1, r3, #2 │ │ │ │ │ - mov r7, r0 │ │ │ │ │ - add r3, r0, r3, lsl #2 │ │ │ │ │ + add r3, r0, r1 │ │ │ │ │ ldr r0, [r4, #8] │ │ │ │ │ str r2, [r3, #-20] @ 0xffffffec │ │ │ │ │ add r2, r6, r6, lsl #1 │ │ │ │ │ lsl r0, r0, #1 │ │ │ │ │ add r2, r7, r2, lsl #2 │ │ │ │ │ str r0, [r2, #-12] │ │ │ │ │ str r0, [r3, #-16] │ │ │ │ │ subs r0, r6, #3 │ │ │ │ │ - bmi 364 │ │ │ │ │ + bmi 3c8 │ │ │ │ │ cmp r6, #4 │ │ │ │ │ sub r2, r1, #16 │ │ │ │ │ sub lr, r1, #20 │ │ │ │ │ - ble 5e8 │ │ │ │ │ - sub r6, r6, #5 │ │ │ │ │ + ble 648 │ │ │ │ │ ldr r2, [r7, r2] │ │ │ │ │ - ldr lr, [r7, lr] │ │ │ │ │ + sub r6, r6, #5 │ │ │ │ │ add r1, ip, r1 │ │ │ │ │ and r6, r6, #1 │ │ │ │ │ str ip, [sp, #24] │ │ │ │ │ + ldr lr, [r7, lr] │ │ │ │ │ mul r2, lr, r2 │ │ │ │ │ - ldr ip, [r1, #-20] @ 0xffffffec │ │ │ │ │ - str r2, [r3, #-24] @ 0xffffffe8 │ │ │ │ │ - str r2, [r3, #-28] @ 0xffffffe4 │ │ │ │ │ - mul r2, ip, r2 │ │ │ │ │ sub r0, r0, #2 │ │ │ │ │ - str ip, [r3, #-32] @ 0xffffffe0 │ │ │ │ │ - cmp r0, r6 │ │ │ │ │ - ldr lr, [r1, #-32] @ 0xffffffe0 │ │ │ │ │ - str lr, [r3, #-44] @ 0xffffffd4 │ │ │ │ │ - str r2, [r3, #-36] @ 0xffffffdc │ │ │ │ │ - str r2, [r3, #-40] @ 0xffffffd8 │ │ │ │ │ sub r1, r1, #24 │ │ │ │ │ + ldr ip, [r1, #4] │ │ │ │ │ + cmp r0, r6 │ │ │ │ │ sub r3, r3, #24 │ │ │ │ │ - bne 2d4 │ │ │ │ │ + str ip, [r3, #-8] │ │ │ │ │ + str r2, [r3, #-4] │ │ │ │ │ + str r2, [r3] │ │ │ │ │ + mul r2, ip, r2 │ │ │ │ │ + ldr lr, [r1, #-8] │ │ │ │ │ + str lr, [r3, #-20] @ 0xffffffec │ │ │ │ │ + str r2, [r3, #-16] │ │ │ │ │ + str r2, [r3, #-12] │ │ │ │ │ + bne 334 │ │ │ │ │ ldr ip, [sp, #24] │ │ │ │ │ add r3, r6, r6, lsl #1 │ │ │ │ │ - add r0, ip, r3, lsl #2 │ │ │ │ │ - add r3, r7, r3, lsl #2 │ │ │ │ │ - ldr lr, [r3, #20] │ │ │ │ │ + cmp r6, #0 │ │ │ │ │ + lsl r3, r3, #2 │ │ │ │ │ + add r0, ip, r3 │ │ │ │ │ + add r3, r7, r3 │ │ │ │ │ ldr r2, [r3, #16] │ │ │ │ │ + ldr lr, [r3, #20] │ │ │ │ │ ldr r1, [r0, #16] │ │ │ │ │ mul r2, lr, r2 │ │ │ │ │ - cmp r6, #0 │ │ │ │ │ sub lr, r6, #1 │ │ │ │ │ str r1, [r3, #4] │ │ │ │ │ - str r2, [r3, #12] │ │ │ │ │ str r2, [r3, #8] │ │ │ │ │ - beq 364 │ │ │ │ │ - mul r2, r1, r2 │ │ │ │ │ - add lr, lr, lr, lsl #1 │ │ │ │ │ + str r2, [r3, #12] │ │ │ │ │ + beq 3c8 │ │ │ │ │ ldr r0, [r0, #4] │ │ │ │ │ + add lr, lr, lr, lsl #1 │ │ │ │ │ + mul r2, r1, r2 │ │ │ │ │ add lr, r7, lr, lsl #2 │ │ │ │ │ str r0, [r3, #-8] │ │ │ │ │ str r2, [lr, #12] │ │ │ │ │ str r2, [r3, #-4] │ │ │ │ │ ldr r1, [r7] │ │ │ │ │ cmp r1, #1 │ │ │ │ │ - ble 394 │ │ │ │ │ + ble 3f8 │ │ │ │ │ add r1, r1, r1, lsl #1 │ │ │ │ │ - sub r1, r1, #3 │ │ │ │ │ mov r3, #0 │ │ │ │ │ add r0, r7, #16 │ │ │ │ │ + sub r1, r1, #3 │ │ │ │ │ ldr r2, [r0, r3, lsl #2] │ │ │ │ │ add r3, r3, #3 │ │ │ │ │ cmp r1, r3 │ │ │ │ │ mul r5, r2, r5 │ │ │ │ │ - bne 380 │ │ │ │ │ + bne 3e4 │ │ │ │ │ ldmib r7, {r2, r3} │ │ │ │ │ mov r6, #2 │ │ │ │ │ mul r1, r3, r2 │ │ │ │ │ ldr r2, [sp, #56] @ 0x38 │ │ │ │ │ str r1, [sp, #24] │ │ │ │ │ ldmib ip, {r0, r1} │ │ │ │ │ bl 0 │ │ │ │ │ R_ARM_CALL fftw_mpi_block │ │ │ │ │ ldr r2, [sp, #24] │ │ │ │ │ - str r6, [sp, #4] │ │ │ │ │ - mov r1, r2 │ │ │ │ │ str r6, [sp] │ │ │ │ │ + str r6, [sp, #4] │ │ │ │ │ ldr r3, [r4, #8] │ │ │ │ │ + mov r1, r2 │ │ │ │ │ bl 0 │ │ │ │ │ R_ARM_CALL fftw_mktensor_2d │ │ │ │ │ ldr r3, [sp, #52] @ 0x34 │ │ │ │ │ + mov r1, r0 │ │ │ │ │ + mov r0, r7 │ │ │ │ │ str r3, [sp, #4] │ │ │ │ │ ldr r3, [sp, #48] @ 0x30 │ │ │ │ │ str r3, [sp] │ │ │ │ │ ldrd r2, [sp, #40] @ 0x28 │ │ │ │ │ - mov r1, r0 │ │ │ │ │ - mov r0, r7 │ │ │ │ │ bl 0 │ │ │ │ │ R_ARM_CALL fftw_mkproblem_dft_d │ │ │ │ │ mov r1, r0 │ │ │ │ │ mov r0, sl │ │ │ │ │ bl 0 │ │ │ │ │ R_ARM_CALL fftw_mkplan_d │ │ │ │ │ - ldr r1, [r4, #28] │ │ │ │ │ str r0, [sp, #24] │ │ │ │ │ clz r0, r0 │ │ │ │ │ + ldr r1, [r4, #28] │ │ │ │ │ lsr r0, r0, #5 │ │ │ │ │ bl 0 │ │ │ │ │ R_ARM_CALL fftw_mpi_any_true │ │ │ │ │ subs r7, r0, #0 │ │ │ │ │ - bne 5c4 │ │ │ │ │ + bne 624 │ │ │ │ │ ldr r3, [r4, #8] │ │ │ │ │ mul r5, r3, r5 │ │ │ │ │ ldr r3, [r4, #4] │ │ │ │ │ lsl ip, r5, #1 │ │ │ │ │ - ldr r1, [r3, #16] │ │ │ │ │ ldr r0, [r3, #4] │ │ │ │ │ + str ip, [sp, #28] │ │ │ │ │ + ldr r1, [r3, #16] │ │ │ │ │ str r7, [sp, #16] │ │ │ │ │ ldr r2, [r4, #28] │ │ │ │ │ str r2, [sp, #12] │ │ │ │ │ ldr r2, [r3, #24] │ │ │ │ │ str r2, [sp, #8] │ │ │ │ │ - ldr r3, [r3, #8] │ │ │ │ │ mov r2, ip │ │ │ │ │ - str r3, [sp, #4] │ │ │ │ │ + ldr r3, [r3, #8] │ │ │ │ │ str fp, [sp] │ │ │ │ │ + str r3, [sp, #4] │ │ │ │ │ mov r3, r9 │ │ │ │ │ - str ip, [sp, #28] │ │ │ │ │ bl 0 │ │ │ │ │ R_ARM_CALL fftw_mpi_mkproblem_transpose │ │ │ │ │ mov r1, r0 │ │ │ │ │ mov r0, sl │ │ │ │ │ bl 0 │ │ │ │ │ R_ARM_CALL fftw_mkplan_d │ │ │ │ │ - ldr r1, [r4, #28] │ │ │ │ │ mov r9, r0 │ │ │ │ │ clz r0, r0 │ │ │ │ │ + ldr r1, [r4, #28] │ │ │ │ │ lsr r0, r0, #5 │ │ │ │ │ bl 0 │ │ │ │ │ R_ARM_CALL fftw_mpi_any_true │ │ │ │ │ cmp r0, #0 │ │ │ │ │ - bne 5cc │ │ │ │ │ + bne 62c │ │ │ │ │ + ldr r0, [r4, #20] │ │ │ │ │ mov r1, fp │ │ │ │ │ - ldr r3, [sp, #36] @ 0x24 │ │ │ │ │ ldr r2, [sp, #32] │ │ │ │ │ - ldr r0, [r4, #20] │ │ │ │ │ + ldr r3, [sp, #36] @ 0x24 │ │ │ │ │ bl 0 │ │ │ │ │ R_ARM_CALL fftw_extract_reim │ │ │ │ │ ldr r3, [r4, #4] │ │ │ │ │ ldr r2, [sp, #56] @ 0x38 │ │ │ │ │ - ldr r1, [r3, #24] │ │ │ │ │ - ldr r0, [r3, #16] │ │ │ │ │ ldr r7, [r3, #4] │ │ │ │ │ + ldr r0, [r3, #16] │ │ │ │ │ + ldr r1, [r3, #24] │ │ │ │ │ bl 0 │ │ │ │ │ R_ARM_CALL fftw_mpi_block │ │ │ │ │ ldr r3, [r4, #4] │ │ │ │ │ - ldr r2, [sp, #28] │ │ │ │ │ mul r7, r5, r7 │ │ │ │ │ - mov r1, r2 │ │ │ │ │ - lsl r7, r7, #1 │ │ │ │ │ mov fp, r0 │ │ │ │ │ + ldr r2, [sp, #28] │ │ │ │ │ + lsl r7, r7, #1 │ │ │ │ │ ldr r0, [r3, #4] │ │ │ │ │ + mov r1, r2 │ │ │ │ │ bl 0 │ │ │ │ │ R_ARM_CALL fftw_mktensor_1d │ │ │ │ │ mov r2, r7 │ │ │ │ │ mov r1, r7 │ │ │ │ │ + str r6, [sp] │ │ │ │ │ mov r3, r5 │ │ │ │ │ str r6, [sp, #4] │ │ │ │ │ - str r6, [sp] │ │ │ │ │ str r0, [sp, #28] │ │ │ │ │ mov r0, fp │ │ │ │ │ bl 0 │ │ │ │ │ R_ARM_CALL fftw_mktensor_2d │ │ │ │ │ ldrd r2, [sp, #48] @ 0x30 │ │ │ │ │ - stm sp, {r2, r3} │ │ │ │ │ mov r1, r0 │ │ │ │ │ ldr r0, [sp, #28] │ │ │ │ │ + stm sp, {r2, r3} │ │ │ │ │ bl 0 │ │ │ │ │ R_ARM_CALL fftw_mkproblem_dft_d │ │ │ │ │ mov r1, r0 │ │ │ │ │ mov r0, sl │ │ │ │ │ bl 0 │ │ │ │ │ R_ARM_CALL fftw_mkplan_d │ │ │ │ │ - ldr r1, [r4, #28] │ │ │ │ │ mov r7, r0 │ │ │ │ │ clz r0, r0 │ │ │ │ │ + ldr r1, [r4, #28] │ │ │ │ │ lsr r0, r0, #5 │ │ │ │ │ bl 0 │ │ │ │ │ R_ARM_CALL fftw_mpi_any_true │ │ │ │ │ cmp r0, #0 │ │ │ │ │ - bne 5cc │ │ │ │ │ - ldr r2, [pc, #212] @ 604 │ │ │ │ │ - ldr r1, [pc, #212] @ 608 │ │ │ │ │ + bne 62c │ │ │ │ │ + ldr r2, [pc, #208] @ 664 │ │ │ │ │ + mov r0, #88 @ 0x58 │ │ │ │ │ + ldr r1, [pc, #204] @ 668 │ │ │ │ │ add r2, pc, r2 │ │ │ │ │ add r1, pc, r1 │ │ │ │ │ - mov r0, #88 @ 0x58 │ │ │ │ │ bl 0 │ │ │ │ │ R_ARM_CALL fftw_mkplan_rdft │ │ │ │ │ ldr r3, [sp, #24] │ │ │ │ │ - ldr r2, [r4, #12] │ │ │ │ │ + mov r5, r0 │ │ │ │ │ add r1, r7, #8 │ │ │ │ │ + ldr r2, [r4, #12] │ │ │ │ │ + add r4, r0, #8 │ │ │ │ │ str r3, [r0, #64] @ 0x40 │ │ │ │ │ ldr r3, [r8, #8] │ │ │ │ │ - add r4, r0, #8 │ │ │ │ │ + str r9, [r0, #68] @ 0x44 │ │ │ │ │ + str r7, [r0, #72] @ 0x48 │ │ │ │ │ cmp r3, #0 │ │ │ │ │ ldr r3, [sp, #40] @ 0x28 │ │ │ │ │ ldreq r6, [sl, #164] @ 0xa4 │ │ │ │ │ sub r3, r3, r2 │ │ │ │ │ asr r3, r3, #3 │ │ │ │ │ + andeq r6, r6, #4096 @ 0x1000 │ │ │ │ │ str r3, [r0, #76] @ 0x4c │ │ │ │ │ ldr r3, [sp, #44] @ 0x2c │ │ │ │ │ - andeq r6, r6, #4096 @ 0x1000 │ │ │ │ │ + str r6, [r0, #84] @ 0x54 │ │ │ │ │ sub r3, r3, r2 │ │ │ │ │ + mov r2, r4 │ │ │ │ │ asr r3, r3, #3 │ │ │ │ │ str r3, [r0, #80] @ 0x50 │ │ │ │ │ ldr r3, [sp, #24] │ │ │ │ │ - mov r5, r0 │ │ │ │ │ - mov r2, r4 │ │ │ │ │ - str r9, [r0, #68] @ 0x44 │ │ │ │ │ - str r7, [r0, #72] @ 0x48 │ │ │ │ │ - str r6, [r0, #84] @ 0x54 │ │ │ │ │ add r0, r3, #8 │ │ │ │ │ bl 0 │ │ │ │ │ R_ARM_CALL fftw_ops_add │ │ │ │ │ add r0, r9, #8 │ │ │ │ │ mov r1, r4 │ │ │ │ │ bl 0 │ │ │ │ │ R_ARM_CALL fftw_ops_add2 │ │ │ │ │ mov r0, r5 │ │ │ │ │ - add sp, sp, #68 @ 0x44 │ │ │ │ │ - pop {r4, r5, r6, r7, r8, r9, sl, fp, pc} │ │ │ │ │ + b 19c │ │ │ │ │ mov r9, fp │ │ │ │ │ - b 23c │ │ │ │ │ + b 29c │ │ │ │ │ mov r7, #0 │ │ │ │ │ mov r9, r7 │ │ │ │ │ mov r0, r7 │ │ │ │ │ bl 0 │ │ │ │ │ R_ARM_CALL fftw_plan_destroy_internal │ │ │ │ │ mov r0, r9 │ │ │ │ │ bl 0 │ │ │ │ │ R_ARM_CALL fftw_plan_destroy_internal │ │ │ │ │ ldr r0, [sp, #24] │ │ │ │ │ bl 0 │ │ │ │ │ R_ARM_CALL fftw_plan_destroy_internal │ │ │ │ │ - b 14c │ │ │ │ │ + b 198 │ │ │ │ │ mov r6, r0 │ │ │ │ │ - b 314 │ │ │ │ │ + b 374 │ │ │ │ │ mov r0, r4 │ │ │ │ │ bl 0 │ │ │ │ │ R_ARM_CALL fftw_mpi_dft_serial_applicable │ │ │ │ │ cmp r0, #0 │ │ │ │ │ - beq 1dc │ │ │ │ │ - b 14c │ │ │ │ │ - .word 0xfffffac8 │ │ │ │ │ - .word 0x000000cc │ │ │ │ │ + beq 23c │ │ │ │ │ + b 198 │ │ │ │ │ + .word 0xfffffa60 │ │ │ │ │ + .word 0x000000c4 │ │ │ │ │ R_ARM_REL32 .data.rel.ro │ │ │ │ │ │ │ │ │ │ -0000060c : │ │ │ │ │ +0000066c : │ │ │ │ │ awake(): │ │ │ │ │ - push {r4, r5, r6, lr} │ │ │ │ │ + strd r4, [sp, #-16]! │ │ │ │ │ mov r4, r0 │ │ │ │ │ mov r5, r1 │ │ │ │ │ ldr r0, [r0, #64] @ 0x40 │ │ │ │ │ + str r6, [sp, #8] │ │ │ │ │ + str lr, [sp, #12] │ │ │ │ │ bl 0 │ │ │ │ │ R_ARM_CALL fftw_plan_awake │ │ │ │ │ ldr r0, [r4, #68] @ 0x44 │ │ │ │ │ mov r1, r5 │ │ │ │ │ bl 0 │ │ │ │ │ R_ARM_CALL fftw_plan_awake │ │ │ │ │ - ldr r0, [r4, #72] @ 0x48 │ │ │ │ │ + ldr r6, [sp, #8] │ │ │ │ │ mov r1, r5 │ │ │ │ │ - pop {r4, r5, r6, lr} │ │ │ │ │ + ldr lr, [sp, #12] │ │ │ │ │ + ldr r0, [r4, #72] @ 0x48 │ │ │ │ │ + ldrd r4, [sp] │ │ │ │ │ + add sp, sp, #16 │ │ │ │ │ b 0 │ │ │ │ │ R_ARM_JUMP24 fftw_plan_awake │ │ │ │ │ │ │ │ │ │ -0000063c : │ │ │ │ │ +000006b0 : │ │ │ │ │ fftw_mpi_dft_rank_geq2_transposed_register(): │ │ │ │ │ - push {r4, r5, r6, lr} │ │ │ │ │ - ldr r5, [pc, #72] @ 690 │ │ │ │ │ + strd r4, [sp, #-16]! │ │ │ │ │ mov r4, r0 │ │ │ │ │ + mov r0, #12 │ │ │ │ │ + ldr r5, [pc, #84] @ 718 │ │ │ │ │ + str r6, [sp, #8] │ │ │ │ │ + str lr, [sp, #12] │ │ │ │ │ add r5, pc, r5 │ │ │ │ │ mov r1, r5 │ │ │ │ │ - mov r0, #12 │ │ │ │ │ bl 0 │ │ │ │ │ R_ARM_CALL fftw_mksolver │ │ │ │ │ mov r3, #0 │ │ │ │ │ - str r3, [r0, #8] │ │ │ │ │ mov r1, r0 │ │ │ │ │ + str r3, [r0, #8] │ │ │ │ │ mov r0, r4 │ │ │ │ │ bl 0 │ │ │ │ │ R_ARM_CALL fftw_solver_register │ │ │ │ │ mov r1, r5 │ │ │ │ │ mov r0, #12 │ │ │ │ │ bl 0 │ │ │ │ │ R_ARM_CALL fftw_mksolver │ │ │ │ │ mov r3, #1 │ │ │ │ │ + ldr r6, [sp, #8] │ │ │ │ │ mov r1, r0 │ │ │ │ │ + ldr lr, [sp, #12] │ │ │ │ │ str r3, [r0, #8] │ │ │ │ │ mov r0, r4 │ │ │ │ │ - pop {r4, r5, r6, lr} │ │ │ │ │ + ldrd r4, [sp] │ │ │ │ │ + add sp, sp, #16 │ │ │ │ │ b 0 │ │ │ │ │ R_ARM_JUMP24 fftw_solver_register │ │ │ │ │ - .word 0x00000040 │ │ │ │ │ + .word 0x00000048 │ │ │ │ │ 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: 5284 (bytes into file) │ │ │ │ │ + Start of section headers: 5484 (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 0x14a4: │ │ │ │ │ +There are 15 section headers, starting at offset 0x156c: │ │ │ │ │ │ │ │ │ │ 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 000bc0 00 AX 0 0 4 │ │ │ │ │ - [ 2] .rel.text REL 00000000 00122c 0001c8 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 000041 01 AMS 0 0 4 │ │ │ │ │ - [ 6] .data.rel.ro PROGBITS 00000000 000c35 000010 00 WA 0 0 4 │ │ │ │ │ - [ 7] .rel.data.rel.ro REL 00000000 0013f4 000020 08 I 12 6 4 │ │ │ │ │ - [ 8] .data.rel.ro.local PROGBITS 00000000 000c45 00000c 00 WA 0 0 4 │ │ │ │ │ - [ 9] .rel.data.rel.ro.local REL 00000000 001414 000008 08 I 12 8 4 │ │ │ │ │ - [10] .note.GNU-stack PROGBITS 00000000 000c51 000000 00 0 0 1 │ │ │ │ │ - [11] .ARM.attributes ARM_ATTRIBUTES 00000000 000c51 00002b 00 0 0 1 │ │ │ │ │ - [12] .symtab SYMTAB 00000000 000c7c 000350 10 13 25 4 │ │ │ │ │ - [13] .strtab STRTAB 00000000 000fcc 00025d 00 0 0 1 │ │ │ │ │ - [14] .shstrtab STRTAB 00000000 00141c 000087 00 0 0 1 │ │ │ │ │ + [ 1] .text PROGBITS 00000000 000034 000c88 00 AX 0 0 4 │ │ │ │ │ + [ 2] .rel.text REL 00000000 0012f4 0001c8 08 I 12 1 4 │ │ │ │ │ + [ 3] .data PROGBITS 00000000 000cbc 000000 00 WA 0 0 1 │ │ │ │ │ + [ 4] .bss NOBITS 00000000 000cbc 000000 00 WA 0 0 1 │ │ │ │ │ + [ 5] .rodata.str1.4 PROGBITS 00000000 000cbc 000041 01 AMS 0 0 4 │ │ │ │ │ + [ 6] .data.rel.ro PROGBITS 00000000 000cfd 000010 00 WA 0 0 4 │ │ │ │ │ + [ 7] .rel.data.rel.ro REL 00000000 0014bc 000020 08 I 12 6 4 │ │ │ │ │ + [ 8] .data.rel.ro.local PROGBITS 00000000 000d0d 00000c 00 WA 0 0 4 │ │ │ │ │ + [ 9] .rel.data.rel.ro.local REL 00000000 0014dc 000008 08 I 12 8 4 │ │ │ │ │ + [10] .note.GNU-stack PROGBITS 00000000 000d19 000000 00 0 0 1 │ │ │ │ │ + [11] .ARM.attributes ARM_ATTRIBUTES 00000000 000d19 00002b 00 0 0 1 │ │ │ │ │ + [12] .symtab SYMTAB 00000000 000d44 000350 10 13 25 4 │ │ │ │ │ + [13] .strtab STRTAB 00000000 001094 00025d 00 0 0 1 │ │ │ │ │ + [14] .shstrtab STRTAB 00000000 0014e4 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 53 entries: │ │ │ │ │ Num: Value Size Type Bind Vis Ndx Name │ │ │ │ │ 0: 00000000 0 NOTYPE LOCAL DEFAULT UND │ │ │ │ │ 1: 00000000 0 NOTYPE LOCAL DEFAULT 1 $a │ │ │ │ │ - 2: 00000000 500 FUNC LOCAL DEFAULT 1 apply_ddft_first │ │ │ │ │ + 2: 00000000 560 FUNC LOCAL DEFAULT 1 apply_ddft_first │ │ │ │ │ 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: 000001f4 164 FUNC LOCAL DEFAULT 1 print │ │ │ │ │ - 10: 00000280 0 NOTYPE LOCAL DEFAULT 1 $d │ │ │ │ │ - 11: 00000298 0 NOTYPE LOCAL DEFAULT 1 $a │ │ │ │ │ - 12: 00000298 36 FUNC LOCAL DEFAULT 1 destroy │ │ │ │ │ - 13: 000002bc 1560 FUNC LOCAL DEFAULT 1 mkplan │ │ │ │ │ - 14: 000008b0 0 NOTYPE LOCAL DEFAULT 1 $d │ │ │ │ │ - 15: 00000938 484 FUNC LOCAL DEFAULT 1 apply_ddft_last │ │ │ │ │ - 16: 000008d4 0 NOTYPE LOCAL DEFAULT 1 $a │ │ │ │ │ - 17: 000008d4 100 FUNC LOCAL DEFAULT 1 awake │ │ │ │ │ - 18: 00000bb4 0 NOTYPE LOCAL DEFAULT 1 $d │ │ │ │ │ + 9: 00000230 176 FUNC LOCAL DEFAULT 1 print │ │ │ │ │ + 10: 000002c8 0 NOTYPE LOCAL DEFAULT 1 $d │ │ │ │ │ + 11: 000002e0 0 NOTYPE LOCAL DEFAULT 1 $a │ │ │ │ │ + 12: 000002e0 48 FUNC LOCAL DEFAULT 1 destroy │ │ │ │ │ + 13: 00000310 1592 FUNC LOCAL DEFAULT 1 mkplan │ │ │ │ │ + 14: 00000924 0 NOTYPE LOCAL DEFAULT 1 $d │ │ │ │ │ + 15: 000009bc 524 FUNC LOCAL DEFAULT 1 apply_ddft_last │ │ │ │ │ + 16: 00000948 0 NOTYPE LOCAL DEFAULT 1 $a │ │ │ │ │ + 17: 00000948 116 FUNC LOCAL DEFAULT 1 awake │ │ │ │ │ + 18: 00000c7c 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 │ │ │ │ │ @@ -46,11 +46,11 @@ │ │ │ │ │ 42: 00000000 0 NOTYPE GLOBAL DEFAULT UND __aeabi_i2d │ │ │ │ │ 43: 00000000 0 NOTYPE GLOBAL DEFAULT UND __aeabi_dmul │ │ │ │ │ 44: 00000000 0 NOTYPE GLOBAL DEFAULT UND __aeabi_dadd │ │ │ │ │ 45: 00000000 0 NOTYPE GLOBAL DEFAULT UND fftw_mpi_dft_serial_applicable │ │ │ │ │ 46: 00000000 0 NOTYPE GLOBAL DEFAULT UND fftw_plan_awake │ │ │ │ │ 47: 00000000 0 NOTYPE GLOBAL DEFAULT UND fftw_triggen_destroy │ │ │ │ │ 48: 00000000 0 NOTYPE GLOBAL DEFAULT UND fftw_mktriggen │ │ │ │ │ - 49: 00000b1c 164 FUNC GLOBAL DEFAULT 1 fftw_mpi_dft_rank1_register │ │ │ │ │ + 49: 00000bc8 192 FUNC GLOBAL DEFAULT 1 fftw_mpi_dft_rank1_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_dft_solve │ │ │ │ ├── readelf --wide --relocs {} │ │ │ │ │ @@ -1,71 +1,71 @@ │ │ │ │ │ │ │ │ │ │ -Relocation section '.rel.text' at offset 0x122c contains 57 entries: │ │ │ │ │ +Relocation section '.rel.text' at offset 0x12f4 contains 57 entries: │ │ │ │ │ Offset Info Type Sym. Value Symbol's Name │ │ │ │ │ -00000284 00000503 R_ARM_REL32 00000008 .LC2 │ │ │ │ │ -00000288 00000703 R_ARM_REL32 00000014 .LC4 │ │ │ │ │ -0000028c 00000803 R_ARM_REL32 00000018 .LC5 │ │ │ │ │ -00000290 00000603 R_ARM_REL32 00000010 .LC3 │ │ │ │ │ -00000294 00000403 R_ARM_REL32 00000000 .LC1 │ │ │ │ │ -000002a4 0000191c R_ARM_CALL 00000000 fftw_plan_destroy_internal │ │ │ │ │ -000002ac 0000191c R_ARM_CALL 00000000 fftw_plan_destroy_internal │ │ │ │ │ -000002b8 0000191d R_ARM_JUMP24 00000000 fftw_plan_destroy_internal │ │ │ │ │ -000002dc 00001a1c R_ARM_CALL 00000000 MPI_Comm_size │ │ │ │ │ -0000039c 00001b1c R_ARM_CALL 00000000 fftw_mpi_choose_radix │ │ │ │ │ -000003b4 00001c1c R_ARM_CALL 00000000 MPI_Comm_rank │ │ │ │ │ -000003c0 00001a1c R_ARM_CALL 00000000 MPI_Comm_size │ │ │ │ │ -000003d0 00001d1c R_ARM_CALL 00000000 __aeabi_idiv │ │ │ │ │ -00000408 00001e1c R_ARM_CALL 00000000 fftw_mpi_block │ │ │ │ │ -00000444 00001f1c R_ARM_CALL 00000000 fftw_mpi_mkdtensor │ │ │ │ │ -00000480 0000201c R_ARM_CALL 00000000 fftw_mpi_mkproblem_dft_d │ │ │ │ │ -0000048c 0000211c R_ARM_CALL 00000000 fftw_mkplan_d │ │ │ │ │ -000004a0 0000221c R_ARM_CALL 00000000 fftw_mpi_any_true │ │ │ │ │ -000004e8 0000231c R_ARM_CALL 00000000 fftw_extract_reim │ │ │ │ │ -00000504 0000231c R_ARM_CALL 00000000 fftw_extract_reim │ │ │ │ │ -00000518 0000241c R_ARM_CALL 00000000 fftw_mktensor_1d │ │ │ │ │ -0000052c 0000241c R_ARM_CALL 00000000 fftw_mktensor_1d │ │ │ │ │ -0000054c 0000251c R_ARM_CALL 00000000 fftw_mkproblem_dft_d │ │ │ │ │ -00000558 0000211c R_ARM_CALL 00000000 fftw_mkplan_d │ │ │ │ │ -0000056c 0000221c R_ARM_CALL 00000000 fftw_mpi_any_true │ │ │ │ │ -000005d0 0000261c R_ARM_CALL 00000000 fftw_mpi_mkproblem_transpose │ │ │ │ │ -000005dc 0000211c R_ARM_CALL 00000000 fftw_mkplan_d │ │ │ │ │ -000005f0 0000221c R_ARM_CALL 00000000 fftw_mpi_any_true │ │ │ │ │ -0000060c 0000271c R_ARM_CALL 00000000 fftw_mkplan_rdft │ │ │ │ │ -00000634 0000231c R_ARM_CALL 00000000 fftw_extract_reim │ │ │ │ │ -000006cc 0000281c R_ARM_CALL 00000000 fftw_ops_add │ │ │ │ │ -000006e0 0000291c R_ARM_CALL 00000000 fftw_ops_add2 │ │ │ │ │ -00000708 00002a1c R_ARM_CALL 00000000 __aeabi_i2d │ │ │ │ │ -0000071c 00002b1c R_ARM_CALL 00000000 __aeabi_dmul │ │ │ │ │ -00000734 00002c1c R_ARM_CALL 00000000 __aeabi_dadd │ │ │ │ │ -0000074c 00002b1c R_ARM_CALL 00000000 __aeabi_dmul │ │ │ │ │ -0000075c 00002c1c R_ARM_CALL 00000000 __aeabi_dadd │ │ │ │ │ -00000770 00002c1c R_ARM_CALL 00000000 __aeabi_dadd │ │ │ │ │ -000007cc 0000201c R_ARM_CALL 00000000 fftw_mpi_mkproblem_dft_d │ │ │ │ │ -000007d8 0000211c R_ARM_CALL 00000000 fftw_mkplan_d │ │ │ │ │ -000007ec 0000221c R_ARM_CALL 00000000 fftw_mpi_any_true │ │ │ │ │ -00000800 0000191c R_ARM_CALL 00000000 fftw_plan_destroy_internal │ │ │ │ │ -00000808 0000191c R_ARM_CALL 00000000 fftw_plan_destroy_internal │ │ │ │ │ -00000810 0000191c R_ARM_CALL 00000000 fftw_plan_destroy_internal │ │ │ │ │ -00000850 00001e1c R_ARM_CALL 00000000 fftw_mpi_block │ │ │ │ │ -0000089c 00002d1c R_ARM_CALL 00000000 fftw_mpi_dft_serial_applicable │ │ │ │ │ -000008bc 00001303 R_ARM_REL32 00000000 .data.rel.ro │ │ │ │ │ -000008e4 00002e1c R_ARM_CALL 00000000 fftw_plan_awake │ │ │ │ │ -000008f0 00002e1c R_ARM_CALL 00000000 fftw_plan_awake │ │ │ │ │ -000008fc 00002e1c R_ARM_CALL 00000000 fftw_plan_awake │ │ │ │ │ -0000090c 00002f1c R_ARM_CALL 00000000 fftw_triggen_destroy │ │ │ │ │ -00000928 0000301c R_ARM_CALL 00000000 fftw_mktriggen │ │ │ │ │ -00000b60 0000321c R_ARM_CALL 00000000 fftw_mksolver │ │ │ │ │ -00000b74 0000331c R_ARM_CALL 00000000 fftw_solver_register │ │ │ │ │ -00000b80 0000321c R_ARM_CALL 00000000 fftw_mksolver │ │ │ │ │ -00000b98 0000331c R_ARM_CALL 00000000 fftw_solver_register │ │ │ │ │ -00000bb8 00001603 R_ARM_REL32 00000000 .data.rel.ro.local │ │ │ │ │ +000002cc 00000503 R_ARM_REL32 00000008 .LC2 │ │ │ │ │ +000002d0 00000703 R_ARM_REL32 00000014 .LC4 │ │ │ │ │ +000002d4 00000803 R_ARM_REL32 00000018 .LC5 │ │ │ │ │ +000002d8 00000603 R_ARM_REL32 00000010 .LC3 │ │ │ │ │ +000002dc 00000403 R_ARM_REL32 00000000 .LC1 │ │ │ │ │ +000002f0 0000191c R_ARM_CALL 00000000 fftw_plan_destroy_internal │ │ │ │ │ +000002f8 0000191c R_ARM_CALL 00000000 fftw_plan_destroy_internal │ │ │ │ │ +0000030c 0000191d R_ARM_JUMP24 00000000 fftw_plan_destroy_internal │ │ │ │ │ +00000340 00001a1c R_ARM_CALL 00000000 MPI_Comm_size │ │ │ │ │ +00000414 00001b1c R_ARM_CALL 00000000 fftw_mpi_choose_radix │ │ │ │ │ +0000042c 00001c1c R_ARM_CALL 00000000 MPI_Comm_rank │ │ │ │ │ +00000438 00001a1c R_ARM_CALL 00000000 MPI_Comm_size │ │ │ │ │ +00000448 00001d1c R_ARM_CALL 00000000 __aeabi_idiv │ │ │ │ │ +00000480 00001e1c R_ARM_CALL 00000000 fftw_mpi_block │ │ │ │ │ +000004bc 00001f1c R_ARM_CALL 00000000 fftw_mpi_mkdtensor │ │ │ │ │ +000004f8 0000201c R_ARM_CALL 00000000 fftw_mpi_mkproblem_dft_d │ │ │ │ │ +00000504 0000211c R_ARM_CALL 00000000 fftw_mkplan_d │ │ │ │ │ +00000518 0000221c R_ARM_CALL 00000000 fftw_mpi_any_true │ │ │ │ │ +00000560 0000231c R_ARM_CALL 00000000 fftw_extract_reim │ │ │ │ │ +0000057c 0000231c R_ARM_CALL 00000000 fftw_extract_reim │ │ │ │ │ +00000590 0000241c R_ARM_CALL 00000000 fftw_mktensor_1d │ │ │ │ │ +000005a4 0000241c R_ARM_CALL 00000000 fftw_mktensor_1d │ │ │ │ │ +000005c4 0000251c R_ARM_CALL 00000000 fftw_mkproblem_dft_d │ │ │ │ │ +000005d0 0000211c R_ARM_CALL 00000000 fftw_mkplan_d │ │ │ │ │ +000005e4 0000221c R_ARM_CALL 00000000 fftw_mpi_any_true │ │ │ │ │ +00000648 0000261c R_ARM_CALL 00000000 fftw_mpi_mkproblem_transpose │ │ │ │ │ +00000654 0000211c R_ARM_CALL 00000000 fftw_mkplan_d │ │ │ │ │ +00000668 0000221c R_ARM_CALL 00000000 fftw_mpi_any_true │ │ │ │ │ +00000684 0000271c R_ARM_CALL 00000000 fftw_mkplan_rdft │ │ │ │ │ +000006ac 0000231c R_ARM_CALL 00000000 fftw_extract_reim │ │ │ │ │ +00000744 0000281c R_ARM_CALL 00000000 fftw_ops_add │ │ │ │ │ +00000758 0000291c R_ARM_CALL 00000000 fftw_ops_add2 │ │ │ │ │ +00000780 00002a1c R_ARM_CALL 00000000 __aeabi_i2d │ │ │ │ │ +00000794 00002b1c R_ARM_CALL 00000000 __aeabi_dmul │ │ │ │ │ +000007ac 00002c1c R_ARM_CALL 00000000 __aeabi_dadd │ │ │ │ │ +000007c4 00002b1c R_ARM_CALL 00000000 __aeabi_dmul │ │ │ │ │ +000007d4 00002c1c R_ARM_CALL 00000000 __aeabi_dadd │ │ │ │ │ +000007e8 00002c1c R_ARM_CALL 00000000 __aeabi_dadd │ │ │ │ │ +00000840 0000201c R_ARM_CALL 00000000 fftw_mpi_mkproblem_dft_d │ │ │ │ │ +0000084c 0000211c R_ARM_CALL 00000000 fftw_mkplan_d │ │ │ │ │ +00000860 0000221c R_ARM_CALL 00000000 fftw_mpi_any_true │ │ │ │ │ +00000874 0000191c R_ARM_CALL 00000000 fftw_plan_destroy_internal │ │ │ │ │ +0000087c 0000191c R_ARM_CALL 00000000 fftw_plan_destroy_internal │ │ │ │ │ +00000884 0000191c R_ARM_CALL 00000000 fftw_plan_destroy_internal │ │ │ │ │ +000008c4 00001e1c R_ARM_CALL 00000000 fftw_mpi_block │ │ │ │ │ +00000910 00002d1c R_ARM_CALL 00000000 fftw_mpi_dft_serial_applicable │ │ │ │ │ +00000930 00001303 R_ARM_REL32 00000000 .data.rel.ro │ │ │ │ │ +00000960 00002e1c R_ARM_CALL 00000000 fftw_plan_awake │ │ │ │ │ +0000096c 00002e1c R_ARM_CALL 00000000 fftw_plan_awake │ │ │ │ │ +00000978 00002e1c R_ARM_CALL 00000000 fftw_plan_awake │ │ │ │ │ +00000988 00002f1c R_ARM_CALL 00000000 fftw_triggen_destroy │ │ │ │ │ +000009b0 0000301c R_ARM_CALL 00000000 fftw_mktriggen │ │ │ │ │ +00000c18 0000321c R_ARM_CALL 00000000 fftw_mksolver │ │ │ │ │ +00000c2c 0000331c R_ARM_CALL 00000000 fftw_solver_register │ │ │ │ │ +00000c38 0000321c R_ARM_CALL 00000000 fftw_mksolver │ │ │ │ │ +00000c50 0000331c R_ARM_CALL 00000000 fftw_solver_register │ │ │ │ │ +00000c80 00001603 R_ARM_REL32 00000000 .data.rel.ro.local │ │ │ │ │ │ │ │ │ │ -Relocation section '.rel.data.rel.ro' at offset 0x13f4 contains 4 entries: │ │ │ │ │ +Relocation section '.rel.data.rel.ro' at offset 0x14bc contains 4 entries: │ │ │ │ │ Offset Info Type Sym. Value Symbol's Name │ │ │ │ │ 00000000 00003402 R_ARM_ABS32 00000000 fftw_mpi_dft_solve │ │ │ │ │ -00000004 00001102 R_ARM_ABS32 000008d4 awake │ │ │ │ │ -00000008 00000902 R_ARM_ABS32 000001f4 print │ │ │ │ │ -0000000c 00000c02 R_ARM_ABS32 00000298 destroy │ │ │ │ │ +00000004 00001102 R_ARM_ABS32 00000948 awake │ │ │ │ │ +00000008 00000902 R_ARM_ABS32 00000230 print │ │ │ │ │ +0000000c 00000c02 R_ARM_ABS32 000002e0 destroy │ │ │ │ │ │ │ │ │ │ -Relocation section '.rel.data.rel.ro.local' at offset 0x1414 contains 1 entry: │ │ │ │ │ +Relocation section '.rel.data.rel.ro.local' at offset 0x14dc contains 1 entry: │ │ │ │ │ Offset Info Type Sym. Value Symbol's Name │ │ │ │ │ -00000004 00000d02 R_ARM_ABS32 000002bc mkplan │ │ │ │ │ +00000004 00000d02 R_ARM_ABS32 00000310 mkplan │ │ │ │ ├── objdump --line-numbers --disassemble --demangle --reloc --no-show-raw-insn --section=.text {} │ │ │ │ │ @@ -1,521 +1,551 @@ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ Disassembly of section .text: │ │ │ │ │ │ │ │ │ │ 00000000 : │ │ │ │ │ apply_ddft_first(): │ │ │ │ │ - push {r4, r5, r6, r7, r8, r9, sl, fp, lr} │ │ │ │ │ + strd r4, [sp, #-36]! @ 0xffffffdc │ │ │ │ │ mov r4, r0 │ │ │ │ │ ldr r0, [r0, #72] @ 0x48 │ │ │ │ │ - sub sp, sp, #100 @ 0x64 │ │ │ │ │ - ldr r3, [r0, #56] @ 0x38 │ │ │ │ │ + strd r6, [sp, #8] │ │ │ │ │ + strd r8, [sp, #16] │ │ │ │ │ mov r9, r1 │ │ │ │ │ + strd sl, [sp, #24] │ │ │ │ │ mov fp, r2 │ │ │ │ │ + str lr, [sp, #32] │ │ │ │ │ + sub sp, sp, #100 @ 0x64 │ │ │ │ │ + ldr r3, [r0, #56] @ 0x38 │ │ │ │ │ blx r3 │ │ │ │ │ - ldr r2, [r4, #88] @ 0x58 │ │ │ │ │ + ldr r8, [r4, #64] @ 0x40 │ │ │ │ │ ldr r5, [r4, #68] @ 0x44 │ │ │ │ │ + ldr r2, [r4, #88] @ 0x58 │ │ │ │ │ + ldr r0, [r4, #112] @ 0x70 │ │ │ │ │ clz r3, r5 │ │ │ │ │ lsr r3, r3, #5 │ │ │ │ │ + ldr r1, [r4, #84] @ 0x54 │ │ │ │ │ cmp r2, #0 │ │ │ │ │ orrne r3, r3, #1 │ │ │ │ │ + ldr r2, [r4, #80] @ 0x50 │ │ │ │ │ cmp r3, #0 │ │ │ │ │ - ldr ip, [r4, #112] @ 0x70 │ │ │ │ │ + str r0, [sp, #32] │ │ │ │ │ ldr r3, [r4, #76] @ 0x4c │ │ │ │ │ - str r3, [sp, #60] @ 0x3c │ │ │ │ │ - str ip, [sp, #32] │ │ │ │ │ - ldr r3, [r4, #100] @ 0x64 │ │ │ │ │ - ldr ip, [r4, #96] @ 0x60 │ │ │ │ │ movne r9, fp │ │ │ │ │ - cmp r3, ip │ │ │ │ │ - ldr r2, [r4, #80] @ 0x50 │ │ │ │ │ - ldr r1, [r4, #84] @ 0x54 │ │ │ │ │ - ldr r0, [r4, #104] @ 0x68 │ │ │ │ │ - ldr r8, [r4, #64] @ 0x40 │ │ │ │ │ ldr r7, [r4, #92] @ 0x5c │ │ │ │ │ - str ip, [sp, #28] │ │ │ │ │ - blt 1c8 │ │ │ │ │ - lsl r0, r0, #3 │ │ │ │ │ + ldr r0, [r4, #96] @ 0x60 │ │ │ │ │ + ldr ip, [r4, #104] @ 0x68 │ │ │ │ │ + str r3, [sp, #60] @ 0x3c │ │ │ │ │ + ldr r3, [r4, #100] @ 0x64 │ │ │ │ │ + str r0, [sp, #28] │ │ │ │ │ + cmp r3, r0 │ │ │ │ │ + blt 1dc │ │ │ │ │ sub r2, r2, r1 │ │ │ │ │ - add r6, fp, r1, lsl #3 │ │ │ │ │ + lsl r0, r1, #3 │ │ │ │ │ + add sl, sp, #80 @ 0x50 │ │ │ │ │ lsl r2, r2, #3 │ │ │ │ │ - str r0, [sp, #56] @ 0x38 │ │ │ │ │ - add r0, r9, r1, lsl #3 │ │ │ │ │ + add r6, fp, r0 │ │ │ │ │ + lsl ip, ip, #3 │ │ │ │ │ + add r0, r9, r0 │ │ │ │ │ mov r4, r6 │ │ │ │ │ + mov r6, r0 │ │ │ │ │ str r2, [sp, #40] @ 0x28 │ │ │ │ │ - add sl, sp, #80 @ 0x50 │ │ │ │ │ lsl r2, r7, #4 │ │ │ │ │ - mov r6, r0 │ │ │ │ │ - str r2, [sp, #36] @ 0x24 │ │ │ │ │ - str r5, [sp, #68] @ 0x44 │ │ │ │ │ str r3, [sp, #64] @ 0x40 │ │ │ │ │ + str r5, [sp, #68] @ 0x44 │ │ │ │ │ + str r2, [sp, #36] @ 0x24 │ │ │ │ │ + str ip, [sp, #56] @ 0x38 │ │ │ │ │ str r9, [sp, #72] @ 0x48 │ │ │ │ │ str fp, [sp, #76] @ 0x4c │ │ │ │ │ ldr r3, [sp, #40] @ 0x28 │ │ │ │ │ add ip, r4, r3 │ │ │ │ │ ldr r3, [sp, #32] │ │ │ │ │ str ip, [sp, #44] @ 0x2c │ │ │ │ │ cmp r3, #0 │ │ │ │ │ - ble 17c │ │ │ │ │ + ble 190 │ │ │ │ │ cmp r7, #0 │ │ │ │ │ - ble 17c │ │ │ │ │ - mov fp, #0 │ │ │ │ │ + ble 190 │ │ │ │ │ ldr r9, [r8, #8] │ │ │ │ │ + mov fp, #0 │ │ │ │ │ mov lr, r4 │ │ │ │ │ mov r0, fp │ │ │ │ │ str r4, [sp, #48] @ 0x30 │ │ │ │ │ str r6, [sp, #52] @ 0x34 │ │ │ │ │ add r5, ip, #16 │ │ │ │ │ add r4, lr, #16 │ │ │ │ │ - mov r6, #0 │ │ │ │ │ str r0, [sp, #16] │ │ │ │ │ + mov r6, #0 │ │ │ │ │ str ip, [sp, #20] │ │ │ │ │ str lr, [sp, #24] │ │ │ │ │ ldrd r2, [r5, #-16] │ │ │ │ │ - str sl, [sp, #8] │ │ │ │ │ - ldrd r0, [r4, #-16] │ │ │ │ │ add r6, r6, #1 │ │ │ │ │ + add r5, r5, #16 │ │ │ │ │ + str sl, [sp, #8] │ │ │ │ │ + add r4, r4, #16 │ │ │ │ │ + ldrd r0, [r4, #-32] @ 0xffffffe0 │ │ │ │ │ strd r0, [sp] │ │ │ │ │ mov r1, fp │ │ │ │ │ mov r0, r8 │ │ │ │ │ blx r9 │ │ │ │ │ ldrd r2, [sp, #80] @ 0x50 │ │ │ │ │ cmp r7, r6 │ │ │ │ │ - strd r2, [r5, #-16] │ │ │ │ │ + strd r2, [r5, #-32] @ 0xffffffe0 │ │ │ │ │ ldrd r2, [sp, #88] @ 0x58 │ │ │ │ │ - add r5, r5, #16 │ │ │ │ │ - strd r2, [r4, #-16] │ │ │ │ │ - add r4, r4, #16 │ │ │ │ │ - bne 108 │ │ │ │ │ + strd r2, [r4, #-32] @ 0xffffffe0 │ │ │ │ │ + bne 11c │ │ │ │ │ add r0, sp, #16 │ │ │ │ │ - ldm r0, {r0, ip, lr} │ │ │ │ │ ldr r3, [sp, #36] @ 0x24 │ │ │ │ │ - add r0, r0, #1 │ │ │ │ │ + ldm r0, {r0, ip, lr} │ │ │ │ │ add lr, lr, r3 │ │ │ │ │ add ip, ip, r3 │ │ │ │ │ ldr r3, [sp, #28] │ │ │ │ │ + add r0, r0, #1 │ │ │ │ │ add fp, fp, r3 │ │ │ │ │ ldr r3, [sp, #32] │ │ │ │ │ cmp r3, r0 │ │ │ │ │ - bne f0 │ │ │ │ │ + bne 104 │ │ │ │ │ ldr r4, [sp, #48] @ 0x30 │ │ │ │ │ ldr r6, [sp, #52] @ 0x34 │ │ │ │ │ - ldr r0, [sp, #60] @ 0x3c │ │ │ │ │ - ldr r3, [sp, #40] @ 0x28 │ │ │ │ │ mov r2, r4 │ │ │ │ │ - add r3, r6, r3 │ │ │ │ │ str r6, [sp] │ │ │ │ │ + ldr r3, [sp, #40] @ 0x28 │ │ │ │ │ ldr r1, [sp, #44] @ 0x2c │ │ │ │ │ + ldr r0, [sp, #60] @ 0x3c │ │ │ │ │ + add r3, r6, r3 │ │ │ │ │ ldr r5, [r0, #56] @ 0x38 │ │ │ │ │ blx r5 │ │ │ │ │ - ldr r2, [sp, #56] @ 0x38 │ │ │ │ │ ldr r3, [sp, #28] │ │ │ │ │ + ldr r2, [sp, #56] @ 0x38 │ │ │ │ │ + add r3, r3, #1 │ │ │ │ │ add r4, r4, r2 │ │ │ │ │ add r6, r6, r2 │ │ │ │ │ ldr r2, [sp, #64] @ 0x40 │ │ │ │ │ - add r3, r3, #1 │ │ │ │ │ - cmp r2, r3 │ │ │ │ │ str r3, [sp, #28] │ │ │ │ │ - bge b8 │ │ │ │ │ + cmp r2, r3 │ │ │ │ │ + bge cc │ │ │ │ │ add r5, sp, #68 @ 0x44 │ │ │ │ │ ldm r5, {r5, r9, fp} │ │ │ │ │ cmp r5, #0 │ │ │ │ │ - beq 1ec │ │ │ │ │ + beq 214 │ │ │ │ │ mov r2, fp │ │ │ │ │ mov r1, r9 │ │ │ │ │ - mov r0, r5 │ │ │ │ │ ldr r3, [r5, #56] @ 0x38 │ │ │ │ │ + mov r0, r5 │ │ │ │ │ add sp, sp, #100 @ 0x64 │ │ │ │ │ - pop {r4, r5, r6, r7, r8, r9, sl, fp, lr} │ │ │ │ │ + ldrd r4, [sp] │ │ │ │ │ + ldrd r6, [sp, #8] │ │ │ │ │ + ldrd r8, [sp, #16] │ │ │ │ │ + ldrd sl, [sp, #24] │ │ │ │ │ + ldr lr, [sp, #32] │ │ │ │ │ + add sp, sp, #36 @ 0x24 │ │ │ │ │ bx r3 │ │ │ │ │ add sp, sp, #100 @ 0x64 │ │ │ │ │ - pop {r4, r5, r6, r7, r8, r9, sl, fp, pc} │ │ │ │ │ + ldrd r4, [sp] │ │ │ │ │ + ldrd r6, [sp, #8] │ │ │ │ │ + ldrd r8, [sp, #16] │ │ │ │ │ + ldrd sl, [sp, #24] │ │ │ │ │ + add sp, sp, #32 │ │ │ │ │ + pop {pc} @ (ldr pc, [sp], #4) │ │ │ │ │ │ │ │ │ │ -000001f4 : │ │ │ │ │ +00000230 : │ │ │ │ │ print(): │ │ │ │ │ mov ip, r0 │ │ │ │ │ - ldr r3, [pc, #128] @ 280 │ │ │ │ │ - push {r4, lr} │ │ │ │ │ + ldr r3, [pc, #140] @ 2c8 │ │ │ │ │ mov r0, r1 │ │ │ │ │ + str r4, [sp, #-8]! │ │ │ │ │ ldr r4, [r1] │ │ │ │ │ + str lr, [sp, #4] │ │ │ │ │ + sub sp, sp, #16 │ │ │ │ │ ldr r1, [ip, #56] @ 0x38 │ │ │ │ │ add r3, pc, r3 │ │ │ │ │ - cmp r1, r3 │ │ │ │ │ ldr r2, [ip, #112] @ 0x70 │ │ │ │ │ - sub sp, sp, #16 │ │ │ │ │ - beq 274 │ │ │ │ │ - ldr r3, [pc, #92] @ 284 │ │ │ │ │ + cmp r1, r3 │ │ │ │ │ + beq 2bc │ │ │ │ │ + ldr r3, [pc, #100] @ 2cc │ │ │ │ │ add r3, pc, r3 │ │ │ │ │ ldr r1, [ip, #88] @ 0x58 │ │ │ │ │ cmp r1, #2 │ │ │ │ │ - beq 268 │ │ │ │ │ - ldr r1, [pc, #76] @ 288 │ │ │ │ │ + beq 2b0 │ │ │ │ │ + ldr r1, [pc, #84] @ 2d0 │ │ │ │ │ add r1, pc, r1 │ │ │ │ │ ldr lr, [ip, #68] @ 0x44 │ │ │ │ │ str lr, [sp, #12] │ │ │ │ │ ldr lr, [ip, #76] @ 0x4c │ │ │ │ │ str lr, [sp, #8] │ │ │ │ │ ldr ip, [ip, #72] @ 0x48 │ │ │ │ │ stm sp, {r1, ip} │ │ │ │ │ - ldr r1, [pc, #48] @ 28c │ │ │ │ │ + ldr r1, [pc, #56] @ 2d4 │ │ │ │ │ add r1, pc, r1 │ │ │ │ │ blx r4 │ │ │ │ │ add sp, sp, #16 │ │ │ │ │ - pop {r4, pc} │ │ │ │ │ - ldr r1, [pc, #32] @ 290 │ │ │ │ │ + ldr r4, [sp] │ │ │ │ │ + add sp, sp, #4 │ │ │ │ │ + pop {pc} @ (ldr pc, [sp], #4) │ │ │ │ │ + ldr r1, [pc, #32] @ 2d8 │ │ │ │ │ add r1, pc, r1 │ │ │ │ │ - b 23c │ │ │ │ │ - ldr r3, [pc, #24] @ 294 │ │ │ │ │ + b 27c │ │ │ │ │ + ldr r3, [pc, #24] @ 2dc │ │ │ │ │ add r3, pc, r3 │ │ │ │ │ - b 228 │ │ │ │ │ - .word 0xfffffdec │ │ │ │ │ - .word 0x00000058 │ │ │ │ │ + b 268 │ │ │ │ │ + .word 0xfffffda8 │ │ │ │ │ + .word 0x00000060 │ │ │ │ │ R_ARM_REL32 .LC2 │ │ │ │ │ - .word 0x00000048 │ │ │ │ │ + .word 0x00000050 │ │ │ │ │ R_ARM_REL32 .LC4 │ │ │ │ │ - .word 0x0000002c │ │ │ │ │ + .word 0x00000034 │ │ │ │ │ R_ARM_REL32 .LC5 │ │ │ │ │ .word 0x0000001c │ │ │ │ │ R_ARM_REL32 .LC3 │ │ │ │ │ .word 0x00000014 │ │ │ │ │ R_ARM_REL32 .LC1 │ │ │ │ │ │ │ │ │ │ -00000298 : │ │ │ │ │ +000002e0 : │ │ │ │ │ destroy(): │ │ │ │ │ - push {r4, lr} │ │ │ │ │ + str r4, [sp, #-8]! │ │ │ │ │ mov r4, r0 │ │ │ │ │ ldr r0, [r0, #68] @ 0x44 │ │ │ │ │ + str lr, [sp, #4] │ │ │ │ │ bl 0 │ │ │ │ │ R_ARM_CALL fftw_plan_destroy_internal │ │ │ │ │ ldr r0, [r4, #76] @ 0x4c │ │ │ │ │ bl 0 │ │ │ │ │ R_ARM_CALL fftw_plan_destroy_internal │ │ │ │ │ + ldr lr, [sp, #4] │ │ │ │ │ ldr r0, [r4, #72] @ 0x48 │ │ │ │ │ - pop {r4, lr} │ │ │ │ │ + ldr r4, [sp] │ │ │ │ │ + add sp, sp, #8 │ │ │ │ │ b 0 │ │ │ │ │ R_ARM_JUMP24 fftw_plan_destroy_internal │ │ │ │ │ │ │ │ │ │ -000002bc : │ │ │ │ │ +00000310 : │ │ │ │ │ mkplan(): │ │ │ │ │ - push {r4, r5, r6, r7, r8, r9, sl, fp, lr} │ │ │ │ │ - sub sp, sp, #100 @ 0x64 │ │ │ │ │ + strd r4, [sp, #-36]! @ 0xffffffdc │ │ │ │ │ mov r4, r1 │ │ │ │ │ - add r5, sp, #76 @ 0x4c │ │ │ │ │ + strd r6, [sp, #8] │ │ │ │ │ mov r7, r0 │ │ │ │ │ - mov r1, r5 │ │ │ │ │ - ldr r0, [r4, #28] │ │ │ │ │ mov r6, r2 │ │ │ │ │ + strd r8, [sp, #16] │ │ │ │ │ + strd sl, [sp, #24] │ │ │ │ │ + str lr, [sp, #32] │ │ │ │ │ + sub sp, sp, #100 @ 0x64 │ │ │ │ │ + add r5, sp, #76 @ 0x4c │ │ │ │ │ + ldr r0, [r4, #28] │ │ │ │ │ + mov r1, r5 │ │ │ │ │ bl 0 │ │ │ │ │ R_ARM_CALL MPI_Comm_size │ │ │ │ │ ldr r3, [r4, #4] │ │ │ │ │ ldr r3, [r3] │ │ │ │ │ cmp r3, #1 │ │ │ │ │ - beq 2fc │ │ │ │ │ + beq 374 │ │ │ │ │ mov r0, #0 │ │ │ │ │ add sp, sp, #100 @ 0x64 │ │ │ │ │ - pop {r4, r5, r6, r7, r8, r9, sl, fp, pc} │ │ │ │ │ + ldrd r4, [sp] │ │ │ │ │ + ldrd r6, [sp, #8] │ │ │ │ │ + ldrd r8, [sp, #16] │ │ │ │ │ + ldrd sl, [sp, #24] │ │ │ │ │ + add sp, sp, #32 │ │ │ │ │ + pop {pc} @ (ldr pc, [sp], #4) │ │ │ │ │ ldr r2, [r4, #24] │ │ │ │ │ cmp r2, #3 │ │ │ │ │ - bhi 2f0 │ │ │ │ │ + bhi 354 │ │ │ │ │ ldr r3, [r7, #12] │ │ │ │ │ cmp r3, #0 │ │ │ │ │ - beq 330 │ │ │ │ │ + beq 3a8 │ │ │ │ │ ldr r3, [r6, #164] @ 0xa4 │ │ │ │ │ tst r3, #4096 @ 0x1000 │ │ │ │ │ - bne 2f0 │ │ │ │ │ + bne 354 │ │ │ │ │ ldr r1, [r4, #12] │ │ │ │ │ ldr r3, [r4, #16] │ │ │ │ │ cmp r1, r3 │ │ │ │ │ - beq 2f0 │ │ │ │ │ + beq 354 │ │ │ │ │ tst r2, #1 │ │ │ │ │ - beq 784 │ │ │ │ │ - ldr r3, [pc, #1392] @ 8b0 │ │ │ │ │ + beq 7f8 │ │ │ │ │ + ldr r3, [pc, #1388] @ 924 │ │ │ │ │ ldr r1, [r7, #8] │ │ │ │ │ add r3, pc, r3 │ │ │ │ │ cmp r1, r3 │ │ │ │ │ - bne 2f0 │ │ │ │ │ + bne 354 │ │ │ │ │ tst r2, #2 │ │ │ │ │ - bne 2f0 │ │ │ │ │ + bne 354 │ │ │ │ │ ldr r3, [r6, #164] @ 0xa4 │ │ │ │ │ tst r3, #8 │ │ │ │ │ - bne 898 │ │ │ │ │ - ldr r3, [sp, #76] @ 0x4c │ │ │ │ │ + bne 90c │ │ │ │ │ ldr r1, [r4, #8] │ │ │ │ │ + ldr r3, [sp, #76] @ 0x4c │ │ │ │ │ cmp r1, r3 │ │ │ │ │ - blt 378 │ │ │ │ │ + blt 3f0 │ │ │ │ │ cmp r2, #0 │ │ │ │ │ - beq 2f0 │ │ │ │ │ + beq 354 │ │ │ │ │ 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] │ │ │ │ │ - str r0, [sp, #4] │ │ │ │ │ str r2, [sp] │ │ │ │ │ + str r0, [sp, #4] │ │ │ │ │ ldmib r1, {r0, r1, r2} │ │ │ │ │ bl 0 │ │ │ │ │ R_ARM_CALL fftw_mpi_choose_radix │ │ │ │ │ subs r8, r0, #0 │ │ │ │ │ str r8, [sp, #40] @ 0x28 │ │ │ │ │ - beq 2f0 │ │ │ │ │ - add r1, sp, #72 @ 0x48 │ │ │ │ │ + beq 354 │ │ │ │ │ ldr r0, [r4, #28] │ │ │ │ │ + add r1, sp, #72 @ 0x48 │ │ │ │ │ bl 0 │ │ │ │ │ R_ARM_CALL MPI_Comm_rank │ │ │ │ │ - mov r1, r5 │ │ │ │ │ ldr r0, [r4, #28] │ │ │ │ │ + mov r1, r5 │ │ │ │ │ bl 0 │ │ │ │ │ R_ARM_CALL MPI_Comm_size │ │ │ │ │ ldr r3, [r4, #4] │ │ │ │ │ mov r1, r8 │ │ │ │ │ ldr r0, [r3, #4] │ │ │ │ │ bl 0 <__aeabi_idiv> │ │ │ │ │ R_ARM_CALL __aeabi_idiv │ │ │ │ │ - ldr r3, [pc, #1240] @ 8b4 │ │ │ │ │ + ldr r3, [pc, #1236] @ 928 │ │ │ │ │ + str r0, [sp, #28] │ │ │ │ │ ldr r8, [r7, #8] │ │ │ │ │ + ldr r2, [sp, #72] @ 0x48 │ │ │ │ │ add r3, pc, r3 │ │ │ │ │ cmp r8, r3 │ │ │ │ │ - ldr r2, [sp, #72] @ 0x48 │ │ │ │ │ moveq r9, #1 │ │ │ │ │ movne r9, #0 │ │ │ │ │ - str r0, [sp, #28] │ │ │ │ │ - beq 848 │ │ │ │ │ + beq 8bc │ │ │ │ │ ldr r5, [sp, #40] @ 0x28 │ │ │ │ │ ldrd sl, [sp, #80] @ 0x50 │ │ │ │ │ mov r0, r5 │ │ │ │ │ mov r1, sl │ │ │ │ │ bl 0 │ │ │ │ │ R_ARM_CALL fftw_mpi_block │ │ │ │ │ ldr r3, [sp, #28] │ │ │ │ │ - str r5, [sp, #36] @ 0x24 │ │ │ │ │ str r3, [sp, #24] │ │ │ │ │ + str r5, [sp, #36] @ 0x24 │ │ │ │ │ str r0, [sp, #44] @ 0x2c │ │ │ │ │ ldr r3, [r7, #12] │ │ │ │ │ cmp r3, #0 │ │ │ │ │ - bne 818 │ │ │ │ │ + bne 88c │ │ │ │ │ ldr r3, [r6, #164] @ 0xa4 │ │ │ │ │ and r3, r3, #4096 @ 0x1000 │ │ │ │ │ cmp r3, #0 │ │ │ │ │ movne r5, r9 │ │ │ │ │ orreq r5, r9, #1 │ │ │ │ │ str r3, [sp, #32] │ │ │ │ │ mov r0, #1 │ │ │ │ │ bl 0 │ │ │ │ │ R_ARM_CALL fftw_mpi_mkdtensor │ │ │ │ │ ldr r2, [sp, #36] @ 0x24 │ │ │ │ │ - ldr r1, [r4, #8] │ │ │ │ │ - ldr ip, [r4, #20] │ │ │ │ │ mov lr, #16 │ │ │ │ │ cmp r5, #0 │ │ │ │ │ + ldr r1, [r4, #8] │ │ │ │ │ ldr r3, [r4, #16] │ │ │ │ │ stmib r0, {r2, sl, fp} │ │ │ │ │ ldr r2, [sp, #24] │ │ │ │ │ + ldr ip, [r4, #20] │ │ │ │ │ mul r2, r1, r2 │ │ │ │ │ mov r1, r2 │ │ │ │ │ ldr r2, [r4, #28] │ │ │ │ │ stm sp, {r2, ip, lr} │ │ │ │ │ - beq 7c8 │ │ │ │ │ + beq 83c │ │ │ │ │ ldr r2, [r4, #12] │ │ │ │ │ bl 0 │ │ │ │ │ R_ARM_CALL fftw_mpi_mkproblem_dft_d │ │ │ │ │ mov r1, r0 │ │ │ │ │ mov r0, r6 │ │ │ │ │ bl 0 │ │ │ │ │ R_ARM_CALL fftw_mkplan_d │ │ │ │ │ - ldr r1, [r4, #28] │ │ │ │ │ mov sl, r0 │ │ │ │ │ clz r0, r0 │ │ │ │ │ + ldr r1, [r4, #28] │ │ │ │ │ lsr r0, r0, #5 │ │ │ │ │ bl 0 │ │ │ │ │ R_ARM_CALL fftw_mpi_any_true │ │ │ │ │ cmp r0, #0 │ │ │ │ │ - bne 88c │ │ │ │ │ - ldr r3, [pc, #1028] @ 8b8 │ │ │ │ │ + bne 900 │ │ │ │ │ + ldr r3, [pc, #1024] @ 92c │ │ │ │ │ add r3, pc, r3 │ │ │ │ │ cmp r8, r3 │ │ │ │ │ - bne 7a4 │ │ │ │ │ + bne 818 │ │ │ │ │ ldr r3, [sp, #32] │ │ │ │ │ ldr r1, [r4, #16] │ │ │ │ │ cmp r3, #0 │ │ │ │ │ - bne 7c0 │ │ │ │ │ + bne 834 │ │ │ │ │ ldr r3, [r4, #24] │ │ │ │ │ cmp r3, #0 │ │ │ │ │ - bne 7c0 │ │ │ │ │ + bne 834 │ │ │ │ │ ldr r5, [r4, #12] │ │ │ │ │ - ldr r0, [r4, #20] │ │ │ │ │ add r3, sp, #60 @ 0x3c │ │ │ │ │ add r2, sp, #56 @ 0x38 │ │ │ │ │ + ldr r0, [r4, #20] │ │ │ │ │ bl 0 │ │ │ │ │ R_ARM_CALL fftw_extract_reim │ │ │ │ │ add r3, sp, #68 @ 0x44 │ │ │ │ │ add r2, sp, #64 @ 0x40 │ │ │ │ │ - mov r1, r5 │ │ │ │ │ ldr r0, [r4, #20] │ │ │ │ │ - str r3, [sp, #52] @ 0x34 │ │ │ │ │ + mov r1, r5 │ │ │ │ │ str r2, [sp, #48] @ 0x30 │ │ │ │ │ + str r3, [sp, #52] @ 0x34 │ │ │ │ │ bl 0 │ │ │ │ │ R_ARM_CALL fftw_extract_reim │ │ │ │ │ ldr r2, [r4, #8] │ │ │ │ │ ldr r0, [sp, #24] │ │ │ │ │ lsl r2, r2, #1 │ │ │ │ │ mov r1, r2 │ │ │ │ │ bl 0 │ │ │ │ │ R_ARM_CALL fftw_mktensor_1d │ │ │ │ │ mov r2, #2 │ │ │ │ │ - mov r1, r2 │ │ │ │ │ mov r5, r0 │ │ │ │ │ ldr r0, [r4, #8] │ │ │ │ │ + mov r1, r2 │ │ │ │ │ bl 0 │ │ │ │ │ R_ARM_CALL fftw_mktensor_1d │ │ │ │ │ ldr r3, [sp, #68] @ 0x44 │ │ │ │ │ + mov r1, r0 │ │ │ │ │ + mov r0, r5 │ │ │ │ │ str r3, [sp, #4] │ │ │ │ │ ldr r3, [sp, #64] @ 0x40 │ │ │ │ │ str r3, [sp] │ │ │ │ │ ldrd r2, [sp, #56] @ 0x38 │ │ │ │ │ - mov r1, r0 │ │ │ │ │ - mov r0, r5 │ │ │ │ │ bl 0 │ │ │ │ │ R_ARM_CALL fftw_mkproblem_dft_d │ │ │ │ │ mov r1, r0 │ │ │ │ │ mov r0, r6 │ │ │ │ │ bl 0 │ │ │ │ │ R_ARM_CALL fftw_mkplan_d │ │ │ │ │ - ldr r1, [r4, #28] │ │ │ │ │ mov fp, r0 │ │ │ │ │ clz r0, r0 │ │ │ │ │ + ldr r1, [r4, #28] │ │ │ │ │ lsr r0, r0, #5 │ │ │ │ │ bl 0 │ │ │ │ │ R_ARM_CALL fftw_mpi_any_true │ │ │ │ │ subs r5, r0, #0 │ │ │ │ │ - bne 884 │ │ │ │ │ + bne 8f8 │ │ │ │ │ ldr r3, [r4, #24] │ │ │ │ │ cmp r3, #0 │ │ │ │ │ - bne 5fc │ │ │ │ │ + bne 674 │ │ │ │ │ ldr r3, [sp, #32] │ │ │ │ │ ldr r2, [r4, #8] │ │ │ │ │ + ldr r1, [r4, #16] │ │ │ │ │ cmp r3, #0 │ │ │ │ │ moveq r9, #0 │ │ │ │ │ andne r9, r9, #1 │ │ │ │ │ cmp r9, #0 │ │ │ │ │ - ldr r1, [r4, #16] │ │ │ │ │ lsl r2, r2, #1 │ │ │ │ │ - beq 828 │ │ │ │ │ + beq 89c │ │ │ │ │ mov r3, r1 │ │ │ │ │ - ldr r0, [sp, #92] @ 0x5c │ │ │ │ │ ldr ip, [sp, #84] @ 0x54 │ │ │ │ │ + ldr r0, [sp, #92] @ 0x5c │ │ │ │ │ mov lr, #0 │ │ │ │ │ str lr, [sp, #16] │ │ │ │ │ ldr lr, [r4, #28] │ │ │ │ │ str r1, [sp] │ │ │ │ │ - stmib sp, {r0, ip, lr} │ │ │ │ │ ldr r1, [sp, #40] @ 0x28 │ │ │ │ │ + stmib sp, {r0, ip, lr} │ │ │ │ │ ldr r0, [sp, #28] │ │ │ │ │ bl 0 │ │ │ │ │ R_ARM_CALL fftw_mpi_mkproblem_transpose │ │ │ │ │ mov r1, r0 │ │ │ │ │ mov r0, r6 │ │ │ │ │ bl 0 │ │ │ │ │ R_ARM_CALL fftw_mkplan_d │ │ │ │ │ - ldr r1, [r4, #28] │ │ │ │ │ mov r5, r0 │ │ │ │ │ clz r0, r0 │ │ │ │ │ + ldr r1, [r4, #28] │ │ │ │ │ lsr r0, r0, #5 │ │ │ │ │ bl 0 │ │ │ │ │ R_ARM_CALL fftw_mpi_any_true │ │ │ │ │ cmp r0, #0 │ │ │ │ │ - bne 7fc │ │ │ │ │ - ldr r1, [pc, #696] @ 8bc │ │ │ │ │ + bne 870 │ │ │ │ │ + ldr r1, [pc, #692] @ 930 │ │ │ │ │ + mov r0, #120 @ 0x78 │ │ │ │ │ ldr r2, [r7, #8] │ │ │ │ │ add r1, pc, r1 │ │ │ │ │ - mov r0, #120 @ 0x78 │ │ │ │ │ bl 0 │ │ │ │ │ R_ARM_CALL fftw_mkplan_rdft │ │ │ │ │ ldr r3, [sp, #32] │ │ │ │ │ + mov r6, r0 │ │ │ │ │ + str r5, [r0, #68] @ 0x44 │ │ │ │ │ ldr r1, [r4, #16] │ │ │ │ │ + strd sl, [r0, #72] @ 0x48 │ │ │ │ │ ldr r2, [sp, #48] @ 0x30 │ │ │ │ │ - mov r6, r0 │ │ │ │ │ str r3, [r0, #88] @ 0x58 │ │ │ │ │ - strd sl, [r0, #72] @ 0x48 │ │ │ │ │ - ldr r3, [sp, #52] @ 0x34 │ │ │ │ │ - str r5, [r0, #68] @ 0x44 │ │ │ │ │ ldr r0, [r4, #20] │ │ │ │ │ + ldr r3, [sp, #52] @ 0x34 │ │ │ │ │ bl 0 │ │ │ │ │ R_ARM_CALL fftw_extract_reim │ │ │ │ │ ldr r2, [r4, #16] │ │ │ │ │ + add r0, sl, #8 │ │ │ │ │ ldr r3, [sp, #64] @ 0x40 │ │ │ │ │ ldr r1, [sp, #72] @ 0x48 │ │ │ │ │ sub r3, r3, r2 │ │ │ │ │ asr r3, r3, #3 │ │ │ │ │ str r3, [r6, #80] @ 0x50 │ │ │ │ │ ldr r3, [sp, #68] @ 0x44 │ │ │ │ │ - add r0, sl, #8 │ │ │ │ │ sub r3, r3, r2 │ │ │ │ │ + ldr r2, [r4, #8] │ │ │ │ │ + add r4, r6, #8 │ │ │ │ │ asr r3, r3, #3 │ │ │ │ │ str r3, [r6, #84] @ 0x54 │ │ │ │ │ ldr r3, [sp, #28] │ │ │ │ │ - ldr r2, [r4, #8] │ │ │ │ │ + str r2, [r6, #92] @ 0x5c │ │ │ │ │ str r3, [r6, #108] @ 0x6c │ │ │ │ │ ldr r3, [sp, #40] @ 0x28 │ │ │ │ │ str r3, [r6, #112] @ 0x70 │ │ │ │ │ - ldr r3, [pc, #576] @ 8c0 │ │ │ │ │ - str r2, [r6, #92] @ 0x5c │ │ │ │ │ + ldr r3, [pc, #564] @ 934 │ │ │ │ │ add r3, pc, r3 │ │ │ │ │ cmp r8, r3 │ │ │ │ │ ldreq r3, [sp, #92] @ 0x5c │ │ │ │ │ ldrne r3, [sp, #80] @ 0x50 │ │ │ │ │ - add r4, r6, #8 │ │ │ │ │ mul r3, r1, r3 │ │ │ │ │ ldr r1, [sp, #44] @ 0x2c │ │ │ │ │ str r3, [r6, #96] @ 0x60 │ │ │ │ │ add r3, r3, r1 │ │ │ │ │ + add r1, fp, #8 │ │ │ │ │ sub r3, r3, #1 │ │ │ │ │ str r3, [r6, #100] @ 0x64 │ │ │ │ │ ldr r3, [sp, #24] │ │ │ │ │ - add r1, fp, #8 │ │ │ │ │ mul r3, r2, r3 │ │ │ │ │ lsl r2, r3, #1 │ │ │ │ │ mov r3, #0 │ │ │ │ │ - str r2, [r6, #104] @ 0x68 │ │ │ │ │ str r3, [r6, #64] @ 0x40 │ │ │ │ │ + str r2, [r6, #104] @ 0x68 │ │ │ │ │ mov r2, r4 │ │ │ │ │ bl 0 │ │ │ │ │ R_ARM_CALL fftw_ops_add │ │ │ │ │ cmp r5, #0 │ │ │ │ │ - beq 6e4 │ │ │ │ │ + beq 75c │ │ │ │ │ mov r1, r4 │ │ │ │ │ add r0, r5, #8 │ │ │ │ │ bl 0 │ │ │ │ │ R_ARM_CALL fftw_ops_add2 │ │ │ │ │ - ldr r3, [r6, #100] @ 0x64 │ │ │ │ │ - ldr r2, [r6, #96] @ 0x60 │ │ │ │ │ - add r3, r3, #1 │ │ │ │ │ + ldrd r2, [r6, #96] @ 0x60 │ │ │ │ │ sub r3, r3, r2 │ │ │ │ │ ldr r2, [sp, #36] @ 0x24 │ │ │ │ │ - ldr r0, [r6, #92] @ 0x5c │ │ │ │ │ - sub r2, r2, #1 │ │ │ │ │ - mul r3, r2, r3 │ │ │ │ │ + sub r0, r2, #1 │ │ │ │ │ + mov r2, r0 │ │ │ │ │ + mla r2, r3, r0, r2 │ │ │ │ │ + ldr r3, [r6, #92] @ 0x5c │ │ │ │ │ + mov r0, r2 │ │ │ │ │ mul r0, r3, r0 │ │ │ │ │ bl 0 <__aeabi_i2d> │ │ │ │ │ R_ARM_CALL __aeabi_i2d │ │ │ │ │ - ldr r3, [pc, #432] @ 8c4 │ │ │ │ │ + ldr r3, [pc, #428] @ 938 │ │ │ │ │ mov r2, #0 │ │ │ │ │ mov r8, r0 │ │ │ │ │ mov r9, r1 │ │ │ │ │ bl 0 <__aeabi_dmul> │ │ │ │ │ R_ARM_CALL __aeabi_dmul │ │ │ │ │ - mov r4, r0 │ │ │ │ │ - mov r5, r1 │ │ │ │ │ mov r2, r0 │ │ │ │ │ mov r3, r1 │ │ │ │ │ + mov r4, r0 │ │ │ │ │ + mov r5, r1 │ │ │ │ │ ldrd r0, [r6, #16] │ │ │ │ │ bl 0 <__aeabi_dadd> │ │ │ │ │ R_ARM_CALL __aeabi_dadd │ │ │ │ │ - ldr r3, [pc, #392] @ 8c8 │ │ │ │ │ + ldr r3, [pc, #388] @ 93c │ │ │ │ │ mov r2, #0 │ │ │ │ │ strd r0, [r6, #16] │ │ │ │ │ mov r0, r8 │ │ │ │ │ mov r1, r9 │ │ │ │ │ bl 0 <__aeabi_dmul> │ │ │ │ │ R_ARM_CALL __aeabi_dmul │ │ │ │ │ mov r2, r0 │ │ │ │ │ @@ -527,286 +557,302 @@ │ │ │ │ │ mov r3, r5 │ │ │ │ │ strd r0, [r6, #8] │ │ │ │ │ ldrd r0, [r6, #32] │ │ │ │ │ bl 0 <__aeabi_dadd> │ │ │ │ │ R_ARM_CALL __aeabi_dadd │ │ │ │ │ strd r0, [r6, #32] │ │ │ │ │ mov r0, r6 │ │ │ │ │ - add sp, sp, #100 @ 0x64 │ │ │ │ │ - pop {r4, r5, r6, r7, r8, r9, sl, fp, pc} │ │ │ │ │ + b 358 │ │ │ │ │ cmp r2, #0 │ │ │ │ │ - beq 354 │ │ │ │ │ - ldr r3, [pc, #312] @ 8cc │ │ │ │ │ + beq 3cc │ │ │ │ │ + ldr r3, [pc, #312] @ 940 │ │ │ │ │ ldr r1, [r7, #8] │ │ │ │ │ add r3, pc, r3 │ │ │ │ │ cmp r1, r3 │ │ │ │ │ - bne 2f0 │ │ │ │ │ - b 354 │ │ │ │ │ + bne 354 │ │ │ │ │ + b 3cc │ │ │ │ │ ldr r3, [r4, #24] │ │ │ │ │ cmp r3, #0 │ │ │ │ │ - bne 86c │ │ │ │ │ + bne 8e0 │ │ │ │ │ ldr r3, [sp, #32] │ │ │ │ │ ldr r1, [r4, #16] │ │ │ │ │ cmp r3, #0 │ │ │ │ │ - beq 4d8 │ │ │ │ │ + beq 550 │ │ │ │ │ mov r5, r1 │ │ │ │ │ - b 4dc │ │ │ │ │ + b 554 │ │ │ │ │ mov r2, r3 │ │ │ │ │ bl 0 │ │ │ │ │ R_ARM_CALL fftw_mpi_mkproblem_dft_d │ │ │ │ │ mov r1, r0 │ │ │ │ │ mov r0, r6 │ │ │ │ │ bl 0 │ │ │ │ │ R_ARM_CALL fftw_mkplan_d │ │ │ │ │ - ldr r1, [r4, #28] │ │ │ │ │ mov sl, r0 │ │ │ │ │ clz r0, r0 │ │ │ │ │ + ldr r1, [r4, #28] │ │ │ │ │ lsr r0, r0, #5 │ │ │ │ │ bl 0 │ │ │ │ │ R_ARM_CALL fftw_mpi_any_true │ │ │ │ │ cmp r0, #0 │ │ │ │ │ - beq 7a4 │ │ │ │ │ + beq 818 │ │ │ │ │ mov fp, r5 │ │ │ │ │ mov r0, r5 │ │ │ │ │ bl 0 │ │ │ │ │ R_ARM_CALL fftw_plan_destroy_internal │ │ │ │ │ mov r0, fp │ │ │ │ │ bl 0 │ │ │ │ │ R_ARM_CALL fftw_plan_destroy_internal │ │ │ │ │ mov r0, sl │ │ │ │ │ bl 0 │ │ │ │ │ R_ARM_CALL fftw_plan_destroy_internal │ │ │ │ │ - b 2f0 │ │ │ │ │ + b 354 │ │ │ │ │ mov r3, #2 │ │ │ │ │ mov r5, r9 │ │ │ │ │ str r3, [sp, #32] │ │ │ │ │ - b 440 │ │ │ │ │ - ldr r0, [pc, #160] @ 8d0 │ │ │ │ │ + b 4b8 │ │ │ │ │ + ldr r0, [pc, #160] @ 944 │ │ │ │ │ ldr r3, [r4, #12] │ │ │ │ │ add r0, pc, r0 │ │ │ │ │ cmp r8, r0 │ │ │ │ │ - beq 5ac │ │ │ │ │ - ldr r0, [sp, #88] @ 0x58 │ │ │ │ │ + beq 624 │ │ │ │ │ ldr ip, [sp, #80] @ 0x50 │ │ │ │ │ - b 5b4 │ │ │ │ │ + ldr r0, [sp, #88] @ 0x58 │ │ │ │ │ + b 62c │ │ │ │ │ ldrd sl, [sp, #88] @ 0x58 │ │ │ │ │ mov r1, fp │ │ │ │ │ bl 0 │ │ │ │ │ R_ARM_CALL fftw_mpi_block │ │ │ │ │ ldr r3, [sp, #28] │ │ │ │ │ str r3, [sp, #36] @ 0x24 │ │ │ │ │ ldr r3, [sp, #40] @ 0x28 │ │ │ │ │ - str r3, [sp, #24] │ │ │ │ │ str r0, [sp, #44] @ 0x2c │ │ │ │ │ - b 41c │ │ │ │ │ + str r3, [sp, #24] │ │ │ │ │ + b 494 │ │ │ │ │ ldr r3, [sp, #32] │ │ │ │ │ ldr r1, [r4, #12] │ │ │ │ │ cmp r3, #0 │ │ │ │ │ - beq 7c0 │ │ │ │ │ + beq 834 │ │ │ │ │ ldr r5, [r4, #16] │ │ │ │ │ - b 4dc │ │ │ │ │ + b 554 │ │ │ │ │ mov r5, #0 │ │ │ │ │ - b 7fc │ │ │ │ │ + b 870 │ │ │ │ │ mov r5, #0 │ │ │ │ │ mov fp, r5 │ │ │ │ │ - b 7fc │ │ │ │ │ + b 870 │ │ │ │ │ mov r0, r4 │ │ │ │ │ bl 0 │ │ │ │ │ R_ARM_CALL fftw_mpi_dft_serial_applicable │ │ │ │ │ cmp r0, #0 │ │ │ │ │ - bne 2f0 │ │ │ │ │ + bne 354 │ │ │ │ │ ldr r2, [r4, #24] │ │ │ │ │ - b 360 │ │ │ │ │ - .word 0x000005f0 │ │ │ │ │ - .word 0xfffffc1c │ │ │ │ │ - .word 0xfffffb48 │ │ │ │ │ - .word 0x000002b0 │ │ │ │ │ + b 3d8 │ │ │ │ │ + .word 0x000005fc │ │ │ │ │ + .word 0xfffffb9c │ │ │ │ │ + .word 0xfffffad0 │ │ │ │ │ + .word 0x000002a8 │ │ │ │ │ R_ARM_REL32 .data.rel.ro │ │ │ │ │ - .word 0xfffff978 │ │ │ │ │ + .word 0xfffff8fc │ │ │ │ │ .word 0x40200000 │ │ │ │ │ .word 0x40100000 │ │ │ │ │ - .word 0xfffff864 │ │ │ │ │ - .word 0xfffff7c8 │ │ │ │ │ + .word 0xfffff7f0 │ │ │ │ │ + .word 0xfffff754 │ │ │ │ │ │ │ │ │ │ -000008d4 : │ │ │ │ │ +00000948 : │ │ │ │ │ awake(): │ │ │ │ │ - push {r4, r5, r6, lr} │ │ │ │ │ + strd r4, [sp, #-16]! │ │ │ │ │ mov r4, r1 │ │ │ │ │ mov r5, r0 │ │ │ │ │ ldr r0, [r0, #68] @ 0x44 │ │ │ │ │ + str r6, [sp, #8] │ │ │ │ │ + str lr, [sp, #12] │ │ │ │ │ bl 0 │ │ │ │ │ R_ARM_CALL fftw_plan_awake │ │ │ │ │ ldr r0, [r5, #76] @ 0x4c │ │ │ │ │ mov r1, r4 │ │ │ │ │ bl 0 │ │ │ │ │ R_ARM_CALL fftw_plan_awake │ │ │ │ │ ldr r0, [r5, #72] @ 0x48 │ │ │ │ │ mov r1, r4 │ │ │ │ │ bl 0 │ │ │ │ │ R_ARM_CALL fftw_plan_awake │ │ │ │ │ cmp r4, #0 │ │ │ │ │ - bne 918 │ │ │ │ │ + bne 9a0 │ │ │ │ │ ldr r0, [r5, #64] @ 0x40 │ │ │ │ │ bl 0 │ │ │ │ │ R_ARM_CALL fftw_triggen_destroy │ │ │ │ │ + ldr r6, [sp, #8] │ │ │ │ │ str r4, [r5, #64] @ 0x40 │ │ │ │ │ - pop {r4, r5, r6, pc} │ │ │ │ │ - ldr r3, [r5, #112] @ 0x70 │ │ │ │ │ + ldrd r4, [sp] │ │ │ │ │ + add sp, sp, #12 │ │ │ │ │ + pop {pc} @ (ldr pc, [sp], #4) │ │ │ │ │ ldr r1, [r5, #108] @ 0x6c │ │ │ │ │ mov r0, #2 │ │ │ │ │ + ldr r3, [r5, #112] @ 0x70 │ │ │ │ │ mul r1, r3, r1 │ │ │ │ │ bl 0 │ │ │ │ │ R_ARM_CALL fftw_mktriggen │ │ │ │ │ mov r4, r0 │ │ │ │ │ - str r4, [r5, #64] @ 0x40 │ │ │ │ │ - pop {r4, r5, r6, pc} │ │ │ │ │ + b 98c │ │ │ │ │ │ │ │ │ │ -00000938 : │ │ │ │ │ +000009bc : │ │ │ │ │ apply_ddft_last(): │ │ │ │ │ - push {r4, r5, r6, r7, r8, r9, sl, fp, lr} │ │ │ │ │ + strd r4, [sp, #-36]! @ 0xffffffdc │ │ │ │ │ mov r4, r0 │ │ │ │ │ ldr r0, [r0, #68] @ 0x44 │ │ │ │ │ - sub sp, sp, #100 @ 0x64 │ │ │ │ │ - cmp r0, #0 │ │ │ │ │ + strd r6, [sp, #8] │ │ │ │ │ + strd r8, [sp, #16] │ │ │ │ │ mov r9, r1 │ │ │ │ │ + strd sl, [sp, #24] │ │ │ │ │ mov fp, r2 │ │ │ │ │ - moveq r0, r1 │ │ │ │ │ - beq 968 │ │ │ │ │ + str lr, [sp, #32] │ │ │ │ │ + sub sp, sp, #100 @ 0x64 │ │ │ │ │ + cmp r0, #0 │ │ │ │ │ + moveq ip, r1 │ │ │ │ │ + beq 9fc │ │ │ │ │ ldr r3, [r0, #56] @ 0x38 │ │ │ │ │ blx r3 │ │ │ │ │ - mov r0, fp │ │ │ │ │ + mov ip, fp │ │ │ │ │ + ldr r8, [r4, #64] @ 0x40 │ │ │ │ │ + ldr r0, [r4, #108] @ 0x6c │ │ │ │ │ ldr r3, [r4, #88] @ 0x58 │ │ │ │ │ - ldr lr, [r4, #108] @ 0x6c │ │ │ │ │ ldr r2, [r4, #100] @ 0x64 │ │ │ │ │ - str lr, [sp, #36] @ 0x24 │ │ │ │ │ - ldr lr, [r4, #96] @ 0x60 │ │ │ │ │ + str r0, [sp, #36] @ 0x24 │ │ │ │ │ + ldr r6, [r4, #76] @ 0x4c │ │ │ │ │ cmp r3, #0 │ │ │ │ │ + ldr r0, [r4, #96] @ 0x60 │ │ │ │ │ movne r9, fp │ │ │ │ │ - cmp r2, lr │ │ │ │ │ - ldr r6, [r4, #76] @ 0x4c │ │ │ │ │ ldr r3, [r4, #80] @ 0x50 │ │ │ │ │ ldr r1, [r4, #84] @ 0x54 │ │ │ │ │ - ldr ip, [r4, #104] @ 0x68 │ │ │ │ │ - ldr r8, [r4, #64] @ 0x40 │ │ │ │ │ + cmp r2, r0 │ │ │ │ │ + str r0, [sp, #32] │ │ │ │ │ ldr r7, [r4, #92] @ 0x5c │ │ │ │ │ - str lr, [sp, #32] │ │ │ │ │ - blt b00 │ │ │ │ │ + ldr lr, [r4, #104] @ 0x68 │ │ │ │ │ + blt b98 │ │ │ │ │ sub r3, r3, r1 │ │ │ │ │ + lsl r0, r1, #3 │ │ │ │ │ + add sl, sp, #80 @ 0x50 │ │ │ │ │ lsl r3, r3, #3 │ │ │ │ │ - lsl ip, ip, #3 │ │ │ │ │ - add r0, r0, r1, lsl #3 │ │ │ │ │ + lsl lr, lr, #3 │ │ │ │ │ + add ip, ip, r0 │ │ │ │ │ + add r5, r9, r0 │ │ │ │ │ str r3, [sp, #60] @ 0x3c │ │ │ │ │ - str r2, [sp, #64] @ 0x40 │ │ │ │ │ lsl r3, r7, #4 │ │ │ │ │ + str r2, [sp, #64] @ 0x40 │ │ │ │ │ + mov r2, ip │ │ │ │ │ str fp, [sp, #76] @ 0x4c │ │ │ │ │ - add r5, r9, r1, lsl #3 │ │ │ │ │ - add sl, sp, #80 @ 0x50 │ │ │ │ │ - mov r2, r0 │ │ │ │ │ - mov fp, ip │ │ │ │ │ + mov fp, lr │ │ │ │ │ str r3, [sp, #40] @ 0x28 │ │ │ │ │ str r4, [sp, #68] @ 0x44 │ │ │ │ │ str r9, [sp, #72] @ 0x48 │ │ │ │ │ ldr r1, [sp, #60] @ 0x3c │ │ │ │ │ + mov r0, r6 │ │ │ │ │ str r5, [sp] │ │ │ │ │ - add r3, r5, r1 │ │ │ │ │ ldr r4, [r6, #56] @ 0x38 │ │ │ │ │ - add r1, r2, r1 │ │ │ │ │ - mov r0, r6 │ │ │ │ │ str r2, [sp, #24] │ │ │ │ │ + add r3, r5, r1 │ │ │ │ │ + add r1, r2, r1 │ │ │ │ │ str r3, [sp, #20] │ │ │ │ │ blx r4 │ │ │ │ │ ldr r2, [sp, #36] @ 0x24 │ │ │ │ │ cmp r2, #0 │ │ │ │ │ ldr r2, [sp, #24] │ │ │ │ │ - ble ad8 │ │ │ │ │ + ble b70 │ │ │ │ │ cmp r7, #0 │ │ │ │ │ - ble ad8 │ │ │ │ │ - mov r4, #0 │ │ │ │ │ + ble b70 │ │ │ │ │ ldr r9, [r8, #8] │ │ │ │ │ - ldr ip, [sp, #20] │ │ │ │ │ - mov r0, r4 │ │ │ │ │ + mov r4, #0 │ │ │ │ │ mov lr, r5 │ │ │ │ │ + mov r0, r4 │ │ │ │ │ str fp, [sp, #44] @ 0x2c │ │ │ │ │ + ldr ip, [sp, #20] │ │ │ │ │ str r6, [sp, #48] @ 0x30 │ │ │ │ │ str r2, [sp, #52] @ 0x34 │ │ │ │ │ str r5, [sp, #56] @ 0x38 │ │ │ │ │ add r6, ip, #16 │ │ │ │ │ add r5, lr, #16 │ │ │ │ │ - mov fp, #0 │ │ │ │ │ str r0, [sp, #20] │ │ │ │ │ + mov fp, #0 │ │ │ │ │ str ip, [sp, #24] │ │ │ │ │ str lr, [sp, #28] │ │ │ │ │ ldrd r2, [r6, #-16] │ │ │ │ │ - str sl, [sp, #8] │ │ │ │ │ - ldrd r0, [r5, #-16] │ │ │ │ │ add fp, fp, #1 │ │ │ │ │ + add r6, r6, #16 │ │ │ │ │ + str sl, [sp, #8] │ │ │ │ │ + add r5, r5, #16 │ │ │ │ │ + ldrd r0, [r5, #-32] @ 0xffffffe0 │ │ │ │ │ strd r0, [sp] │ │ │ │ │ mov r1, r4 │ │ │ │ │ mov r0, r8 │ │ │ │ │ blx r9 │ │ │ │ │ ldrd r2, [sp, #80] @ 0x50 │ │ │ │ │ cmp r7, fp │ │ │ │ │ - strd r2, [r6, #-16] │ │ │ │ │ + strd r2, [r6, #-32] @ 0xffffffe0 │ │ │ │ │ ldrd r2, [sp, #88] @ 0x58 │ │ │ │ │ - add r6, r6, #16 │ │ │ │ │ - strd r2, [r5, #-16] │ │ │ │ │ - add r5, r5, #16 │ │ │ │ │ - bne a5c │ │ │ │ │ + strd r2, [r5, #-32] @ 0xffffffe0 │ │ │ │ │ + bne af4 │ │ │ │ │ add r0, sp, #20 │ │ │ │ │ - ldm r0, {r0, ip, lr} │ │ │ │ │ ldr r3, [sp, #40] @ 0x28 │ │ │ │ │ - add r0, r0, #1 │ │ │ │ │ + ldm r0, {r0, ip, lr} │ │ │ │ │ add lr, lr, r3 │ │ │ │ │ add ip, ip, r3 │ │ │ │ │ ldr r3, [sp, #32] │ │ │ │ │ + add r0, r0, #1 │ │ │ │ │ add r4, r4, r3 │ │ │ │ │ ldr r3, [sp, #36] @ 0x24 │ │ │ │ │ cmp r3, r0 │ │ │ │ │ - bne a44 │ │ │ │ │ + bne adc │ │ │ │ │ ldr fp, [sp, #44] @ 0x2c │ │ │ │ │ ldr r6, [sp, #48] @ 0x30 │ │ │ │ │ ldr r2, [sp, #52] @ 0x34 │ │ │ │ │ ldr r5, [sp, #56] @ 0x38 │ │ │ │ │ + add r2, r2, fp │ │ │ │ │ + add r5, r5, fp │ │ │ │ │ ldr r3, [sp, #32] │ │ │ │ │ ldr r1, [sp, #64] @ 0x40 │ │ │ │ │ add r3, r3, #1 │ │ │ │ │ cmp r1, r3 │ │ │ │ │ - add r2, r2, fp │ │ │ │ │ - add r5, r5, fp │ │ │ │ │ str r3, [sp, #32] │ │ │ │ │ - bge 9e4 │ │ │ │ │ + bge a7c │ │ │ │ │ add r4, sp, #68 @ 0x44 │ │ │ │ │ ldm r4, {r4, r9, fp} │ │ │ │ │ - ldr r0, [r4, #72] @ 0x48 │ │ │ │ │ mov r2, fp │ │ │ │ │ mov r1, r9 │ │ │ │ │ + ldr r0, [r4, #72] @ 0x48 │ │ │ │ │ ldr r3, [r0, #56] @ 0x38 │ │ │ │ │ add sp, sp, #100 @ 0x64 │ │ │ │ │ - pop {r4, r5, r6, r7, r8, r9, sl, fp, lr} │ │ │ │ │ + ldrd r4, [sp] │ │ │ │ │ + ldrd r6, [sp, #8] │ │ │ │ │ + ldrd r8, [sp, #16] │ │ │ │ │ + ldrd sl, [sp, #24] │ │ │ │ │ + ldr lr, [sp, #32] │ │ │ │ │ + add sp, sp, #36 @ 0x24 │ │ │ │ │ bx r3 │ │ │ │ │ │ │ │ │ │ -00000b1c : │ │ │ │ │ +00000bc8 : │ │ │ │ │ fftw_mpi_dft_rank1_register(): │ │ │ │ │ - ldr r3, [pc, #144] @ bb4 │ │ │ │ │ - push {r4, r5, r6, r7, r8, r9, lr} │ │ │ │ │ - add r3, pc, r3 │ │ │ │ │ - sub sp, sp, #12 │ │ │ │ │ - ldr r6, [pc, #132] @ bb8 │ │ │ │ │ - str r3, [sp] │ │ │ │ │ - ldr r3, [pc, #128] @ bbc │ │ │ │ │ + ldr r3, [pc, #172] @ c7c │ │ │ │ │ + strd r4, [sp, #-28]! @ 0xffffffe4 │ │ │ │ │ mov r4, r0 │ │ │ │ │ + strd r6, [sp, #8] │ │ │ │ │ + mov r7, #2 │ │ │ │ │ + strd r8, [sp, #16] │ │ │ │ │ + mov r8, #0 │ │ │ │ │ + str lr, [sp, #24] │ │ │ │ │ + sub sp, sp, #12 │ │ │ │ │ add r3, pc, r3 │ │ │ │ │ + ldr r6, [pc, #136] @ c80 │ │ │ │ │ mov r9, sp │ │ │ │ │ - mov r7, #2 │ │ │ │ │ + str r3, [sp] │ │ │ │ │ + ldr r3, [pc, #128] @ c84 │ │ │ │ │ add r6, pc, r6 │ │ │ │ │ - mov r8, #0 │ │ │ │ │ + add r3, pc, r3 │ │ │ │ │ str r3, [sp, #4] │ │ │ │ │ + ldr r5, [r9], #4 │ │ │ │ │ mov r1, r6 │ │ │ │ │ mov r0, #16 │ │ │ │ │ - ldr r5, [r9], #4 │ │ │ │ │ bl 0 │ │ │ │ │ R_ARM_CALL fftw_mksolver │ │ │ │ │ mov r1, r0 │ │ │ │ │ str r5, [r0, #8] │ │ │ │ │ str r8, [r0, #12] │ │ │ │ │ mov r0, r4 │ │ │ │ │ bl 0 │ │ │ │ │ @@ -819,16 +865,20 @@ │ │ │ │ │ mov r5, #1 │ │ │ │ │ mov r1, r0 │ │ │ │ │ str r5, [r0, #12] │ │ │ │ │ mov r0, r4 │ │ │ │ │ bl 0 │ │ │ │ │ R_ARM_CALL fftw_solver_register │ │ │ │ │ cmp r7, r5 │ │ │ │ │ - bne bac │ │ │ │ │ + bne c74 │ │ │ │ │ add sp, sp, #12 │ │ │ │ │ - pop {r4, r5, r6, r7, r8, r9, pc} │ │ │ │ │ + ldrd r4, [sp] │ │ │ │ │ + ldrd r6, [sp, #8] │ │ │ │ │ + ldrd r8, [sp, #16] │ │ │ │ │ + add sp, sp, #24 │ │ │ │ │ + pop {pc} @ (ldr pc, [sp], #4) │ │ │ │ │ mov r7, r5 │ │ │ │ │ - b b54 │ │ │ │ │ - .word 0xfffff4d4 │ │ │ │ │ - .word 0x00000068 │ │ │ │ │ + b c0c │ │ │ │ │ + .word 0xfffff40c │ │ │ │ │ + .word 0x00000078 │ │ │ │ │ R_ARM_REL32 .data.rel.ro.local │ │ │ │ │ - .word 0xfffffdf4 │ │ │ │ │ + .word 0xfffffdb0 │ │ │ ├── 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: 3528 (bytes into file) │ │ │ │ │ + Start of section headers: 3676 (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 0xdc8: │ │ │ │ │ +There are 16 section headers, starting at offset 0xe5c: │ │ │ │ │ │ │ │ │ │ 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 000574 00 AX 0 0 4 │ │ │ │ │ - [ 2] .rel.text REL 00000000 000ba8 000168 08 I 13 1 4 │ │ │ │ │ - [ 3] .data PROGBITS 00000000 0005a8 000000 00 WA 0 0 1 │ │ │ │ │ - [ 4] .bss NOBITS 00000000 0005a8 000000 00 WA 0 0 1 │ │ │ │ │ - [ 5] .rodata.str1.4 PROGBITS 00000000 0005a8 000039 01 AMS 0 0 4 │ │ │ │ │ - [ 6] .rodata PROGBITS 00000000 0005e1 000050 00 A 0 0 4 │ │ │ │ │ - [ 7] .data.rel.ro PROGBITS 00000000 000631 000010 00 WA 0 0 4 │ │ │ │ │ - [ 8] .rel.data.rel.ro REL 00000000 000d10 000020 08 I 13 7 4 │ │ │ │ │ - [ 9] .data.rel.ro.local PROGBITS 00000000 000641 00000c 00 WA 0 0 4 │ │ │ │ │ - [10] .rel.data.rel.ro.local REL 00000000 000d30 000008 08 I 13 9 4 │ │ │ │ │ - [11] .note.GNU-stack PROGBITS 00000000 00064d 000000 00 0 0 1 │ │ │ │ │ - [12] .ARM.attributes ARM_ATTRIBUTES 00000000 00064d 00002b 00 0 0 1 │ │ │ │ │ - [13] .symtab SYMTAB 00000000 000678 000310 10 14 24 4 │ │ │ │ │ - [14] .strtab STRTAB 00000000 000988 00021e 00 0 0 1 │ │ │ │ │ - [15] .shstrtab STRTAB 00000000 000d38 00008f 00 0 0 1 │ │ │ │ │ + [ 1] .text PROGBITS 00000000 000034 000608 00 AX 0 0 4 │ │ │ │ │ + [ 2] .rel.text REL 00000000 000c3c 000168 08 I 13 1 4 │ │ │ │ │ + [ 3] .data PROGBITS 00000000 00063c 000000 00 WA 0 0 1 │ │ │ │ │ + [ 4] .bss NOBITS 00000000 00063c 000000 00 WA 0 0 1 │ │ │ │ │ + [ 5] .rodata.str1.4 PROGBITS 00000000 00063c 000039 01 AMS 0 0 4 │ │ │ │ │ + [ 6] .rodata PROGBITS 00000000 000675 000050 00 A 0 0 4 │ │ │ │ │ + [ 7] .data.rel.ro PROGBITS 00000000 0006c5 000010 00 WA 0 0 4 │ │ │ │ │ + [ 8] .rel.data.rel.ro REL 00000000 000da4 000020 08 I 13 7 4 │ │ │ │ │ + [ 9] .data.rel.ro.local PROGBITS 00000000 0006d5 00000c 00 WA 0 0 4 │ │ │ │ │ + [10] .rel.data.rel.ro.local REL 00000000 000dc4 000008 08 I 13 9 4 │ │ │ │ │ + [11] .note.GNU-stack PROGBITS 00000000 0006e1 000000 00 0 0 1 │ │ │ │ │ + [12] .ARM.attributes ARM_ATTRIBUTES 00000000 0006e1 00002b 00 0 0 1 │ │ │ │ │ + [13] .symtab SYMTAB 00000000 00070c 000310 10 14 24 4 │ │ │ │ │ + [14] .strtab STRTAB 00000000 000a1c 00021e 00 0 0 1 │ │ │ │ │ + [15] .shstrtab STRTAB 00000000 000dcc 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: 00000000 0 NOTYPE LOCAL DEFAULT 1 $a │ │ │ │ │ - 2: 00000000 112 FUNC LOCAL DEFAULT 1 apply │ │ │ │ │ + 2: 00000000 148 FUNC LOCAL DEFAULT 1 apply │ │ │ │ │ 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: 00000070 148 FUNC LOCAL DEFAULT 1 print │ │ │ │ │ - 8: 000000f4 0 NOTYPE LOCAL DEFAULT 1 $d │ │ │ │ │ - 9: 00000104 0 NOTYPE LOCAL DEFAULT 1 $a │ │ │ │ │ - 10: 00000104 36 FUNC LOCAL DEFAULT 1 destroy │ │ │ │ │ - 11: 00000128 940 FUNC LOCAL DEFAULT 1 mkplan │ │ │ │ │ - 12: 000004cc 0 NOTYPE LOCAL DEFAULT 1 $d │ │ │ │ │ - 13: 000004d4 0 NOTYPE LOCAL DEFAULT 1 $a │ │ │ │ │ - 14: 000004d4 48 FUNC LOCAL DEFAULT 1 awake │ │ │ │ │ - 15: 00000570 0 NOTYPE LOCAL DEFAULT 1 $d │ │ │ │ │ + 7: 00000094 168 FUNC LOCAL DEFAULT 1 print │ │ │ │ │ + 8: 0000012c 0 NOTYPE LOCAL DEFAULT 1 $d │ │ │ │ │ + 9: 0000013c 0 NOTYPE LOCAL DEFAULT 1 $a │ │ │ │ │ + 10: 0000013c 48 FUNC LOCAL DEFAULT 1 destroy │ │ │ │ │ + 11: 0000016c 972 FUNC LOCAL DEFAULT 1 mkplan │ │ │ │ │ + 12: 00000530 0 NOTYPE LOCAL DEFAULT 1 $d │ │ │ │ │ + 13: 00000538 0 NOTYPE LOCAL DEFAULT 1 $a │ │ │ │ │ + 14: 00000538 68 FUNC LOCAL DEFAULT 1 awake │ │ │ │ │ + 15: 00000604 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: 00000504 112 FUNC GLOBAL DEFAULT 1 fftw_mpi_dft_rank1_bigvec_register │ │ │ │ │ + 45: 0000057c 140 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,59 +1,59 @@ │ │ │ │ │ │ │ │ │ │ -Relocation section '.rel.text' at offset 0xba8 contains 45 entries: │ │ │ │ │ +Relocation section '.rel.text' at offset 0xc3c contains 45 entries: │ │ │ │ │ Offset Info Type Sym. Value Symbol's Name │ │ │ │ │ -00000094 0000181c R_ARM_CALL 00000000 memcpy │ │ │ │ │ -000000f4 00001003 R_ARM_REL32 00000000 .rodata │ │ │ │ │ -000000f8 00000503 R_ARM_REL32 00000004 .LC2 │ │ │ │ │ -000000fc 00000603 R_ARM_REL32 00000008 .LC3 │ │ │ │ │ -00000100 00000403 R_ARM_REL32 00000000 .LC1 │ │ │ │ │ -00000110 0000191c R_ARM_CALL 00000000 fftw_plan_destroy_internal │ │ │ │ │ -00000118 0000191c R_ARM_CALL 00000000 fftw_plan_destroy_internal │ │ │ │ │ -00000124 0000191d R_ARM_JUMP24 00000000 fftw_plan_destroy_internal │ │ │ │ │ -00000148 00001a1c R_ARM_CALL 00000000 MPI_Comm_size │ │ │ │ │ -000001cc 00001b1c R_ARM_CALL 00000000 fftw_mpi_rearrange_applicable │ │ │ │ │ -000001ec 00001c1c R_ARM_CALL 00000000 MPI_Comm_rank │ │ │ │ │ -000001f8 00001a1c R_ARM_CALL 00000000 MPI_Comm_size │ │ │ │ │ -0000021c 00001d1c R_ARM_CALL 00000000 fftw_mpi_rearrange_ny │ │ │ │ │ -00000230 00001e1c R_ARM_CALL 00000000 __aeabi_idiv │ │ │ │ │ -00000240 00001f1c R_ARM_CALL 00000000 fftw_mpi_default_block │ │ │ │ │ -00000288 0000201c R_ARM_CALL 00000000 fftw_mpi_mkproblem_transpose │ │ │ │ │ -00000294 0000211c R_ARM_CALL 00000000 fftw_mkplan_d │ │ │ │ │ -000002a8 0000221c R_ARM_CALL 00000000 fftw_mpi_any_true │ │ │ │ │ -000002e0 0000231c R_ARM_CALL 00000000 fftw_extract_reim │ │ │ │ │ -000002f4 0000231c R_ARM_CALL 00000000 fftw_extract_reim │ │ │ │ │ -00000304 0000241c R_ARM_CALL 00000000 fftw_mpi_block │ │ │ │ │ -00000318 0000251c R_ARM_CALL 00000000 fftw_mktensor_1d │ │ │ │ │ -00000340 0000261c R_ARM_CALL 00000000 fftw_mktensor_2d │ │ │ │ │ -00000360 0000271c R_ARM_CALL 00000000 fftw_mkproblem_dft_d │ │ │ │ │ -0000036c 0000211c R_ARM_CALL 00000000 fftw_mkplan_d │ │ │ │ │ -00000380 0000221c R_ARM_CALL 00000000 fftw_mpi_any_true │ │ │ │ │ -000003c0 0000201c R_ARM_CALL 00000000 fftw_mpi_mkproblem_transpose │ │ │ │ │ -000003cc 0000211c R_ARM_CALL 00000000 fftw_mkplan_d │ │ │ │ │ -000003e0 0000221c R_ARM_CALL 00000000 fftw_mpi_any_true │ │ │ │ │ -00000400 0000281c R_ARM_CALL 00000000 fftw_mkplan_rdft │ │ │ │ │ -00000470 0000291c R_ARM_CALL 00000000 fftw_ops_add │ │ │ │ │ -0000047c 00002a1c R_ARM_CALL 00000000 fftw_ops_add2 │ │ │ │ │ -00000494 0000191c R_ARM_CALL 00000000 fftw_plan_destroy_internal │ │ │ │ │ -0000049c 0000191c R_ARM_CALL 00000000 fftw_plan_destroy_internal │ │ │ │ │ -000004a4 0000191c R_ARM_CALL 00000000 fftw_plan_destroy_internal │ │ │ │ │ -000004bc 00002b1c R_ARM_CALL 00000000 fftw_mpi_dft_serial_applicable │ │ │ │ │ -000004d0 00001203 R_ARM_REL32 00000000 .data.rel.ro │ │ │ │ │ -000004e4 00002c1c R_ARM_CALL 00000000 fftw_plan_awake │ │ │ │ │ -000004f0 00002c1c R_ARM_CALL 00000000 fftw_plan_awake │ │ │ │ │ -00000500 00002c1d R_ARM_JUMP24 00000000 fftw_plan_awake │ │ │ │ │ -00000524 00002e1c R_ARM_CALL 00000000 fftw_mksolver │ │ │ │ │ -00000538 00002f1c R_ARM_CALL 00000000 fftw_solver_register │ │ │ │ │ -00000544 00002e1c R_ARM_CALL 00000000 fftw_mksolver │ │ │ │ │ -00000560 00002f1c R_ARM_CALL 00000000 fftw_solver_register │ │ │ │ │ -00000570 00001503 R_ARM_REL32 00000000 .data.rel.ro.local │ │ │ │ │ +000000c0 0000181c R_ARM_CALL 00000000 memcpy │ │ │ │ │ +0000012c 00001003 R_ARM_REL32 00000000 .rodata │ │ │ │ │ +00000130 00000503 R_ARM_REL32 00000004 .LC2 │ │ │ │ │ +00000134 00000603 R_ARM_REL32 00000008 .LC3 │ │ │ │ │ +00000138 00000403 R_ARM_REL32 00000000 .LC1 │ │ │ │ │ +0000014c 0000191c R_ARM_CALL 00000000 fftw_plan_destroy_internal │ │ │ │ │ +00000154 0000191c R_ARM_CALL 00000000 fftw_plan_destroy_internal │ │ │ │ │ +00000168 0000191d R_ARM_JUMP24 00000000 fftw_plan_destroy_internal │ │ │ │ │ +0000019c 00001a1c R_ARM_CALL 00000000 MPI_Comm_size │ │ │ │ │ +00000234 00001b1c R_ARM_CALL 00000000 fftw_mpi_rearrange_applicable │ │ │ │ │ +00000254 00001c1c R_ARM_CALL 00000000 MPI_Comm_rank │ │ │ │ │ +00000260 00001a1c R_ARM_CALL 00000000 MPI_Comm_size │ │ │ │ │ +00000284 00001d1c R_ARM_CALL 00000000 fftw_mpi_rearrange_ny │ │ │ │ │ +00000298 00001e1c R_ARM_CALL 00000000 __aeabi_idiv │ │ │ │ │ +000002a8 00001f1c R_ARM_CALL 00000000 fftw_mpi_default_block │ │ │ │ │ +000002f0 0000201c R_ARM_CALL 00000000 fftw_mpi_mkproblem_transpose │ │ │ │ │ +000002fc 0000211c R_ARM_CALL 00000000 fftw_mkplan_d │ │ │ │ │ +00000310 0000221c R_ARM_CALL 00000000 fftw_mpi_any_true │ │ │ │ │ +00000348 0000231c R_ARM_CALL 00000000 fftw_extract_reim │ │ │ │ │ +0000035c 0000231c R_ARM_CALL 00000000 fftw_extract_reim │ │ │ │ │ +0000036c 0000241c R_ARM_CALL 00000000 fftw_mpi_block │ │ │ │ │ +00000380 0000251c R_ARM_CALL 00000000 fftw_mktensor_1d │ │ │ │ │ +000003a8 0000261c R_ARM_CALL 00000000 fftw_mktensor_2d │ │ │ │ │ +000003c8 0000271c R_ARM_CALL 00000000 fftw_mkproblem_dft_d │ │ │ │ │ +000003d4 0000211c R_ARM_CALL 00000000 fftw_mkplan_d │ │ │ │ │ +000003e8 0000221c R_ARM_CALL 00000000 fftw_mpi_any_true │ │ │ │ │ +00000428 0000201c R_ARM_CALL 00000000 fftw_mpi_mkproblem_transpose │ │ │ │ │ +00000434 0000211c R_ARM_CALL 00000000 fftw_mkplan_d │ │ │ │ │ +00000448 0000221c R_ARM_CALL 00000000 fftw_mpi_any_true │ │ │ │ │ +00000468 0000281c R_ARM_CALL 00000000 fftw_mkplan_rdft │ │ │ │ │ +000004d8 0000291c R_ARM_CALL 00000000 fftw_ops_add │ │ │ │ │ +000004e4 00002a1c R_ARM_CALL 00000000 fftw_ops_add2 │ │ │ │ │ +000004f8 0000191c R_ARM_CALL 00000000 fftw_plan_destroy_internal │ │ │ │ │ +00000500 0000191c R_ARM_CALL 00000000 fftw_plan_destroy_internal │ │ │ │ │ +00000508 0000191c R_ARM_CALL 00000000 fftw_plan_destroy_internal │ │ │ │ │ +00000520 00002b1c R_ARM_CALL 00000000 fftw_mpi_dft_serial_applicable │ │ │ │ │ +00000534 00001203 R_ARM_REL32 00000000 .data.rel.ro │ │ │ │ │ +00000550 00002c1c R_ARM_CALL 00000000 fftw_plan_awake │ │ │ │ │ +0000055c 00002c1c R_ARM_CALL 00000000 fftw_plan_awake │ │ │ │ │ +00000578 00002c1d R_ARM_JUMP24 00000000 fftw_plan_awake │ │ │ │ │ +000005a8 00002e1c R_ARM_CALL 00000000 fftw_mksolver │ │ │ │ │ +000005bc 00002f1c R_ARM_CALL 00000000 fftw_solver_register │ │ │ │ │ +000005c8 00002e1c R_ARM_CALL 00000000 fftw_mksolver │ │ │ │ │ +000005e4 00002f1c R_ARM_CALL 00000000 fftw_solver_register │ │ │ │ │ +00000604 00001503 R_ARM_REL32 00000000 .data.rel.ro.local │ │ │ │ │ │ │ │ │ │ -Relocation section '.rel.data.rel.ro' at offset 0xd10 contains 4 entries: │ │ │ │ │ +Relocation section '.rel.data.rel.ro' at offset 0xda4 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 000004d4 awake │ │ │ │ │ -00000008 00000702 R_ARM_ABS32 00000070 print │ │ │ │ │ -0000000c 00000a02 R_ARM_ABS32 00000104 destroy │ │ │ │ │ +00000004 00000e02 R_ARM_ABS32 00000538 awake │ │ │ │ │ +00000008 00000702 R_ARM_ABS32 00000094 print │ │ │ │ │ +0000000c 00000a02 R_ARM_ABS32 0000013c destroy │ │ │ │ │ │ │ │ │ │ -Relocation section '.rel.data.rel.ro.local' at offset 0xd30 contains 1 entry: │ │ │ │ │ +Relocation section '.rel.data.rel.ro.local' at offset 0xdc4 contains 1 entry: │ │ │ │ │ Offset Info Type Sym. Value Symbol's Name │ │ │ │ │ -00000004 00000b02 R_ARM_ABS32 00000128 mkplan │ │ │ │ │ +00000004 00000b02 R_ARM_ABS32 0000016c mkplan │ │ │ │ ├── objdump --line-numbers --disassemble --demangle --reloc --no-show-raw-insn --section=.text {} │ │ │ │ │ @@ -1,416 +1,453 @@ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ Disassembly of section .text: │ │ │ │ │ │ │ │ │ │ 00000000 : │ │ │ │ │ apply(): │ │ │ │ │ - push {r4, r5, r6, r7, r8, r9, lr} │ │ │ │ │ + strd r4, [sp, #-24]! @ 0xffffffe8 │ │ │ │ │ + mov r4, r0 │ │ │ │ │ + mov r5, r1 │ │ │ │ │ + strd r6, [sp, #8] │ │ │ │ │ + mov r6, r2 │ │ │ │ │ ldr r7, [r0, #76] @ 0x4c │ │ │ │ │ + str r8, [sp, #16] │ │ │ │ │ ldr r8, [r0, #80] @ 0x50 │ │ │ │ │ - mov r4, r0 │ │ │ │ │ + str lr, [sp, #20] │ │ │ │ │ + sub sp, sp, #8 │ │ │ │ │ ldr r0, [r0, #64] @ 0x40 │ │ │ │ │ - sub sp, sp, #12 │ │ │ │ │ ldr r3, [r0, #56] @ 0x38 │ │ │ │ │ - mov r5, r1 │ │ │ │ │ - mov r6, r2 │ │ │ │ │ blx r3 │ │ │ │ │ - ldr r3, [r4, #84] @ 0x54 │ │ │ │ │ ldr r0, [r4, #68] @ 0x44 │ │ │ │ │ + lsl r2, r8, #3 │ │ │ │ │ + lsl r1, r7, #3 │ │ │ │ │ + ldr r3, [r4, #84] @ 0x54 │ │ │ │ │ cmp r3, #0 │ │ │ │ │ movne r5, r6 │ │ │ │ │ - add r3, r5, r8, lsl #3 │ │ │ │ │ + add r3, r5, r2 │ │ │ │ │ + add r2, r6, r2 │ │ │ │ │ str r3, [sp] │ │ │ │ │ - add r2, r6, r8, lsl #3 │ │ │ │ │ - ldr r9, [r0, #56] @ 0x38 │ │ │ │ │ - add r3, r5, r7, lsl #3 │ │ │ │ │ - add r1, r6, r7, lsl #3 │ │ │ │ │ - blx r9 │ │ │ │ │ + add r3, r5, r1 │ │ │ │ │ + add r1, r6, r1 │ │ │ │ │ + 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, sp, #12 │ │ │ │ │ - pop {r4, r5, r6, r7, r8, r9, lr} │ │ │ │ │ + add sp, sp, #8 │ │ │ │ │ + ldrd r4, [sp] │ │ │ │ │ + ldrd r6, [sp, #8] │ │ │ │ │ + ldr r8, [sp, #16] │ │ │ │ │ + ldr lr, [sp, #20] │ │ │ │ │ + add sp, sp, #24 │ │ │ │ │ bx r3 │ │ │ │ │ │ │ │ │ │ -00000070 : │ │ │ │ │ +00000094 : │ │ │ │ │ print(): │ │ │ │ │ - push {r4, r5, r6, lr} │ │ │ │ │ + strd r4, [sp, #-16]! │ │ │ │ │ mov r5, r1 │ │ │ │ │ - sub sp, sp, #96 @ 0x60 │ │ │ │ │ - ldr r1, [pc, #112] @ f4 │ │ │ │ │ - add r3, sp, #16 │ │ │ │ │ mov r4, r0 │ │ │ │ │ + ldr r1, [pc, #132] @ 12c │ │ │ │ │ mov r2, #80 @ 0x50 │ │ │ │ │ + str r6, [sp, #8] │ │ │ │ │ + str lr, [sp, #12] │ │ │ │ │ + sub sp, sp, #96 @ 0x60 │ │ │ │ │ + add r3, sp, #16 │ │ │ │ │ mov r0, r3 │ │ │ │ │ add r1, pc, r1 │ │ │ │ │ bl 0 │ │ │ │ │ R_ARM_CALL memcpy │ │ │ │ │ ldr r3, [r4, #84] @ 0x54 │ │ │ │ │ ldr r2, [r4, #88] @ 0x58 │ │ │ │ │ - cmp r3, #2 │ │ │ │ │ ldr r6, [r5] │ │ │ │ │ + cmp r3, #2 │ │ │ │ │ add r2, r0, r2, lsl #4 │ │ │ │ │ - beq e8 │ │ │ │ │ - ldr r3, [pc, #64] @ f8 │ │ │ │ │ + beq 120 │ │ │ │ │ + ldr r3, [pc, #76] @ 130 │ │ │ │ │ add r3, pc, r3 │ │ │ │ │ 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] │ │ │ │ │ - ldr r1, [pc, #36] @ fc │ │ │ │ │ - mov r0, r5 │ │ │ │ │ + ldr r1, [pc, #44] @ 134 │ │ │ │ │ add r1, pc, r1 │ │ │ │ │ blx r6 │ │ │ │ │ add sp, sp, #96 @ 0x60 │ │ │ │ │ - pop {r4, r5, r6, pc} │ │ │ │ │ - ldr r3, [pc, #16] @ 100 │ │ │ │ │ + ldrd r4, [sp] │ │ │ │ │ + ldr r6, [sp, #8] │ │ │ │ │ + add sp, sp, #12 │ │ │ │ │ + pop {pc} @ (ldr pc, [sp], #4) │ │ │ │ │ + ldr r3, [pc, #16] @ 138 │ │ │ │ │ add r3, pc, r3 │ │ │ │ │ - b b8 │ │ │ │ │ - .word 0x0000005c │ │ │ │ │ + b e4 │ │ │ │ │ + .word 0x00000068 │ │ │ │ │ R_ARM_REL32 .rodata │ │ │ │ │ - .word 0x0000003c │ │ │ │ │ + .word 0x00000048 │ │ │ │ │ R_ARM_REL32 .LC2 │ │ │ │ │ - .word 0x0000001c │ │ │ │ │ + .word 0x00000028 │ │ │ │ │ R_ARM_REL32 .LC3 │ │ │ │ │ .word 0x0000000c │ │ │ │ │ R_ARM_REL32 .LC1 │ │ │ │ │ │ │ │ │ │ -00000104 : │ │ │ │ │ +0000013c : │ │ │ │ │ destroy(): │ │ │ │ │ - push {r4, lr} │ │ │ │ │ + str r4, [sp, #-8]! │ │ │ │ │ mov r4, r0 │ │ │ │ │ ldr r0, [r0, #72] @ 0x48 │ │ │ │ │ + str lr, [sp, #4] │ │ │ │ │ bl 0 │ │ │ │ │ R_ARM_CALL fftw_plan_destroy_internal │ │ │ │ │ ldr r0, [r4, #68] @ 0x44 │ │ │ │ │ bl 0 │ │ │ │ │ R_ARM_CALL fftw_plan_destroy_internal │ │ │ │ │ + ldr lr, [sp, #4] │ │ │ │ │ ldr r0, [r4, #64] @ 0x40 │ │ │ │ │ - pop {r4, lr} │ │ │ │ │ + ldr r4, [sp] │ │ │ │ │ + add sp, sp, #8 │ │ │ │ │ b 0 │ │ │ │ │ R_ARM_JUMP24 fftw_plan_destroy_internal │ │ │ │ │ │ │ │ │ │ -00000128 : │ │ │ │ │ +0000016c : │ │ │ │ │ mkplan(): │ │ │ │ │ - push {r4, r5, r6, r7, r8, r9, sl, fp, lr} │ │ │ │ │ - sub sp, sp, #76 @ 0x4c │ │ │ │ │ + strd r4, [sp, #-36]! @ 0xffffffdc │ │ │ │ │ mov r4, r1 │ │ │ │ │ - add r5, sp, #68 @ 0x44 │ │ │ │ │ + strd r6, [sp, #8] │ │ │ │ │ mov r6, r0 │ │ │ │ │ - mov r1, r5 │ │ │ │ │ - ldr r0, [r4, #28] │ │ │ │ │ mov r7, r2 │ │ │ │ │ + strd r8, [sp, #16] │ │ │ │ │ + strd sl, [sp, #24] │ │ │ │ │ + str lr, [sp, #32] │ │ │ │ │ + sub sp, sp, #76 @ 0x4c │ │ │ │ │ + add r5, sp, #68 @ 0x44 │ │ │ │ │ + ldr r0, [r4, #28] │ │ │ │ │ + mov r1, r5 │ │ │ │ │ bl 0 │ │ │ │ │ R_ARM_CALL MPI_Comm_size │ │ │ │ │ ldr r3, [r4, #4] │ │ │ │ │ ldr r2, [r3] │ │ │ │ │ cmp r2, #1 │ │ │ │ │ - beq 168 │ │ │ │ │ + beq 1d0 │ │ │ │ │ mov r0, #0 │ │ │ │ │ add sp, sp, #76 @ 0x4c │ │ │ │ │ - pop {r4, r5, r6, r7, r8, r9, sl, fp, pc} │ │ │ │ │ + ldrd r4, [sp] │ │ │ │ │ + ldrd r6, [sp, #8] │ │ │ │ │ + ldrd r8, [sp, #16] │ │ │ │ │ + ldrd sl, [sp, #24] │ │ │ │ │ + add sp, sp, #32 │ │ │ │ │ + pop {pc} @ (ldr pc, [sp], #4) │ │ │ │ │ ldr r2, [r4, #24] │ │ │ │ │ bics r1, r2, #16 │ │ │ │ │ - bne 15c │ │ │ │ │ + bne 1b0 │ │ │ │ │ ldr r1, [r6, #8] │ │ │ │ │ cmp r1, #0 │ │ │ │ │ - beq 19c │ │ │ │ │ + beq 204 │ │ │ │ │ ldr r1, [r7, #164] @ 0xa4 │ │ │ │ │ tst r1, #4096 @ 0x1000 │ │ │ │ │ - bne 15c │ │ │ │ │ + bne 1b0 │ │ │ │ │ ldr r0, [r4, #12] │ │ │ │ │ ldr r1, [r4, #16] │ │ │ │ │ cmp r0, r1 │ │ │ │ │ - beq 15c │ │ │ │ │ - subs r2, r2, #0 │ │ │ │ │ + beq 1b0 │ │ │ │ │ ldr r1, [r4, #8] │ │ │ │ │ - ldr r0, [sp, #68] @ 0x44 │ │ │ │ │ + subs r2, r2, #0 │ │ │ │ │ movne r2, #1 │ │ │ │ │ + ldr r0, [sp, #68] @ 0x44 │ │ │ │ │ cmp r1, r0 │ │ │ │ │ orrge r2, r2, #1 │ │ │ │ │ cmp r2, #0 │ │ │ │ │ - beq 15c │ │ │ │ │ - str r0, [sp, #4] │ │ │ │ │ + beq 1b0 │ │ │ │ │ str r1, [sp] │ │ │ │ │ + str r0, [sp, #4] │ │ │ │ │ ldmib r3, {r1, r2, r3} │ │ │ │ │ ldr r0, [r6, #12] │ │ │ │ │ bl 0 │ │ │ │ │ R_ARM_CALL fftw_mpi_rearrange_applicable │ │ │ │ │ cmp r0, #0 │ │ │ │ │ - beq 15c │ │ │ │ │ + beq 1b0 │ │ │ │ │ ldr r3, [r7, #164] @ 0xa4 │ │ │ │ │ tst r3, #8 │ │ │ │ │ - bne 4b8 │ │ │ │ │ - add r1, sp, #64 @ 0x40 │ │ │ │ │ + bne 51c │ │ │ │ │ ldr r0, [r4, #28] │ │ │ │ │ + add r1, sp, #64 @ 0x40 │ │ │ │ │ bl 0 │ │ │ │ │ R_ARM_CALL MPI_Comm_rank │ │ │ │ │ - mov r1, r5 │ │ │ │ │ ldr r0, [r4, #28] │ │ │ │ │ + mov r1, r5 │ │ │ │ │ bl 0 │ │ │ │ │ R_ARM_CALL MPI_Comm_size │ │ │ │ │ ldr r3, [r4, #4] │ │ │ │ │ ldr r2, [sp, #68] @ 0x44 │ │ │ │ │ ldr sl, [r3, #4]! │ │ │ │ │ str r2, [sp, #4] │ │ │ │ │ ldr r2, [r4, #8] │ │ │ │ │ str r2, [sp] │ │ │ │ │ ldm r3, {r1, r2, r3} │ │ │ │ │ ldr r0, [r6, #12] │ │ │ │ │ bl 0 │ │ │ │ │ R_ARM_CALL fftw_mpi_rearrange_ny │ │ │ │ │ subs r5, r0, #0 │ │ │ │ │ - beq 15c │ │ │ │ │ + beq 1b0 │ │ │ │ │ ldr r0, [r4, #8] │ │ │ │ │ mov r1, r5 │ │ │ │ │ bl 0 <__aeabi_idiv> │ │ │ │ │ R_ARM_CALL __aeabi_idiv │ │ │ │ │ ldr r1, [sp, #68] @ 0x44 │ │ │ │ │ mov r8, r0 │ │ │ │ │ mov r0, r5 │ │ │ │ │ bl 0 │ │ │ │ │ R_ARM_CALL fftw_mpi_default_block │ │ │ │ │ mov r3, #0 │ │ │ │ │ ldr fp, [r4, #12] │ │ │ │ │ + lsl r2, r8, #1 │ │ │ │ │ + mov r1, r5 │ │ │ │ │ ldr r9, [r4, #16] │ │ │ │ │ str r3, [sp, #16] │ │ │ │ │ ldr r3, [r4, #28] │ │ │ │ │ - str r3, [sp, #12] │ │ │ │ │ - lsl r2, r8, #1 │ │ │ │ │ - mov r1, r5 │ │ │ │ │ - str r2, [sp, #28] │ │ │ │ │ str r0, [sp, #8] │ │ │ │ │ - ldr r3, [r4, #4] │ │ │ │ │ str r0, [sp, #32] │ │ │ │ │ + mov r0, sl │ │ │ │ │ + str r3, [sp, #12] │ │ │ │ │ + ldr r3, [r4, #4] │ │ │ │ │ + str r2, [sp, #28] │ │ │ │ │ ldr r3, [r3, #8] │ │ │ │ │ + str r9, [sp] │ │ │ │ │ str r3, [sp, #4] │ │ │ │ │ - mov r0, sl │ │ │ │ │ mov r3, fp │ │ │ │ │ - str r9, [sp] │ │ │ │ │ bl 0 │ │ │ │ │ R_ARM_CALL fftw_mpi_mkproblem_transpose │ │ │ │ │ mov r1, r0 │ │ │ │ │ mov r0, r7 │ │ │ │ │ bl 0 │ │ │ │ │ R_ARM_CALL fftw_mkplan_d │ │ │ │ │ - ldr r1, [r4, #28] │ │ │ │ │ str r0, [sp, #36] @ 0x24 │ │ │ │ │ clz r0, r0 │ │ │ │ │ + ldr r1, [r4, #28] │ │ │ │ │ lsr r0, r0, #5 │ │ │ │ │ bl 0 │ │ │ │ │ R_ARM_CALL fftw_mpi_any_true │ │ │ │ │ cmp r0, #0 │ │ │ │ │ - bne 4ac │ │ │ │ │ + bne 510 │ │ │ │ │ ldr r3, [r6, #8] │ │ │ │ │ cmp r3, #0 │ │ │ │ │ movne fp, r9 │ │ │ │ │ - bne 2d0 │ │ │ │ │ + bne 338 │ │ │ │ │ ldr r3, [r7, #164] @ 0xa4 │ │ │ │ │ tst r3, #4096 @ 0x1000 │ │ │ │ │ movne fp, r9 │ │ │ │ │ ldr r0, [r4, #20] │ │ │ │ │ add r3, sp, #52 @ 0x34 │ │ │ │ │ add r2, sp, #48 @ 0x30 │ │ │ │ │ mov r1, fp │ │ │ │ │ bl 0 │ │ │ │ │ R_ARM_CALL fftw_extract_reim │ │ │ │ │ - add r3, sp, #60 @ 0x3c │ │ │ │ │ ldr r0, [r4, #20] │ │ │ │ │ + add r3, sp, #60 @ 0x3c │ │ │ │ │ add r2, sp, #56 @ 0x38 │ │ │ │ │ mov r1, r9 │ │ │ │ │ bl 0 │ │ │ │ │ R_ARM_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_CALL fftw_mpi_block │ │ │ │ │ ldr r2, [sp, #28] │ │ │ │ │ - mov r1, r2 │ │ │ │ │ str r0, [sp, #44] @ 0x2c │ │ │ │ │ mov r0, sl │ │ │ │ │ + mov r1, r2 │ │ │ │ │ bl 0 │ │ │ │ │ R_ARM_CALL fftw_mktensor_1d │ │ │ │ │ mul r2, r8, sl │ │ │ │ │ mov r3, #2 │ │ │ │ │ + str r3, [sp] │ │ │ │ │ lsl r2, r2, #1 │ │ │ │ │ - mov r1, r2 │ │ │ │ │ str r3, [sp, #4] │ │ │ │ │ - str r3, [sp] │ │ │ │ │ mov r3, r8 │ │ │ │ │ str r0, [sp, #40] @ 0x28 │ │ │ │ │ ldr r0, [sp, #44] @ 0x2c │ │ │ │ │ + mov r1, r2 │ │ │ │ │ bl 0 │ │ │ │ │ R_ARM_CALL fftw_mktensor_2d │ │ │ │ │ ldr r3, [sp, #52] @ 0x34 │ │ │ │ │ + mov r1, r0 │ │ │ │ │ + ldr r0, [sp, #40] @ 0x28 │ │ │ │ │ str r3, [sp, #4] │ │ │ │ │ ldr r3, [sp, #48] @ 0x30 │ │ │ │ │ str r3, [sp] │ │ │ │ │ ldrd r2, [sp, #56] @ 0x38 │ │ │ │ │ - mov r1, r0 │ │ │ │ │ - ldr r0, [sp, #40] @ 0x28 │ │ │ │ │ bl 0 │ │ │ │ │ R_ARM_CALL fftw_mkproblem_dft_d │ │ │ │ │ mov r1, r0 │ │ │ │ │ mov r0, r7 │ │ │ │ │ bl 0 │ │ │ │ │ R_ARM_CALL fftw_mkplan_d │ │ │ │ │ - ldr r1, [r4, #28] │ │ │ │ │ mov r8, r0 │ │ │ │ │ clz r0, r0 │ │ │ │ │ + ldr r1, [r4, #28] │ │ │ │ │ lsr r0, r0, #5 │ │ │ │ │ bl 0 │ │ │ │ │ R_ARM_CALL fftw_mpi_any_true │ │ │ │ │ cmp r0, #0 │ │ │ │ │ - bne 48c │ │ │ │ │ + bne 4f0 │ │ │ │ │ str r0, [sp, #16] │ │ │ │ │ + mov r1, sl │ │ │ │ │ + mov r0, r5 │ │ │ │ │ ldr r3, [r4, #28] │ │ │ │ │ + ldr r2, [sp, #28] │ │ │ │ │ str r3, [sp, #12] │ │ │ │ │ ldr r3, [r4, #4] │ │ │ │ │ - ldr r2, [sp, #28] │ │ │ │ │ ldr r3, [r3, #12] │ │ │ │ │ + str r9, [sp] │ │ │ │ │ str r3, [sp, #8] │ │ │ │ │ ldr r3, [sp, #32] │ │ │ │ │ - mov r1, sl │ │ │ │ │ str r3, [sp, #4] │ │ │ │ │ - str r9, [sp] │ │ │ │ │ mov r3, fp │ │ │ │ │ - mov r0, r5 │ │ │ │ │ bl 0 │ │ │ │ │ R_ARM_CALL fftw_mpi_mkproblem_transpose │ │ │ │ │ mov r1, r0 │ │ │ │ │ mov r0, r7 │ │ │ │ │ bl 0 │ │ │ │ │ R_ARM_CALL fftw_mkplan_d │ │ │ │ │ - ldr r1, [r4, #28] │ │ │ │ │ mov r9, r0 │ │ │ │ │ clz r0, r0 │ │ │ │ │ + ldr r1, [r4, #28] │ │ │ │ │ lsr r0, r0, #5 │ │ │ │ │ bl 0 │ │ │ │ │ R_ARM_CALL fftw_mpi_any_true │ │ │ │ │ cmp r0, #0 │ │ │ │ │ - bne 490 │ │ │ │ │ - ldr r2, [pc, #216] @ 4cc │ │ │ │ │ - ldr r1, [pc, #216] @ 4d0 │ │ │ │ │ + bne 4f4 │ │ │ │ │ + ldr r2, [pc, #212] @ 530 │ │ │ │ │ + mov r0, #96 @ 0x60 │ │ │ │ │ + ldr r1, [pc, #208] @ 534 │ │ │ │ │ add r2, pc, r2 │ │ │ │ │ add r1, pc, r1 │ │ │ │ │ - mov r0, #96 @ 0x60 │ │ │ │ │ bl 0 │ │ │ │ │ R_ARM_CALL fftw_mkplan_rdft │ │ │ │ │ ldr r3, [sp, #36] @ 0x24 │ │ │ │ │ - ldr r2, [r4, #16] │ │ │ │ │ + mov r5, r0 │ │ │ │ │ add r1, r8, #8 │ │ │ │ │ + ldr r2, [r4, #16] │ │ │ │ │ + add r4, r0, #8 │ │ │ │ │ str r3, [r0, #64] @ 0x40 │ │ │ │ │ ldr r3, [r6, #8] │ │ │ │ │ - add r4, r0, #8 │ │ │ │ │ + str r8, [r0, #68] @ 0x44 │ │ │ │ │ + str r9, [r0, #72] @ 0x48 │ │ │ │ │ cmp r3, #0 │ │ │ │ │ ldreq r3, [r7, #164] @ 0xa4 │ │ │ │ │ movne r3, #2 │ │ │ │ │ andeq r3, r3, #4096 @ 0x1000 │ │ │ │ │ str r3, [r0, #84] @ 0x54 │ │ │ │ │ ldr r3, [sp, #56] @ 0x38 │ │ │ │ │ - mov r5, r0 │ │ │ │ │ sub r3, r3, r2 │ │ │ │ │ asr r3, r3, #3 │ │ │ │ │ str r3, [r0, #76] @ 0x4c │ │ │ │ │ ldr r3, [sp, #60] @ 0x3c │ │ │ │ │ - str r8, [r0, #68] @ 0x44 │ │ │ │ │ sub r3, r3, r2 │ │ │ │ │ + mov r2, r4 │ │ │ │ │ asr r3, r3, #3 │ │ │ │ │ str r3, [r0, #80] @ 0x50 │ │ │ │ │ ldr r3, [r6, #12] │ │ │ │ │ str r3, [r0, #88] @ 0x58 │ │ │ │ │ ldr r3, [sp, #36] @ 0x24 │ │ │ │ │ - mov r2, r4 │ │ │ │ │ - str r9, [r0, #72] @ 0x48 │ │ │ │ │ add r0, r3, #8 │ │ │ │ │ bl 0 │ │ │ │ │ R_ARM_CALL fftw_ops_add │ │ │ │ │ add r0, r9, #8 │ │ │ │ │ mov r1, r4 │ │ │ │ │ bl 0 │ │ │ │ │ R_ARM_CALL fftw_ops_add2 │ │ │ │ │ mov r0, r5 │ │ │ │ │ - add sp, sp, #76 @ 0x4c │ │ │ │ │ - pop {r4, r5, r6, r7, r8, r9, sl, fp, pc} │ │ │ │ │ + b 1b4 │ │ │ │ │ mov r9, #0 │ │ │ │ │ mov r0, r9 │ │ │ │ │ bl 0 │ │ │ │ │ R_ARM_CALL fftw_plan_destroy_internal │ │ │ │ │ mov r0, r8 │ │ │ │ │ bl 0 │ │ │ │ │ R_ARM_CALL fftw_plan_destroy_internal │ │ │ │ │ ldr r0, [sp, #36] @ 0x24 │ │ │ │ │ bl 0 │ │ │ │ │ R_ARM_CALL fftw_plan_destroy_internal │ │ │ │ │ - b 15c │ │ │ │ │ + b 1b0 │ │ │ │ │ mov r9, #0 │ │ │ │ │ mov r8, r9 │ │ │ │ │ - b 490 │ │ │ │ │ + b 4f4 │ │ │ │ │ mov r0, r4 │ │ │ │ │ bl 0 │ │ │ │ │ R_ARM_CALL fftw_mpi_dft_serial_applicable │ │ │ │ │ cmp r0, #0 │ │ │ │ │ - bne 15c │ │ │ │ │ - b 1e4 │ │ │ │ │ - .word 0xfffffc04 │ │ │ │ │ - .word 0x000000d0 │ │ │ │ │ + bne 1b0 │ │ │ │ │ + b 24c │ │ │ │ │ + .word 0xfffffb98 │ │ │ │ │ + .word 0x000000c8 │ │ │ │ │ R_ARM_REL32 .data.rel.ro │ │ │ │ │ │ │ │ │ │ -000004d4 : │ │ │ │ │ +00000538 : │ │ │ │ │ awake(): │ │ │ │ │ - push {r4, r5, r6, lr} │ │ │ │ │ + strd r4, [sp, #-16]! │ │ │ │ │ mov r4, r0 │ │ │ │ │ mov r5, r1 │ │ │ │ │ ldr r0, [r0, #64] @ 0x40 │ │ │ │ │ + str r6, [sp, #8] │ │ │ │ │ + str lr, [sp, #12] │ │ │ │ │ bl 0 │ │ │ │ │ R_ARM_CALL fftw_plan_awake │ │ │ │ │ ldr r0, [r4, #68] @ 0x44 │ │ │ │ │ mov r1, r5 │ │ │ │ │ bl 0 │ │ │ │ │ R_ARM_CALL fftw_plan_awake │ │ │ │ │ - ldr r0, [r4, #72] @ 0x48 │ │ │ │ │ + ldr r6, [sp, #8] │ │ │ │ │ mov r1, r5 │ │ │ │ │ - pop {r4, r5, r6, lr} │ │ │ │ │ + ldr lr, [sp, #12] │ │ │ │ │ + ldr r0, [r4, #72] @ 0x48 │ │ │ │ │ + ldrd r4, [sp] │ │ │ │ │ + add sp, sp, #16 │ │ │ │ │ b 0 │ │ │ │ │ R_ARM_JUMP24 fftw_plan_awake │ │ │ │ │ │ │ │ │ │ -00000504 : │ │ │ │ │ +0000057c : │ │ │ │ │ fftw_mpi_dft_rank1_bigvec_register(): │ │ │ │ │ - push {r4, r5, r6, r7, r8, lr} │ │ │ │ │ - ldr r6, [pc, #96] @ 570 │ │ │ │ │ + strd r4, [sp, #-24]! @ 0xffffffe8 │ │ │ │ │ mov r4, #0 │ │ │ │ │ mov r5, r0 │ │ │ │ │ - add r6, pc, r6 │ │ │ │ │ + strd r6, [sp, #8] │ │ │ │ │ mov r7, r4 │ │ │ │ │ + ldr r6, [pc, #108] @ 604 │ │ │ │ │ + str r8, [sp, #16] │ │ │ │ │ + str lr, [sp, #20] │ │ │ │ │ + add r6, pc, r6 │ │ │ │ │ mov r1, r6 │ │ │ │ │ mov r0, #16 │ │ │ │ │ bl 0 │ │ │ │ │ R_ARM_CALL fftw_mksolver │ │ │ │ │ mov r1, r0 │ │ │ │ │ - str r4, [r0, #12] │ │ │ │ │ str r7, [r0, #8] │ │ │ │ │ + str r4, [r0, #12] │ │ │ │ │ mov r0, r5 │ │ │ │ │ bl 0 │ │ │ │ │ R_ARM_CALL fftw_solver_register │ │ │ │ │ mov r1, r6 │ │ │ │ │ mov r0, #16 │ │ │ │ │ bl 0 │ │ │ │ │ R_ARM_CALL fftw_mksolver │ │ │ │ │ mov r3, #1 │ │ │ │ │ - str r4, [r0, #12] │ │ │ │ │ mov r1, r0 │ │ │ │ │ str r3, [r0, #8] │ │ │ │ │ - add r4, r4, #1 │ │ │ │ │ + str r4, [r0, #12] │ │ │ │ │ mov r0, r5 │ │ │ │ │ + add r4, r4, #1 │ │ │ │ │ bl 0 │ │ │ │ │ R_ARM_CALL fftw_solver_register │ │ │ │ │ cmp r4, #4 │ │ │ │ │ - bne 51c │ │ │ │ │ - pop {r4, r5, r6, r7, r8, pc} │ │ │ │ │ - .word 0x00000054 │ │ │ │ │ + bne 5a0 │ │ │ │ │ + ldrd r4, [sp] │ │ │ │ │ + ldrd r6, [sp, #8] │ │ │ │ │ + ldr r8, [sp, #16] │ │ │ │ │ + add sp, sp, #20 │ │ │ │ │ + pop {pc} @ (ldr pc, [sp], #4) │ │ │ │ │ + .word 0x00000060 │ │ │ │ │ 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: 2400 (bytes into file) │ │ │ │ │ + Start of section headers: 2560 (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 0x960: │ │ │ │ │ +There are 13 section headers, starting at offset 0xa00: │ │ │ │ │ │ │ │ │ │ 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 00034c 00 AX 0 0 4 │ │ │ │ │ - [ 2] .rel.text REL 00000000 0007c0 000108 08 I 10 1 4 │ │ │ │ │ - [ 3] .data PROGBITS 00000000 000380 000000 00 WA 0 0 1 │ │ │ │ │ - [ 4] .bss NOBITS 00000000 000380 000000 00 WA 0 0 1 │ │ │ │ │ - [ 5] .rodata.str1.4 PROGBITS 00000000 000380 000030 01 AMS 0 0 4 │ │ │ │ │ - [ 6] .data.rel.ro.local PROGBITS 00000000 0003b0 000014 00 WA 0 0 4 │ │ │ │ │ - [ 7] .rel.data.rel.ro.local REL 00000000 0008c8 000020 08 I 10 6 4 │ │ │ │ │ - [ 8] .note.GNU-stack PROGBITS 00000000 0003c4 000000 00 0 0 1 │ │ │ │ │ - [ 9] .ARM.attributes ARM_ATTRIBUTES 00000000 0003c4 00002b 00 0 0 1 │ │ │ │ │ - [10] .symtab SYMTAB 00000000 0003f0 000270 10 11 21 4 │ │ │ │ │ - [11] .strtab STRTAB 00000000 000660 00015f 00 0 0 1 │ │ │ │ │ - [12] .shstrtab STRTAB 00000000 0008e8 000076 00 0 0 1 │ │ │ │ │ + [ 1] .text PROGBITS 00000000 000034 0003ec 00 AX 0 0 4 │ │ │ │ │ + [ 2] .rel.text REL 00000000 000860 000108 08 I 10 1 4 │ │ │ │ │ + [ 3] .data PROGBITS 00000000 000420 000000 00 WA 0 0 1 │ │ │ │ │ + [ 4] .bss NOBITS 00000000 000420 000000 00 WA 0 0 1 │ │ │ │ │ + [ 5] .rodata.str1.4 PROGBITS 00000000 000420 000030 01 AMS 0 0 4 │ │ │ │ │ + [ 6] .data.rel.ro.local PROGBITS 00000000 000450 000014 00 WA 0 0 4 │ │ │ │ │ + [ 7] .rel.data.rel.ro.local REL 00000000 000968 000020 08 I 10 6 4 │ │ │ │ │ + [ 8] .note.GNU-stack PROGBITS 00000000 000464 000000 00 0 0 1 │ │ │ │ │ + [ 9] .ARM.attributes ARM_ATTRIBUTES 00000000 000464 00002b 00 0 0 1 │ │ │ │ │ + [10] .symtab SYMTAB 00000000 000490 000270 10 11 21 4 │ │ │ │ │ + [11] .strtab STRTAB 00000000 000700 00015f 00 0 0 1 │ │ │ │ │ + [12] .shstrtab STRTAB 00000000 000988 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: 00000000 0 NOTYPE LOCAL DEFAULT 1 $a │ │ │ │ │ - 2: 00000000 36 FUNC LOCAL DEFAULT 1 destroy │ │ │ │ │ + 2: 00000000 48 FUNC LOCAL DEFAULT 1 destroy │ │ │ │ │ 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: 00000024 188 FUNC LOCAL DEFAULT 1 print │ │ │ │ │ - 8: 000000d4 0 NOTYPE LOCAL DEFAULT 1 $d │ │ │ │ │ - 9: 000000e0 0 NOTYPE LOCAL DEFAULT 1 $a │ │ │ │ │ - 10: 000000e0 84 FUNC LOCAL DEFAULT 1 zero │ │ │ │ │ + 7: 00000030 216 FUNC LOCAL DEFAULT 1 print │ │ │ │ │ + 8: 000000fc 0 NOTYPE LOCAL DEFAULT 1 $d │ │ │ │ │ + 9: 00000108 0 NOTYPE LOCAL DEFAULT 1 $a │ │ │ │ │ + 10: 00000108 104 FUNC LOCAL DEFAULT 1 zero │ │ │ │ │ 11: 00000028 0 NOTYPE LOCAL DEFAULT 5 .LC3 │ │ │ │ │ - 12: 00000134 144 FUNC LOCAL DEFAULT 1 hash │ │ │ │ │ - 13: 000001c0 0 NOTYPE LOCAL DEFAULT 1 $d │ │ │ │ │ - 14: 000001c4 0 NOTYPE LOCAL DEFAULT 1 $a │ │ │ │ │ - 15: 00000280 0 NOTYPE LOCAL DEFAULT 1 $d │ │ │ │ │ - 16: 00000284 0 NOTYPE LOCAL DEFAULT 1 $a │ │ │ │ │ - 17: 00000348 0 NOTYPE LOCAL DEFAULT 1 $d │ │ │ │ │ + 12: 00000170 156 FUNC LOCAL DEFAULT 1 hash │ │ │ │ │ + 13: 00000208 0 NOTYPE LOCAL DEFAULT 1 $d │ │ │ │ │ + 14: 0000020c 0 NOTYPE LOCAL DEFAULT 1 $a │ │ │ │ │ + 15: 000002f0 0 NOTYPE LOCAL DEFAULT 1 $d │ │ │ │ │ + 16: 000002f4 0 NOTYPE LOCAL DEFAULT 1 $a │ │ │ │ │ + 17: 000003e8 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: 000001c4 192 FUNC GLOBAL DEFAULT 1 fftw_mpi_mkproblem_dft │ │ │ │ │ + 34: 0000020c 232 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: 00000284 200 FUNC GLOBAL DEFAULT 1 fftw_mpi_mkproblem_dft_d │ │ │ │ │ + 38: 000002f4 248 FUNC GLOBAL DEFAULT 1 fftw_mpi_mkproblem_dft_d │ │ │ │ ├── readelf --wide --relocs {} │ │ │ │ │ @@ -1,43 +1,43 @@ │ │ │ │ │ │ │ │ │ │ -Relocation section '.rel.text' at offset 0x7c0 contains 33 entries: │ │ │ │ │ +Relocation section '.rel.text' at offset 0x860 contains 33 entries: │ │ │ │ │ Offset Info Type Sym. Value Symbol's Name │ │ │ │ │ -0000000c 0000151c R_ARM_CALL 00000000 fftw_mpi_dtensor_destroy │ │ │ │ │ -00000014 0000161c R_ARM_CALL 00000000 MPI_Comm_free │ │ │ │ │ -00000020 0000171d R_ARM_JUMP24 00000000 fftw_ifree │ │ │ │ │ -00000044 0000181c R_ARM_CALL 00000000 fftw_ialignment_of │ │ │ │ │ -00000058 0000181c R_ARM_CALL 00000000 fftw_ialignment_of │ │ │ │ │ -00000080 0000191c R_ARM_CALL 00000000 fftw_mpi_dtensor_print │ │ │ │ │ -000000b0 00001a1c R_ARM_CALL 00000000 MPI_Comm_size │ │ │ │ │ -000000d4 00000403 R_ARM_REL32 00000000 .LC0 │ │ │ │ │ -000000d8 00000503 R_ARM_REL32 00000014 .LC1 │ │ │ │ │ -000000dc 00000603 R_ARM_REL32 00000020 .LC2 │ │ │ │ │ -000000f8 00001b1c R_ARM_CALL 00000000 MPI_Comm_rank │ │ │ │ │ -0000010c 00001c1c R_ARM_CALL 00000000 fftw_mpi_total_block │ │ │ │ │ -00000128 00001d1c R_ARM_CALL 00000000 memset │ │ │ │ │ -00000150 00001e1c R_ARM_CALL 00000000 fftw_md5puts │ │ │ │ │ -0000016c 00001f1c R_ARM_CALL 00000000 fftw_md5int │ │ │ │ │ -00000178 0000201c R_ARM_CALL 00000000 fftw_mpi_dtensor_md5 │ │ │ │ │ -00000184 0000211c R_ARM_CALL 00000000 fftw_md5INT │ │ │ │ │ -00000190 00001f1c R_ARM_CALL 00000000 fftw_md5int │ │ │ │ │ -0000019c 00001f1c R_ARM_CALL 00000000 fftw_md5int │ │ │ │ │ -000001a8 00001a1c R_ARM_CALL 00000000 MPI_Comm_size │ │ │ │ │ -000001b4 00001f1c R_ARM_CALL 00000000 fftw_md5int │ │ │ │ │ -000001c0 00000b03 R_ARM_REL32 00000028 .LC3 │ │ │ │ │ -000001f0 0000231c R_ARM_CALL 00000000 fftw_mkproblem │ │ │ │ │ -00000200 00001a1c R_ARM_CALL 00000000 MPI_Comm_size │ │ │ │ │ -0000020c 0000241c R_ARM_CALL 00000000 fftw_mpi_dtensor_canonical │ │ │ │ │ -00000270 0000251c R_ARM_CALL 00000000 MPI_Comm_dup │ │ │ │ │ -00000280 00001203 R_ARM_REL32 00000000 .data.rel.ro.local │ │ │ │ │ -000002b0 0000231c R_ARM_CALL 00000000 fftw_mkproblem │ │ │ │ │ -000002c0 00001a1c R_ARM_CALL 00000000 MPI_Comm_size │ │ │ │ │ -000002cc 0000241c R_ARM_CALL 00000000 fftw_mpi_dtensor_canonical │ │ │ │ │ -00000330 0000251c R_ARM_CALL 00000000 MPI_Comm_dup │ │ │ │ │ -00000338 0000151c R_ARM_CALL 00000000 fftw_mpi_dtensor_destroy │ │ │ │ │ -00000348 00001203 R_ARM_REL32 00000000 .data.rel.ro.local │ │ │ │ │ +00000010 0000151c R_ARM_CALL 00000000 fftw_mpi_dtensor_destroy │ │ │ │ │ +00000018 0000161c R_ARM_CALL 00000000 MPI_Comm_free │ │ │ │ │ +0000002c 0000171d R_ARM_JUMP24 00000000 fftw_ifree │ │ │ │ │ +0000005c 0000181c R_ARM_CALL 00000000 fftw_ialignment_of │ │ │ │ │ +0000006c 0000181c R_ARM_CALL 00000000 fftw_ialignment_of │ │ │ │ │ +00000098 0000191c R_ARM_CALL 00000000 fftw_mpi_dtensor_print │ │ │ │ │ +000000c8 00001a1c R_ARM_CALL 00000000 MPI_Comm_size │ │ │ │ │ +000000fc 00000403 R_ARM_REL32 00000000 .LC0 │ │ │ │ │ +00000100 00000503 R_ARM_REL32 00000014 .LC1 │ │ │ │ │ +00000104 00000603 R_ARM_REL32 00000020 .LC2 │ │ │ │ │ +00000128 00001b1c R_ARM_CALL 00000000 MPI_Comm_rank │ │ │ │ │ +0000013c 00001c1c R_ARM_CALL 00000000 fftw_mpi_total_block │ │ │ │ │ +00000158 00001d1c R_ARM_CALL 00000000 memset │ │ │ │ │ +00000190 00001e1c R_ARM_CALL 00000000 fftw_md5puts │ │ │ │ │ +000001ac 00001f1c R_ARM_CALL 00000000 fftw_md5int │ │ │ │ │ +000001b8 0000201c R_ARM_CALL 00000000 fftw_mpi_dtensor_md5 │ │ │ │ │ +000001c4 0000211c R_ARM_CALL 00000000 fftw_md5INT │ │ │ │ │ +000001d0 00001f1c R_ARM_CALL 00000000 fftw_md5int │ │ │ │ │ +000001dc 00001f1c R_ARM_CALL 00000000 fftw_md5int │ │ │ │ │ +000001e8 00001a1c R_ARM_CALL 00000000 MPI_Comm_size │ │ │ │ │ +000001f4 00001f1c R_ARM_CALL 00000000 fftw_md5int │ │ │ │ │ +00000208 00000b03 R_ARM_REL32 00000028 .LC3 │ │ │ │ │ +00000248 0000231c R_ARM_CALL 00000000 fftw_mkproblem │ │ │ │ │ +00000258 00001a1c R_ARM_CALL 00000000 MPI_Comm_size │ │ │ │ │ +00000264 0000241c R_ARM_CALL 00000000 fftw_mpi_dtensor_canonical │ │ │ │ │ +000002cc 0000251c R_ARM_CALL 00000000 MPI_Comm_dup │ │ │ │ │ +000002f0 00001203 R_ARM_REL32 00000000 .data.rel.ro.local │ │ │ │ │ +00000330 0000231c R_ARM_CALL 00000000 fftw_mkproblem │ │ │ │ │ +00000340 00001a1c R_ARM_CALL 00000000 MPI_Comm_size │ │ │ │ │ +0000034c 0000241c R_ARM_CALL 00000000 fftw_mpi_dtensor_canonical │ │ │ │ │ +000003bc 0000251c R_ARM_CALL 00000000 MPI_Comm_dup │ │ │ │ │ +000003c4 0000151c R_ARM_CALL 00000000 fftw_mpi_dtensor_destroy │ │ │ │ │ +000003e8 00001203 R_ARM_REL32 00000000 .data.rel.ro.local │ │ │ │ │ │ │ │ │ │ -Relocation section '.rel.data.rel.ro.local' at offset 0x8c8 contains 4 entries: │ │ │ │ │ +Relocation section '.rel.data.rel.ro.local' at offset 0x968 contains 4 entries: │ │ │ │ │ Offset Info Type Sym. Value Symbol's Name │ │ │ │ │ -00000004 00000c02 R_ARM_ABS32 00000134 hash │ │ │ │ │ -00000008 00000a02 R_ARM_ABS32 000000e0 zero │ │ │ │ │ -0000000c 00000702 R_ARM_ABS32 00000024 print │ │ │ │ │ +00000004 00000c02 R_ARM_ABS32 00000170 hash │ │ │ │ │ +00000008 00000a02 R_ARM_ABS32 00000108 zero │ │ │ │ │ +0000000c 00000702 R_ARM_ABS32 00000030 print │ │ │ │ │ 00000010 00000202 R_ARM_ABS32 00000000 destroy │ │ │ │ ├── objdump --line-numbers --disassemble --demangle --reloc --no-show-raw-insn --section=.text {} │ │ │ │ │ @@ -1,125 +1,141 @@ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ Disassembly of section .text: │ │ │ │ │ │ │ │ │ │ 00000000 : │ │ │ │ │ destroy(): │ │ │ │ │ - push {r4, lr} │ │ │ │ │ + str r4, [sp, #-8]! │ │ │ │ │ mov r4, r0 │ │ │ │ │ ldr r0, [r0, #4] │ │ │ │ │ + str lr, [sp, #4] │ │ │ │ │ bl 0 │ │ │ │ │ R_ARM_CALL fftw_mpi_dtensor_destroy │ │ │ │ │ add r0, r4, #28 │ │ │ │ │ bl 0 │ │ │ │ │ R_ARM_CALL MPI_Comm_free │ │ │ │ │ + ldr lr, [sp, #4] │ │ │ │ │ mov r0, r4 │ │ │ │ │ - pop {r4, lr} │ │ │ │ │ + ldr r4, [sp] │ │ │ │ │ + add sp, sp, #8 │ │ │ │ │ b 0 │ │ │ │ │ R_ARM_JUMP24 fftw_ifree │ │ │ │ │ │ │ │ │ │ -00000024 : │ │ │ │ │ +00000030 : │ │ │ │ │ print(): │ │ │ │ │ - push {r4, r5, r6, r7, r8, lr} │ │ │ │ │ + strd r4, [sp, #-24]! @ 0xffffffe8 │ │ │ │ │ mov r4, r0 │ │ │ │ │ - ldr r6, [r4, #16] │ │ │ │ │ + mov r5, r1 │ │ │ │ │ ldr r0, [r0, #12] │ │ │ │ │ + strd r6, [sp, #8] │ │ │ │ │ + ldr r6, [r4, #16] │ │ │ │ │ + str r8, [sp, #16] │ │ │ │ │ + str lr, [sp, #20] │ │ │ │ │ sub sp, sp, #16 │ │ │ │ │ - mov r5, r1 │ │ │ │ │ ldr r8, [r1] │ │ │ │ │ sub r6, r6, r0 │ │ │ │ │ bl 0 │ │ │ │ │ R_ARM_CALL fftw_ialignment_of │ │ │ │ │ - clz r6, r6 │ │ │ │ │ - lsr r6, r6, #5 │ │ │ │ │ mov r7, r0 │ │ │ │ │ ldr r0, [r4, #16] │ │ │ │ │ + clz r6, r6 │ │ │ │ │ bl 0 │ │ │ │ │ R_ARM_CALL fftw_ialignment_of │ │ │ │ │ - ldr r1, [pc, #112] @ d4 │ │ │ │ │ + ldr r1, [pc, #132] @ fc │ │ │ │ │ + lsr r6, r6, #5 │ │ │ │ │ mov r3, r7 │ │ │ │ │ - mov r2, r6 │ │ │ │ │ - add r1, pc, r1 │ │ │ │ │ str r0, [sp] │ │ │ │ │ mov r0, r5 │ │ │ │ │ + mov r2, r6 │ │ │ │ │ + add r1, pc, r1 │ │ │ │ │ blx r8 │ │ │ │ │ ldr r0, [r4, #4] │ │ │ │ │ mov r1, r5 │ │ │ │ │ bl 0 │ │ │ │ │ R_ARM_CALL fftw_mpi_dtensor_print │ │ │ │ │ - ldr r1, [pc, #76] @ d8 │ │ │ │ │ ldr r3, [r4, #24] │ │ │ │ │ - str r3, [sp] │ │ │ │ │ mov r0, r5 │ │ │ │ │ - ldr r3, [r4, #20] │ │ │ │ │ - ldr r2, [r4, #8] │ │ │ │ │ + ldr r1, [pc, #84] @ 100 │ │ │ │ │ + str r3, [sp] │ │ │ │ │ ldr r6, [r5] │ │ │ │ │ add r1, pc, r1 │ │ │ │ │ + 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_CALL MPI_Comm_size │ │ │ │ │ - ldr r1, [pc, #32] @ dc │ │ │ │ │ + ldr r1, [pc, #48] @ 104 │ │ │ │ │ + mov r0, r5 │ │ │ │ │ ldr r3, [r5] │ │ │ │ │ ldr r2, [sp, #12] │ │ │ │ │ add r1, pc, r1 │ │ │ │ │ - mov r0, r5 │ │ │ │ │ blx r3 │ │ │ │ │ add sp, sp, #16 │ │ │ │ │ - pop {r4, r5, r6, r7, r8, pc} │ │ │ │ │ - .word 0x00000064 │ │ │ │ │ + ldrd r4, [sp] │ │ │ │ │ + ldrd r6, [sp, #8] │ │ │ │ │ + ldr r8, [sp, #16] │ │ │ │ │ + add sp, sp, #20 │ │ │ │ │ + pop {pc} @ (ldr pc, [sp], #4) │ │ │ │ │ + .word 0x0000006c │ │ │ │ │ R_ARM_REL32 .LC0 │ │ │ │ │ - .word 0x00000030 │ │ │ │ │ + .word 0x00000048 │ │ │ │ │ R_ARM_REL32 .LC1 │ │ │ │ │ - .word 0x00000014 │ │ │ │ │ + .word 0x00000020 │ │ │ │ │ R_ARM_REL32 .LC2 │ │ │ │ │ │ │ │ │ │ -000000e0 : │ │ │ │ │ +00000108 : │ │ │ │ │ zero(): │ │ │ │ │ - push {r4, r5, r6, lr} │ │ │ │ │ - sub sp, sp, #8 │ │ │ │ │ + strd r4, [sp, #-16]! │ │ │ │ │ mov r4, r0 │ │ │ │ │ + str r6, [sp, #8] │ │ │ │ │ + str lr, [sp, #12] │ │ │ │ │ + sub sp, sp, #8 │ │ │ │ │ ldr r6, [r0, #12] │ │ │ │ │ add r1, sp, #4 │ │ │ │ │ ldr r0, [r0, #28] │ │ │ │ │ bl 0 │ │ │ │ │ R_ARM_CALL MPI_Comm_rank │ │ │ │ │ ldr r2, [sp, #4] │ │ │ │ │ - ldr r0, [r4, #4] │ │ │ │ │ mov r1, #0 │ │ │ │ │ ldr r5, [r4, #8] │ │ │ │ │ + ldr r0, [r4, #4] │ │ │ │ │ bl 0 │ │ │ │ │ R_ARM_CALL fftw_mpi_total_block │ │ │ │ │ mul r0, r5, r0 │ │ │ │ │ cmp r0, #0 │ │ │ │ │ - ble 12c │ │ │ │ │ + ble 15c │ │ │ │ │ lsl r2, r0, #4 │ │ │ │ │ mov r1, #0 │ │ │ │ │ mov r0, r6 │ │ │ │ │ bl 0 │ │ │ │ │ R_ARM_CALL memset │ │ │ │ │ add sp, sp, #8 │ │ │ │ │ - pop {r4, r5, r6, pc} │ │ │ │ │ + ldrd r4, [sp] │ │ │ │ │ + ldr r6, [sp, #8] │ │ │ │ │ + add sp, sp, #12 │ │ │ │ │ + pop {pc} @ (ldr pc, [sp], #4) │ │ │ │ │ │ │ │ │ │ -00000134 : │ │ │ │ │ +00000170 : │ │ │ │ │ hash(): │ │ │ │ │ - push {r4, r5, lr} │ │ │ │ │ + strd r4, [sp, #-12]! │ │ │ │ │ mov r4, r1 │ │ │ │ │ - ldr r1, [pc, #124] @ 1c0 │ │ │ │ │ - sub sp, sp, #12 │ │ │ │ │ mov r5, r0 │ │ │ │ │ - add r1, pc, r1 │ │ │ │ │ + ldr r1, [pc, #132] @ 208 │ │ │ │ │ mov r0, r4 │ │ │ │ │ + str lr, [sp, #8] │ │ │ │ │ + sub sp, sp, #12 │ │ │ │ │ + add r1, pc, r1 │ │ │ │ │ bl 0 │ │ │ │ │ R_ARM_CALL fftw_md5puts │ │ │ │ │ - ldr r3, [r5, #16] │ │ │ │ │ ldr r1, [r5, #12] │ │ │ │ │ mov r0, r4 │ │ │ │ │ + ldr r3, [r5, #16] │ │ │ │ │ sub r1, r1, r3 │ │ │ │ │ clz r1, r1 │ │ │ │ │ lsr r1, r1, #5 │ │ │ │ │ bl 0 │ │ │ │ │ R_ARM_CALL fftw_md5int │ │ │ │ │ ldr r1, [r5, #4] │ │ │ │ │ mov r0, r4 │ │ │ │ │ @@ -133,134 +149,158 @@ │ │ │ │ │ mov r0, r4 │ │ │ │ │ bl 0 │ │ │ │ │ R_ARM_CALL fftw_md5int │ │ │ │ │ ldr r1, [r5, #24] │ │ │ │ │ mov r0, r4 │ │ │ │ │ bl 0 │ │ │ │ │ R_ARM_CALL fftw_md5int │ │ │ │ │ - add r1, sp, #4 │ │ │ │ │ ldr r0, [r5, #28] │ │ │ │ │ + add r1, sp, #4 │ │ │ │ │ bl 0 │ │ │ │ │ R_ARM_CALL MPI_Comm_size │ │ │ │ │ ldr r1, [sp, #4] │ │ │ │ │ mov r0, r4 │ │ │ │ │ bl 0 │ │ │ │ │ R_ARM_CALL fftw_md5int │ │ │ │ │ add sp, sp, #12 │ │ │ │ │ - pop {r4, r5, pc} │ │ │ │ │ - .word 0x00000070 │ │ │ │ │ + ldrd r4, [sp] │ │ │ │ │ + add sp, sp, #8 │ │ │ │ │ + pop {pc} @ (ldr pc, [sp], #4) │ │ │ │ │ + .word 0x00000074 │ │ │ │ │ R_ARM_REL32 .LC3 │ │ │ │ │ │ │ │ │ │ -000001c4 : │ │ │ │ │ +0000020c : │ │ │ │ │ fftw_mpi_mkproblem_dft(): │ │ │ │ │ - push {r4, r5, r6, r7, r8, r9, sl, lr} │ │ │ │ │ + strd r4, [sp, #-36]! @ 0xffffffdc │ │ │ │ │ + mov r5, r3 │ │ │ │ │ + strd r6, [sp, #8] │ │ │ │ │ mov r7, r1 │ │ │ │ │ - ldr r1, [pc, #172] @ 280 │ │ │ │ │ - sub sp, sp, #16 │ │ │ │ │ + ldr r1, [pc, #204] @ 2f0 │ │ │ │ │ + strd r8, [sp, #16] │ │ │ │ │ + mov r9, r2 │ │ │ │ │ + strd sl, [sp, #24] │ │ │ │ │ mov sl, r0 │ │ │ │ │ - add r1, pc, r1 │ │ │ │ │ mov r0, #32 │ │ │ │ │ - mov r6, r3 │ │ │ │ │ - mov r9, r2 │ │ │ │ │ - ldr r8, [sp, #48] @ 0x30 │ │ │ │ │ - ldr r5, [sp, #56] @ 0x38 │ │ │ │ │ + str lr, [sp, #32] │ │ │ │ │ + sub sp, sp, #20 │ │ │ │ │ + ldr r8, [sp, #56] @ 0x38 │ │ │ │ │ + add r1, pc, r1 │ │ │ │ │ + ldr r6, [sp, #64] @ 0x40 │ │ │ │ │ bl 0 │ │ │ │ │ R_ARM_CALL fftw_mkproblem │ │ │ │ │ - mov r1, sp │ │ │ │ │ mov r4, r0 │ │ │ │ │ + mov r1, sp │ │ │ │ │ mov r0, r8 │ │ │ │ │ bl 0 │ │ │ │ │ R_ARM_CALL MPI_Comm_size │ │ │ │ │ mov r1, #1 │ │ │ │ │ mov r0, sl │ │ │ │ │ bl 0 │ │ │ │ │ R_ARM_CALL fftw_mpi_dtensor_canonical │ │ │ │ │ - ldr r3, [sp, #52] @ 0x34 │ │ │ │ │ - tst r5, #4 │ │ │ │ │ - str r6, [r4, #16] │ │ │ │ │ - str r3, [r4, #20] │ │ │ │ │ + ldr r3, [sp, #60] @ 0x3c │ │ │ │ │ + tst r6, #4 │ │ │ │ │ stmib r4, {r0, r7, r9} │ │ │ │ │ - beq 264 │ │ │ │ │ + str r5, [r4, #16] │ │ │ │ │ + str r3, [r4, #20] │ │ │ │ │ + beq 2c0 │ │ │ │ │ ldr r3, [r0] │ │ │ │ │ - mov ip, r0 │ │ │ │ │ cmp r3, #1 │ │ │ │ │ - ble 264 │ │ │ │ │ - add lr, r0, #4 │ │ │ │ │ - ldm lr, {r0, r1, r2} │ │ │ │ │ - add r3, sp, #4 │ │ │ │ │ - add ip, ip, #16 │ │ │ │ │ - stm r3, {r0, r1, r2} │ │ │ │ │ - ldm ip, {r0, r1, r2} │ │ │ │ │ - stm lr, {r0, r1, r2} │ │ │ │ │ - ldm r3, {r0, r1, r2} │ │ │ │ │ - bic r5, r5, #4 │ │ │ │ │ - eor r5, r5, #8 │ │ │ │ │ - stm ip, {r0, r1, r2} │ │ │ │ │ + ble 2c0 │ │ │ │ │ + ldrd r2, [r0, #4] │ │ │ │ │ + bic r6, r6, #4 │ │ │ │ │ + eor r6, r6, #8 │ │ │ │ │ + ldrd sl, [r0, #16] │ │ │ │ │ + ldr ip, [r0, #24] │ │ │ │ │ + strd r2, [sp, #4] │ │ │ │ │ + ldr r2, [r0, #12] │ │ │ │ │ + strd sl, [r0, #4] │ │ │ │ │ + ldrd sl, [sp, #4] │ │ │ │ │ + str ip, [r0, #12] │ │ │ │ │ + str r2, [sp, #12] │ │ │ │ │ + strd sl, [r0, #16] │ │ │ │ │ + str r2, [r0, #24] │ │ │ │ │ add r1, r4, #28 │ │ │ │ │ mov r0, r8 │ │ │ │ │ - str r5, [r4, #24] │ │ │ │ │ + str r6, [r4, #24] │ │ │ │ │ bl 0 │ │ │ │ │ R_ARM_CALL MPI_Comm_dup │ │ │ │ │ mov r0, r4 │ │ │ │ │ - add sp, sp, #16 │ │ │ │ │ - pop {r4, r5, r6, r7, r8, r9, sl, pc} │ │ │ │ │ - .word 0x000000a0 │ │ │ │ │ + add sp, sp, #20 │ │ │ │ │ + ldrd r4, [sp] │ │ │ │ │ + ldrd r6, [sp, #8] │ │ │ │ │ + ldrd r8, [sp, #16] │ │ │ │ │ + ldrd sl, [sp, #24] │ │ │ │ │ + add sp, sp, #32 │ │ │ │ │ + pop {pc} @ (ldr pc, [sp], #4) │ │ │ │ │ + .word 0x000000a8 │ │ │ │ │ R_ARM_REL32 .data.rel.ro.local │ │ │ │ │ │ │ │ │ │ -00000284 : │ │ │ │ │ +000002f4 : │ │ │ │ │ fftw_mpi_mkproblem_dft_d(): │ │ │ │ │ - push {r4, r5, r6, r7, r8, r9, sl, lr} │ │ │ │ │ - mov r8, r1 │ │ │ │ │ - ldr r1, [pc, #180] @ 348 │ │ │ │ │ - sub sp, sp, #16 │ │ │ │ │ + strd r4, [sp, #-32]! @ 0xffffffe0 │ │ │ │ │ mov r5, r0 │ │ │ │ │ - add r1, pc, r1 │ │ │ │ │ mov r0, #32 │ │ │ │ │ + strd r6, [sp, #8] │ │ │ │ │ mov r7, r3 │ │ │ │ │ - mov sl, r2 │ │ │ │ │ - ldr r9, [sp, #48] @ 0x30 │ │ │ │ │ + strd r8, [sp, #16] │ │ │ │ │ + mov r9, r1 │ │ │ │ │ + mov r8, r2 │ │ │ │ │ + ldr r1, [pc, #204] @ 3e8 │ │ │ │ │ + str sl, [sp, #24] │ │ │ │ │ + str lr, [sp, #28] │ │ │ │ │ + sub sp, sp, #16 │ │ │ │ │ + ldr sl, [sp, #48] @ 0x30 │ │ │ │ │ + add r1, pc, r1 │ │ │ │ │ ldr r6, [sp, #56] @ 0x38 │ │ │ │ │ bl 0 │ │ │ │ │ R_ARM_CALL fftw_mkproblem │ │ │ │ │ - mov r1, sp │ │ │ │ │ mov r4, r0 │ │ │ │ │ - mov r0, r9 │ │ │ │ │ + mov r1, sp │ │ │ │ │ + mov r0, sl │ │ │ │ │ bl 0 │ │ │ │ │ R_ARM_CALL MPI_Comm_size │ │ │ │ │ mov r1, #1 │ │ │ │ │ mov r0, r5 │ │ │ │ │ bl 0 │ │ │ │ │ R_ARM_CALL fftw_mpi_dtensor_canonical │ │ │ │ │ ldr r3, [sp, #52] @ 0x34 │ │ │ │ │ tst r6, #4 │ │ │ │ │ + stmib r4, {r0, r9} │ │ │ │ │ + str r8, [r4, #12] │ │ │ │ │ str r7, [r4, #16] │ │ │ │ │ str r3, [r4, #20] │ │ │ │ │ - stmib r4, {r0, r8, sl} │ │ │ │ │ - beq 324 │ │ │ │ │ + beq 3b0 │ │ │ │ │ ldr r3, [r0] │ │ │ │ │ mov ip, r0 │ │ │ │ │ cmp r3, #1 │ │ │ │ │ - ble 324 │ │ │ │ │ - add lr, r0, #4 │ │ │ │ │ - ldm lr, {r0, r1, r2} │ │ │ │ │ - add r3, sp, #4 │ │ │ │ │ - add ip, ip, #16 │ │ │ │ │ - stm r3, {r0, r1, r2} │ │ │ │ │ - ldm ip, {r0, r1, r2} │ │ │ │ │ - stm lr, {r0, r1, r2} │ │ │ │ │ - ldm r3, {r0, r1, r2} │ │ │ │ │ + ble 3b0 │ │ │ │ │ + ldrd r2, [r0, #4] │ │ │ │ │ bic r6, r6, #4 │ │ │ │ │ eor r6, r6, #8 │ │ │ │ │ - stm ip, {r0, r1, r2} │ │ │ │ │ + ldr r0, [r0, #12] │ │ │ │ │ + strd r2, [sp, #4] │ │ │ │ │ + ldrd r2, [ip, #16] │ │ │ │ │ + str r0, [sp, #12] │ │ │ │ │ + strd r2, [ip, #4] │ │ │ │ │ + ldr r3, [ip, #24] │ │ │ │ │ + str r3, [ip, #12] │ │ │ │ │ + ldrd r2, [sp, #4] │ │ │ │ │ + str r0, [ip, #24] │ │ │ │ │ + strd r2, [ip, #16] │ │ │ │ │ add r1, r4, #28 │ │ │ │ │ - mov r0, r9 │ │ │ │ │ + mov r0, sl │ │ │ │ │ str r6, [r4, #24] │ │ │ │ │ bl 0 │ │ │ │ │ R_ARM_CALL MPI_Comm_dup │ │ │ │ │ mov r0, r5 │ │ │ │ │ bl 0 │ │ │ │ │ R_ARM_CALL fftw_mpi_dtensor_destroy │ │ │ │ │ mov r0, r4 │ │ │ │ │ add sp, sp, #16 │ │ │ │ │ - pop {r4, r5, r6, r7, r8, r9, sl, pc} │ │ │ │ │ - .word 0x000000a8 │ │ │ │ │ + ldrd r4, [sp] │ │ │ │ │ + ldrd r6, [sp, #8] │ │ │ │ │ + ldrd r8, [sp, #16] │ │ │ │ │ + ldr sl, [sp, #24] │ │ │ │ │ + add sp, sp, #28 │ │ │ │ │ + pop {pc} @ (ldr pc, [sp], #4) │ │ │ │ │ + .word 0x000000b8 │ │ │ │ │ R_ARM_REL32 .data.rel.ro.local │ │ │ ├── dft-solve.o │ │ │ │ ├── objdump --line-numbers --disassemble --demangle --reloc --no-show-raw-insn --section=.text {} │ │ │ │ │ @@ -2,10 +2,10 @@ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ Disassembly of section .text: │ │ │ │ │ │ │ │ │ │ 00000000 : │ │ │ │ │ fftw_mpi_dft_solve(): │ │ │ │ │ ldr r2, [r1, #16] │ │ │ │ │ - ldr r3, [r0, #56] @ 0x38 │ │ │ │ │ ldr r1, [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: 2356 (bytes into file) │ │ │ │ │ + Start of section headers: 2420 (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 0x934: │ │ │ │ │ +There are 15 section headers, starting at offset 0x974: │ │ │ │ │ │ │ │ │ │ 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 000320 00 AX 0 0 4 │ │ │ │ │ - [ 2] .rel.text REL 00000000 0007c4 0000c0 08 I 12 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 000019 01 AMS 0 0 4 │ │ │ │ │ - [ 6] .data.rel.ro PROGBITS 00000000 00036d 000010 00 WA 0 0 4 │ │ │ │ │ - [ 7] .rel.data.rel.ro REL 00000000 000884 000020 08 I 12 6 4 │ │ │ │ │ - [ 8] .data.rel.ro.local PROGBITS 00000000 00037d 00000c 00 WA 0 0 4 │ │ │ │ │ - [ 9] .rel.data.rel.ro.local REL 00000000 0008a4 000008 08 I 12 8 4 │ │ │ │ │ - [10] .note.GNU-stack PROGBITS 00000000 000389 000000 00 0 0 1 │ │ │ │ │ - [11] .ARM.attributes ARM_ATTRIBUTES 00000000 000389 00002b 00 0 0 1 │ │ │ │ │ - [12] .symtab SYMTAB 00000000 0003b4 000270 10 13 20 4 │ │ │ │ │ - [13] .strtab STRTAB 00000000 000624 00019e 00 0 0 1 │ │ │ │ │ - [14] .shstrtab STRTAB 00000000 0008ac 000087 00 0 0 1 │ │ │ │ │ + [ 1] .text PROGBITS 00000000 000034 000360 00 AX 0 0 4 │ │ │ │ │ + [ 2] .rel.text REL 00000000 000804 0000c0 08 I 12 1 4 │ │ │ │ │ + [ 3] .data PROGBITS 00000000 000394 000000 00 WA 0 0 1 │ │ │ │ │ + [ 4] .bss NOBITS 00000000 000394 000000 00 WA 0 0 1 │ │ │ │ │ + [ 5] .rodata.str1.4 PROGBITS 00000000 000394 000019 01 AMS 0 0 4 │ │ │ │ │ + [ 6] .data.rel.ro PROGBITS 00000000 0003ad 000010 00 WA 0 0 4 │ │ │ │ │ + [ 7] .rel.data.rel.ro REL 00000000 0008c4 000020 08 I 12 6 4 │ │ │ │ │ + [ 8] .data.rel.ro.local PROGBITS 00000000 0003bd 00000c 00 WA 0 0 4 │ │ │ │ │ + [ 9] .rel.data.rel.ro.local REL 00000000 0008e4 000008 08 I 12 8 4 │ │ │ │ │ + [10] .note.GNU-stack PROGBITS 00000000 0003c9 000000 00 0 0 1 │ │ │ │ │ + [11] .ARM.attributes ARM_ATTRIBUTES 00000000 0003c9 00002b 00 0 0 1 │ │ │ │ │ + [12] .symtab SYMTAB 00000000 0003f4 000270 10 13 20 4 │ │ │ │ │ + [13] .strtab STRTAB 00000000 000664 00019e 00 0 0 1 │ │ │ │ │ + [14] .shstrtab STRTAB 00000000 0008ec 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: 0000000c 32 FUNC LOCAL DEFAULT 1 print │ │ │ │ │ 6: 00000028 0 NOTYPE LOCAL DEFAULT 1 $d │ │ │ │ │ 7: 0000002c 0 NOTYPE LOCAL DEFAULT 1 $a │ │ │ │ │ 8: 0000002c 8 FUNC LOCAL DEFAULT 1 destroy │ │ │ │ │ 9: 00000034 8 FUNC LOCAL DEFAULT 1 awake │ │ │ │ │ - 10: 0000003c 608 FUNC LOCAL DEFAULT 1 mkplan │ │ │ │ │ - 11: 00000294 0 NOTYPE LOCAL DEFAULT 1 $d │ │ │ │ │ - 12: 0000029c 0 NOTYPE LOCAL DEFAULT 1 $a │ │ │ │ │ - 13: 0000031c 0 NOTYPE LOCAL DEFAULT 1 $d │ │ │ │ │ + 10: 0000003c 648 FUNC LOCAL DEFAULT 1 mkplan │ │ │ │ │ + 11: 000002bc 0 NOTYPE LOCAL DEFAULT 1 $d │ │ │ │ │ + 12: 000002c4 0 NOTYPE LOCAL DEFAULT 1 $a │ │ │ │ │ + 13: 0000035c 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: 0000029c 88 FUNC GLOBAL DEFAULT 1 fftw_mpi_rdft_serial_applicable │ │ │ │ │ - 35: 000002f4 44 FUNC GLOBAL DEFAULT 1 fftw_mpi_rdft_serial_register │ │ │ │ │ + 34: 000002c4 100 FUNC GLOBAL DEFAULT 1 fftw_mpi_rdft_serial_applicable │ │ │ │ │ + 35: 00000328 56 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,38 +1,38 @@ │ │ │ │ │ │ │ │ │ │ -Relocation section '.rel.text' at offset 0x7c4 contains 24 entries: │ │ │ │ │ +Relocation section '.rel.text' at offset 0x804 contains 24 entries: │ │ │ │ │ Offset Info Type Sym. Value Symbol's Name │ │ │ │ │ 00000028 00000403 R_ARM_REL32 00000000 .LC0 │ │ │ │ │ 00000030 0000141d R_ARM_JUMP24 00000000 fftw_plan_destroy_internal │ │ │ │ │ 00000038 0000151d R_ARM_JUMP24 00000000 fftw_plan_awake │ │ │ │ │ -00000068 0000161c R_ARM_CALL 00000000 fftw_mpi_is_local │ │ │ │ │ -00000088 0000171c R_ARM_CALL 00000000 MPI_Comm_rank │ │ │ │ │ -000000b0 0000181c R_ARM_CALL 00000000 fftw_mktensor_1d │ │ │ │ │ -000000bc 0000191c R_ARM_CALL 00000000 fftw_mkproblem_rdft_0_d │ │ │ │ │ -000000c8 00001a1c R_ARM_CALL 00000000 fftw_mkplan_d │ │ │ │ │ -000000dc 00001b1c R_ARM_CALL 00000000 fftw_mpi_any_true │ │ │ │ │ -000000fc 00001c1c R_ARM_CALL 00000000 fftw_mkplan_rdft │ │ │ │ │ -00000110 00001d1c R_ARM_CALL 00000000 fftw_ops_cpy │ │ │ │ │ -0000012c 00001e1c R_ARM_CALL 00000000 fftw_mktensor │ │ │ │ │ -0000013c 00001f1c R_ARM_CALL 00000000 fftw_malloc_plain │ │ │ │ │ -0000021c 0000181c R_ARM_CALL 00000000 fftw_mktensor_1d │ │ │ │ │ -00000234 0000201c R_ARM_CALL 00000000 fftw_mkproblem_rdft_d │ │ │ │ │ -00000240 00001a1c R_ARM_CALL 00000000 fftw_mkplan_d │ │ │ │ │ -0000024c 0000211c R_ARM_CALL 00000000 fftw_ifree0 │ │ │ │ │ -0000025c 0000161c R_ARM_CALL 00000000 fftw_mpi_is_local │ │ │ │ │ -00000298 00000e03 R_ARM_REL32 00000000 .data.rel.ro │ │ │ │ │ -000002bc 0000161c R_ARM_CALL 00000000 fftw_mpi_is_local │ │ │ │ │ -000002e0 0000161c R_ARM_CALL 00000000 fftw_mpi_is_local │ │ │ │ │ -00000308 0000241c R_ARM_CALL 00000000 fftw_mksolver │ │ │ │ │ -00000318 0000251d R_ARM_JUMP24 00000000 fftw_solver_register │ │ │ │ │ -0000031c 00001103 R_ARM_REL32 00000000 .data.rel.ro.local │ │ │ │ │ +0000008c 0000161c R_ARM_CALL 00000000 fftw_mpi_is_local │ │ │ │ │ +000000ac 0000171c R_ARM_CALL 00000000 MPI_Comm_rank │ │ │ │ │ +000000d4 0000181c R_ARM_CALL 00000000 fftw_mktensor_1d │ │ │ │ │ +000000e0 0000191c R_ARM_CALL 00000000 fftw_mkproblem_rdft_0_d │ │ │ │ │ +000000ec 00001a1c R_ARM_CALL 00000000 fftw_mkplan_d │ │ │ │ │ +00000100 00001b1c R_ARM_CALL 00000000 fftw_mpi_any_true │ │ │ │ │ +00000120 00001c1c R_ARM_CALL 00000000 fftw_mkplan_rdft │ │ │ │ │ +00000134 00001d1c R_ARM_CALL 00000000 fftw_ops_cpy │ │ │ │ │ +00000150 00001e1c R_ARM_CALL 00000000 fftw_mktensor │ │ │ │ │ +00000160 00001f1c R_ARM_CALL 00000000 fftw_malloc_plain │ │ │ │ │ +00000244 0000181c R_ARM_CALL 00000000 fftw_mktensor_1d │ │ │ │ │ +0000025c 0000201c R_ARM_CALL 00000000 fftw_mkproblem_rdft_d │ │ │ │ │ +00000268 00001a1c R_ARM_CALL 00000000 fftw_mkplan_d │ │ │ │ │ +00000274 0000211c R_ARM_CALL 00000000 fftw_ifree0 │ │ │ │ │ +00000284 0000161c R_ARM_CALL 00000000 fftw_mpi_is_local │ │ │ │ │ +000002c0 00000e03 R_ARM_REL32 00000000 .data.rel.ro │ │ │ │ │ +000002e8 0000161c R_ARM_CALL 00000000 fftw_mpi_is_local │ │ │ │ │ +00000314 0000161c R_ARM_CALL 00000000 fftw_mpi_is_local │ │ │ │ │ +00000340 0000241c R_ARM_CALL 00000000 fftw_mksolver │ │ │ │ │ +00000358 0000251d R_ARM_JUMP24 00000000 fftw_solver_register │ │ │ │ │ +0000035c 00001103 R_ARM_REL32 00000000 .data.rel.ro.local │ │ │ │ │ │ │ │ │ │ -Relocation section '.rel.data.rel.ro' at offset 0x884 contains 4 entries: │ │ │ │ │ +Relocation section '.rel.data.rel.ro' at offset 0x8c4 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 00000034 awake │ │ │ │ │ 00000008 00000502 R_ARM_ABS32 0000000c print │ │ │ │ │ 0000000c 00000802 R_ARM_ABS32 0000002c destroy │ │ │ │ │ │ │ │ │ │ -Relocation section '.rel.data.rel.ro.local' at offset 0x8a4 contains 1 entry: │ │ │ │ │ +Relocation section '.rel.data.rel.ro.local' at offset 0x8e4 contains 1 entry: │ │ │ │ │ Offset Info Type Sym. Value Symbol's Name │ │ │ │ │ 00000004 00000a02 R_ARM_ABS32 0000003c mkplan │ │ │ │ ├── objdump --line-numbers --disassemble --demangle --reloc --no-show-raw-insn --section=.text {} │ │ │ │ │ @@ -7,16 +7,16 @@ │ │ │ │ │ apply(): │ │ │ │ │ ldr r0, [r0, #64] @ 0x40 │ │ │ │ │ ldr r3, [r0, #56] @ 0x38 │ │ │ │ │ bx r3 │ │ │ │ │ │ │ │ │ │ 0000000c : │ │ │ │ │ print(): │ │ │ │ │ - mov r2, r0 │ │ │ │ │ ldr r3, [r1] │ │ │ │ │ + mov r2, r0 │ │ │ │ │ mov r0, r1 │ │ │ │ │ ldr r1, [pc, #8] @ 28 │ │ │ │ │ ldr r2, [r2, #64] @ 0x40 │ │ │ │ │ add r1, pc, r1 │ │ │ │ │ bx r3 │ │ │ │ │ .word 0x00000000 │ │ │ │ │ R_ARM_REL32 .LC0 │ │ │ │ │ @@ -31,219 +31,235 @@ │ │ │ │ │ awake(): │ │ │ │ │ ldr r0, [r0, #64] @ 0x40 │ │ │ │ │ b 0 │ │ │ │ │ R_ARM_JUMP24 fftw_plan_awake │ │ │ │ │ │ │ │ │ │ 0000003c : │ │ │ │ │ mkplan(): │ │ │ │ │ - push {r4, r5, r6, r7, r8, r9, sl, lr} │ │ │ │ │ + strd r4, [sp, #-32]! @ 0xffffffe0 │ │ │ │ │ mov r4, r1 │ │ │ │ │ ldr r1, [r1, #20] │ │ │ │ │ + strd r6, [sp, #8] │ │ │ │ │ + strd r8, [sp, #16] │ │ │ │ │ + str sl, [sp, #24] │ │ │ │ │ + str lr, [sp, #28] │ │ │ │ │ sub sp, sp, #16 │ │ │ │ │ cmp r1, #0 │ │ │ │ │ - beq 60 │ │ │ │ │ + beq 84 │ │ │ │ │ mov r0, #0 │ │ │ │ │ add sp, sp, #16 │ │ │ │ │ - pop {r4, r5, r6, r7, r8, r9, sl, pc} │ │ │ │ │ + ldrd r4, [sp] │ │ │ │ │ + ldrd r6, [sp, #8] │ │ │ │ │ + ldrd r8, [sp, #16] │ │ │ │ │ + ldr sl, [sp, #24] │ │ │ │ │ + add sp, sp, #28 │ │ │ │ │ + pop {pc} @ (ldr pc, [sp], #4) │ │ │ │ │ ldr r0, [r4, #4] │ │ │ │ │ mov r5, r2 │ │ │ │ │ bl 0 │ │ │ │ │ R_ARM_CALL fftw_mpi_is_local │ │ │ │ │ cmp r0, #0 │ │ │ │ │ - bne 254 │ │ │ │ │ + bne 27c │ │ │ │ │ ldr r3, [r4, #8] │ │ │ │ │ cmp r3, #0 │ │ │ │ │ - bne 54 │ │ │ │ │ + bne 64 │ │ │ │ │ ldr r0, [r4, #24] │ │ │ │ │ add r1, sp, #12 │ │ │ │ │ bl 0 │ │ │ │ │ R_ARM_CALL MPI_Comm_rank │ │ │ │ │ ldr r3, [sp, #12] │ │ │ │ │ cmp r3, #0 │ │ │ │ │ - bne a4 │ │ │ │ │ + bne c8 │ │ │ │ │ ldr r3, [r4, #8] │ │ │ │ │ cmp r3, #0 │ │ │ │ │ - bgt 120 │ │ │ │ │ + bgt 140 │ │ │ │ │ mov r2, #0 │ │ │ │ │ mov r1, r2 │ │ │ │ │ mov r0, r2 │ │ │ │ │ bl 0 │ │ │ │ │ R_ARM_CALL fftw_mktensor_1d │ │ │ │ │ - ldr r2, [r4, #16] │ │ │ │ │ ldr r1, [r4, #12] │ │ │ │ │ + ldr r2, [r4, #16] │ │ │ │ │ bl 0 │ │ │ │ │ R_ARM_CALL fftw_mkproblem_rdft_0_d │ │ │ │ │ mov r1, r0 │ │ │ │ │ mov r0, r5 │ │ │ │ │ bl 0 │ │ │ │ │ R_ARM_CALL fftw_mkplan_d │ │ │ │ │ mov r5, r0 │ │ │ │ │ - ldr r1, [r4, #24] │ │ │ │ │ clz r0, r5 │ │ │ │ │ + ldr r1, [r4, #24] │ │ │ │ │ lsr r0, r0, #5 │ │ │ │ │ bl 0 │ │ │ │ │ R_ARM_CALL fftw_mpi_any_true │ │ │ │ │ cmp r0, #0 │ │ │ │ │ - bne 54 │ │ │ │ │ - ldr r2, [pc, #420] @ 294 │ │ │ │ │ - ldr r1, [pc, #420] @ 298 │ │ │ │ │ + bne 64 │ │ │ │ │ + ldr r2, [pc, #424] @ 2bc │ │ │ │ │ + mov r0, #72 @ 0x48 │ │ │ │ │ + ldr r1, [pc, #420] @ 2c0 │ │ │ │ │ add r2, pc, r2 │ │ │ │ │ add r1, pc, r1 │ │ │ │ │ - mov r0, #72 @ 0x48 │ │ │ │ │ bl 0 │ │ │ │ │ R_ARM_CALL fftw_mkplan_rdft │ │ │ │ │ mov r4, r0 │ │ │ │ │ add r1, r0, #8 │ │ │ │ │ str r5, [r0, #64] @ 0x40 │ │ │ │ │ add r0, r5, #8 │ │ │ │ │ bl 0 │ │ │ │ │ R_ARM_CALL fftw_ops_cpy │ │ │ │ │ mov r0, r4 │ │ │ │ │ - add sp, sp, #16 │ │ │ │ │ - pop {r4, r5, r6, r7, r8, r9, sl, pc} │ │ │ │ │ + b 68 │ │ │ │ │ ldr r3, [r4, #4] │ │ │ │ │ ldr r9, [r3] │ │ │ │ │ + lsl r8, r9, #2 │ │ │ │ │ mov r0, r9 │ │ │ │ │ bl 0 │ │ │ │ │ R_ARM_CALL fftw_mktensor │ │ │ │ │ - lsl r8, r9, #2 │ │ │ │ │ mov r7, r0 │ │ │ │ │ mov r0, r8 │ │ │ │ │ + add sl, r9, r9, lsl #1 │ │ │ │ │ bl 0 │ │ │ │ │ R_ARM_CALL fftw_malloc_plain │ │ │ │ │ - sub lr, r9, #1 │ │ │ │ │ ldr r2, [r4, #4] │ │ │ │ │ + sub lr, r9, #1 │ │ │ │ │ + mov r6, r0 │ │ │ │ │ add r1, lr, lr, lsl #1 │ │ │ │ │ - add r3, r7, r1, lsl #2 │ │ │ │ │ - add r1, r2, r1, lsl #2 │ │ │ │ │ - ldr r1, [r1, #4] │ │ │ │ │ cmp lr, #0 │ │ │ │ │ mov ip, lr │ │ │ │ │ - mov r6, r0 │ │ │ │ │ ldr r0, [r4, #8] │ │ │ │ │ - str r0, [r3, #12] │ │ │ │ │ - add r3, r9, r9, lsl #1 │ │ │ │ │ - lsl sl, r3, #2 │ │ │ │ │ - add r3, r7, r3, lsl #2 │ │ │ │ │ + lsl sl, sl, #2 │ │ │ │ │ + lsl r1, r1, #2 │ │ │ │ │ + add r3, r7, r1 │ │ │ │ │ + add r1, r2, r1 │ │ │ │ │ + ldr r1, [r1, #4] │ │ │ │ │ addgt r2, r2, sl │ │ │ │ │ - str r0, [r3, #-4] │ │ │ │ │ + str r0, [r3, #12] │ │ │ │ │ + add r3, r7, sl │ │ │ │ │ str r1, [r3, #-8] │ │ │ │ │ - ble 26c │ │ │ │ │ + str r0, [r3, #-4] │ │ │ │ │ + ble 294 │ │ │ │ │ mul r0, r1, r0 │ │ │ │ │ subs ip, ip, #1 │ │ │ │ │ - str r0, [r3, #-12] │ │ │ │ │ - str r0, [r3, #-16] │ │ │ │ │ - ldr r1, [r2, #-20] @ 0xffffffec │ │ │ │ │ - str r1, [r3, #-20] @ 0xffffffec │ │ │ │ │ - sub r2, r2, #12 │ │ │ │ │ sub r3, r3, #12 │ │ │ │ │ - bne 188 │ │ │ │ │ + sub r2, r2, #12 │ │ │ │ │ + str r0, [r3, #-4] │ │ │ │ │ + str r0, [r3] │ │ │ │ │ + ldr r1, [r2, #-8] │ │ │ │ │ + str r1, [r3, #-8] │ │ │ │ │ + bne 1ac │ │ │ │ │ cmp lr, #8 │ │ │ │ │ - bls 274 │ │ │ │ │ + bls 29c │ │ │ │ │ add r3, r4, #28 │ │ │ │ │ - orr r3, r6, r3 │ │ │ │ │ add r2, r4, #32 │ │ │ │ │ + orr r3, r6, r3 │ │ │ │ │ subs r2, r6, r2 │ │ │ │ │ and r3, r3, #7 │ │ │ │ │ movne r2, #1 │ │ │ │ │ cmp r3, #0 │ │ │ │ │ movne r2, #0 │ │ │ │ │ cmp r2, #0 │ │ │ │ │ - beq 274 │ │ │ │ │ + beq 29c │ │ │ │ │ lsr ip, r9, #1 │ │ │ │ │ add r0, r4, #20 │ │ │ │ │ - add ip, r6, ip, lsl #3 │ │ │ │ │ mov r1, r6 │ │ │ │ │ + add ip, r6, ip, lsl #3 │ │ │ │ │ ldrd r2, [r0, #8]! │ │ │ │ │ strd r2, [r1], #8 │ │ │ │ │ cmp r1, ip │ │ │ │ │ - bne 1ec │ │ │ │ │ + bne 210 │ │ │ │ │ bic r3, r9, #1 │ │ │ │ │ cmp r9, r3 │ │ │ │ │ - addne r2, r4, r3, lsl #2 │ │ │ │ │ - ldrne r2, [r2, #28] │ │ │ │ │ - strne r2, [r6, r3, lsl #2] │ │ │ │ │ + beq 238 │ │ │ │ │ + add r2, r4, r3, lsl #2 │ │ │ │ │ + ldr r2, [r2, #28] │ │ │ │ │ + str r2, [r6, r3, lsl #2] │ │ │ │ │ ldr r0, [r4, #8] │ │ │ │ │ mov r2, #1 │ │ │ │ │ mov r1, r2 │ │ │ │ │ bl 0 │ │ │ │ │ R_ARM_CALL fftw_mktensor_1d │ │ │ │ │ - str r6, [sp] │ │ │ │ │ - ldr r3, [r4, #16] │ │ │ │ │ - ldr r2, [r4, #12] │ │ │ │ │ mov r1, r0 │ │ │ │ │ mov r0, r7 │ │ │ │ │ + str r6, [sp] │ │ │ │ │ + ldr r2, [r4, #12] │ │ │ │ │ + ldr r3, [r4, #16] │ │ │ │ │ bl 0 │ │ │ │ │ R_ARM_CALL fftw_mkproblem_rdft_d │ │ │ │ │ mov r1, r0 │ │ │ │ │ mov r0, r5 │ │ │ │ │ bl 0 │ │ │ │ │ R_ARM_CALL fftw_mkplan_d │ │ │ │ │ mov r5, r0 │ │ │ │ │ mov r0, r6 │ │ │ │ │ bl 0 │ │ │ │ │ R_ARM_CALL fftw_ifree0 │ │ │ │ │ - b d0 │ │ │ │ │ + b f4 │ │ │ │ │ ldr r0, [r4, #4] │ │ │ │ │ mov r1, #1 │ │ │ │ │ bl 0 │ │ │ │ │ R_ARM_CALL fftw_mpi_is_local │ │ │ │ │ cmp r0, #0 │ │ │ │ │ - beq 74 │ │ │ │ │ - b 80 │ │ │ │ │ + beq 98 │ │ │ │ │ + b a4 │ │ │ │ │ cmp r9, #1 │ │ │ │ │ - bne 214 │ │ │ │ │ - add r3, r4, #24 │ │ │ │ │ - sub r2, r6, #4 │ │ │ │ │ - add r8, r3, r8 │ │ │ │ │ - ldr r1, [r3, #4]! │ │ │ │ │ - str r1, [r2, #4]! │ │ │ │ │ - cmp r3, r8 │ │ │ │ │ - bne 280 │ │ │ │ │ - b 210 │ │ │ │ │ - .word 0xffffff08 │ │ │ │ │ + bne 23c │ │ │ │ │ + add r2, r4, #24 │ │ │ │ │ + mov r3, r6 │ │ │ │ │ + add r8, r8, r6 │ │ │ │ │ + ldr r1, [r2, #4]! │ │ │ │ │ + str r1, [r3], #4 │ │ │ │ │ + cmp r8, r3 │ │ │ │ │ + bne 2a8 │ │ │ │ │ + b 238 │ │ │ │ │ + .word 0xfffffee0 │ │ │ │ │ .word 0x0000019c │ │ │ │ │ R_ARM_REL32 .data.rel.ro │ │ │ │ │ │ │ │ │ │ -0000029c : │ │ │ │ │ +000002c4 : │ │ │ │ │ fftw_mpi_rdft_serial_applicable(): │ │ │ │ │ ldr r1, [r0, #20] │ │ │ │ │ cmp r1, #0 │ │ │ │ │ - beq 2b0 │ │ │ │ │ + beq 2d8 │ │ │ │ │ mov r0, #0 │ │ │ │ │ bx lr │ │ │ │ │ - push {r4, lr} │ │ │ │ │ + str r4, [sp, #-8]! │ │ │ │ │ mov r4, r0 │ │ │ │ │ ldr r0, [r0, #4] │ │ │ │ │ + str lr, [sp, #4] │ │ │ │ │ bl 0 │ │ │ │ │ R_ARM_CALL fftw_mpi_is_local │ │ │ │ │ cmp r0, #0 │ │ │ │ │ - bne 2d8 │ │ │ │ │ + bne 30c │ │ │ │ │ ldr r0, [r4, #8] │ │ │ │ │ clz r0, r0 │ │ │ │ │ lsr r0, r0, #5 │ │ │ │ │ - pop {r4, pc} │ │ │ │ │ + ldr r4, [sp] │ │ │ │ │ + add sp, sp, #4 │ │ │ │ │ + pop {pc} @ (ldr pc, [sp], #4) │ │ │ │ │ ldr r0, [r4, #4] │ │ │ │ │ mov r1, #1 │ │ │ │ │ bl 0 │ │ │ │ │ R_ARM_CALL fftw_mpi_is_local │ │ │ │ │ cmp r0, #0 │ │ │ │ │ - beq 2c8 │ │ │ │ │ - mov r0, #1 │ │ │ │ │ - pop {r4, pc} │ │ │ │ │ + movne r0, #1 │ │ │ │ │ + bne 300 │ │ │ │ │ + b 2f4 │ │ │ │ │ │ │ │ │ │ -000002f4 : │ │ │ │ │ +00000328 : │ │ │ │ │ fftw_mpi_rdft_serial_register(): │ │ │ │ │ - ldr r1, [pc, #32] @ 31c │ │ │ │ │ - push {r4, lr} │ │ │ │ │ - add r1, pc, r1 │ │ │ │ │ + ldr r1, [pc, #44] @ 35c │ │ │ │ │ + str r4, [sp, #-8]! │ │ │ │ │ mov r4, r0 │ │ │ │ │ mov r0, #8 │ │ │ │ │ + str lr, [sp, #4] │ │ │ │ │ + add r1, pc, r1 │ │ │ │ │ bl 0 │ │ │ │ │ R_ARM_CALL fftw_mksolver │ │ │ │ │ + ldr lr, [sp, #4] │ │ │ │ │ mov r1, r0 │ │ │ │ │ mov r0, r4 │ │ │ │ │ - pop {r4, lr} │ │ │ │ │ + ldr r4, [sp] │ │ │ │ │ + add sp, sp, #8 │ │ │ │ │ b 0 │ │ │ │ │ R_ARM_JUMP24 fftw_solver_register │ │ │ │ │ .word 0x00000018 │ │ │ │ │ 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: 2980 (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 0xba4: │ │ │ │ │ +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 0004c0 00 AX 0 0 4 │ │ │ │ │ - [ 2] .rel.text REL 00000000 0009ec 000108 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 00002b 01 AMS 0 0 4 │ │ │ │ │ - [ 6] .data.rel.ro PROGBITS 00000000 00051f 000010 00 WA 0 0 4 │ │ │ │ │ - [ 7] .rel.data.rel.ro REL 00000000 000af4 000020 08 I 12 6 4 │ │ │ │ │ - [ 8] .data.rel.ro.local PROGBITS 00000000 00052f 00000c 00 WA 0 0 4 │ │ │ │ │ - [ 9] .rel.data.rel.ro.local REL 00000000 000b14 000008 08 I 12 8 4 │ │ │ │ │ - [10] .note.GNU-stack PROGBITS 00000000 00053b 000000 00 0 0 1 │ │ │ │ │ - [11] .ARM.attributes ARM_ATTRIBUTES 00000000 00053b 00002b 00 0 0 1 │ │ │ │ │ - [12] .symtab SYMTAB 00000000 000568 0002b0 10 13 22 4 │ │ │ │ │ - [13] .strtab STRTAB 00000000 000818 0001d4 00 0 0 1 │ │ │ │ │ - [14] .shstrtab STRTAB 00000000 000b1c 000087 00 0 0 1 │ │ │ │ │ + [ 1] .text PROGBITS 00000000 000034 000540 00 AX 0 0 4 │ │ │ │ │ + [ 2] .rel.text REL 00000000 000a6c 000108 08 I 12 1 4 │ │ │ │ │ + [ 3] .data PROGBITS 00000000 000574 000000 00 WA 0 0 1 │ │ │ │ │ + [ 4] .bss NOBITS 00000000 000574 000000 00 WA 0 0 1 │ │ │ │ │ + [ 5] .rodata.str1.4 PROGBITS 00000000 000574 00002b 01 AMS 0 0 4 │ │ │ │ │ + [ 6] .data.rel.ro PROGBITS 00000000 00059f 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 0005af 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 0005bb 000000 00 0 0 1 │ │ │ │ │ + [11] .ARM.attributes ARM_ATTRIBUTES 00000000 0005bb 00002b 00 0 0 1 │ │ │ │ │ + [12] .symtab SYMTAB 00000000 0005e8 0002b0 10 13 22 4 │ │ │ │ │ + [13] .strtab STRTAB 00000000 000898 0001d4 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 43 entries: │ │ │ │ │ Num: Value Size Type Bind Vis Ndx Name │ │ │ │ │ 0: 00000000 0 NOTYPE LOCAL DEFAULT UND │ │ │ │ │ 1: 00000000 0 NOTYPE LOCAL DEFAULT 1 $a │ │ │ │ │ - 2: 00000000 80 FUNC LOCAL DEFAULT 1 apply │ │ │ │ │ + 2: 00000000 100 FUNC LOCAL DEFAULT 1 apply │ │ │ │ │ 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: 00000050 96 FUNC LOCAL DEFAULT 1 print │ │ │ │ │ - 8: 000000a4 0 NOTYPE LOCAL DEFAULT 1 $d │ │ │ │ │ - 9: 000000b0 0 NOTYPE LOCAL DEFAULT 1 $a │ │ │ │ │ - 10: 000000b0 28 FUNC LOCAL DEFAULT 1 destroy │ │ │ │ │ - 11: 000000cc 888 FUNC LOCAL DEFAULT 1 mkplan │ │ │ │ │ - 12: 0000043c 0 NOTYPE LOCAL DEFAULT 1 $d │ │ │ │ │ - 13: 00000444 0 NOTYPE LOCAL DEFAULT 1 $a │ │ │ │ │ - 14: 00000444 36 FUNC LOCAL DEFAULT 1 awake │ │ │ │ │ - 15: 000004bc 0 NOTYPE LOCAL DEFAULT 1 $d │ │ │ │ │ + 7: 00000064 108 FUNC LOCAL DEFAULT 1 print │ │ │ │ │ + 8: 000000c4 0 NOTYPE LOCAL DEFAULT 1 $d │ │ │ │ │ + 9: 000000d0 0 NOTYPE LOCAL DEFAULT 1 $a │ │ │ │ │ + 10: 000000d0 40 FUNC LOCAL DEFAULT 1 destroy │ │ │ │ │ + 11: 000000f8 932 FUNC LOCAL DEFAULT 1 mkplan │ │ │ │ │ + 12: 00000494 0 NOTYPE LOCAL DEFAULT 1 $d │ │ │ │ │ + 13: 0000049c 0 NOTYPE LOCAL DEFAULT 1 $a │ │ │ │ │ + 14: 0000049c 56 FUNC LOCAL DEFAULT 1 awake │ │ │ │ │ + 15: 0000053c 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: 00000468 88 FUNC GLOBAL DEFAULT 1 fftw_mpi_rdft_rank_geq2_register │ │ │ │ │ + 39: 000004d4 108 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,47 +1,47 @@ │ │ │ │ │ │ │ │ │ │ -Relocation section '.rel.text' at offset 0x9ec contains 33 entries: │ │ │ │ │ +Relocation section '.rel.text' at offset 0xa6c contains 33 entries: │ │ │ │ │ Offset Info Type Sym. Value Symbol's Name │ │ │ │ │ -000000a4 00000503 R_ARM_REL32 00000004 .LC1 │ │ │ │ │ -000000a8 00000603 R_ARM_REL32 00000008 .LC2 │ │ │ │ │ -000000ac 00000403 R_ARM_REL32 00000000 .LC0 │ │ │ │ │ -000000bc 0000161c R_ARM_CALL 00000000 fftw_plan_destroy_internal │ │ │ │ │ -000000c8 0000161d R_ARM_JUMP24 00000000 fftw_plan_destroy_internal │ │ │ │ │ -00000138 0000171c R_ARM_CALL 00000000 fftw_mpi_is_local_after │ │ │ │ │ -00000150 0000171c R_ARM_CALL 00000000 fftw_mpi_is_local_after │ │ │ │ │ -000001a0 0000181c R_ARM_CALL 00000000 MPI_Comm_rank │ │ │ │ │ -000001ac 0000191c R_ARM_CALL 00000000 MPI_Comm_size │ │ │ │ │ -000001bc 00001a1c R_ARM_CALL 00000000 fftw_mktensor │ │ │ │ │ -000002b8 00001b1c R_ARM_CALL 00000000 fftw_tensor_sz │ │ │ │ │ -000002d8 00001c1c R_ARM_CALL 00000000 fftw_mpi_block │ │ │ │ │ -000002f0 00001d1c R_ARM_CALL 00000000 fftw_mktensor_2d │ │ │ │ │ -0000030c 00001e1c R_ARM_CALL 00000000 fftw_mkproblem_rdft_d │ │ │ │ │ -00000318 00001f1c R_ARM_CALL 00000000 fftw_mkplan_d │ │ │ │ │ -0000032c 0000201c R_ARM_CALL 00000000 fftw_mpi_any_true │ │ │ │ │ -0000033c 0000211c R_ARM_CALL 00000000 fftw_mpi_mkdtensor │ │ │ │ │ -00000384 0000221c R_ARM_CALL 00000000 fftw_mpi_mkproblem_rdft_d │ │ │ │ │ -00000390 00001f1c R_ARM_CALL 00000000 fftw_mkplan_d │ │ │ │ │ -000003a4 0000201c R_ARM_CALL 00000000 fftw_mpi_any_true │ │ │ │ │ -000003c4 0000231c R_ARM_CALL 00000000 fftw_mkplan_rdft │ │ │ │ │ -000003f8 0000241c R_ARM_CALL 00000000 fftw_ops_add │ │ │ │ │ -00000410 0000161c R_ARM_CALL 00000000 fftw_plan_destroy_internal │ │ │ │ │ -00000418 0000161c R_ARM_CALL 00000000 fftw_plan_destroy_internal │ │ │ │ │ -0000042c 0000251c R_ARM_CALL 00000000 fftw_mpi_rdft_serial_applicable │ │ │ │ │ -00000440 00001003 R_ARM_REL32 00000000 .data.rel.ro │ │ │ │ │ -00000454 0000261c R_ARM_CALL 00000000 fftw_plan_awake │ │ │ │ │ -00000464 0000261d R_ARM_JUMP24 00000000 fftw_plan_awake │ │ │ │ │ -00000480 0000281c R_ARM_CALL 00000000 fftw_mksolver │ │ │ │ │ -00000494 0000291c R_ARM_CALL 00000000 fftw_solver_register │ │ │ │ │ -000004a0 0000281c R_ARM_CALL 00000000 fftw_mksolver │ │ │ │ │ -000004b8 0000291d R_ARM_JUMP24 00000000 fftw_solver_register │ │ │ │ │ -000004bc 00001303 R_ARM_REL32 00000000 .data.rel.ro.local │ │ │ │ │ +000000c4 00000503 R_ARM_REL32 00000004 .LC1 │ │ │ │ │ +000000c8 00000603 R_ARM_REL32 00000008 .LC2 │ │ │ │ │ +000000cc 00000403 R_ARM_REL32 00000000 .LC0 │ │ │ │ │ +000000e0 0000161c R_ARM_CALL 00000000 fftw_plan_destroy_internal │ │ │ │ │ +000000f4 0000161d R_ARM_JUMP24 00000000 fftw_plan_destroy_internal │ │ │ │ │ +00000188 0000171c R_ARM_CALL 00000000 fftw_mpi_is_local_after │ │ │ │ │ +000001a0 0000171c R_ARM_CALL 00000000 fftw_mpi_is_local_after │ │ │ │ │ +000001f0 0000181c R_ARM_CALL 00000000 MPI_Comm_rank │ │ │ │ │ +000001fc 0000191c R_ARM_CALL 00000000 MPI_Comm_size │ │ │ │ │ +0000020c 00001a1c R_ARM_CALL 00000000 fftw_mktensor │ │ │ │ │ +00000318 00001b1c R_ARM_CALL 00000000 fftw_tensor_sz │ │ │ │ │ +00000334 00001c1c R_ARM_CALL 00000000 fftw_mpi_block │ │ │ │ │ +0000034c 00001d1c R_ARM_CALL 00000000 fftw_mktensor_2d │ │ │ │ │ +00000368 00001e1c R_ARM_CALL 00000000 fftw_mkproblem_rdft_d │ │ │ │ │ +00000374 00001f1c R_ARM_CALL 00000000 fftw_mkplan_d │ │ │ │ │ +00000388 0000201c R_ARM_CALL 00000000 fftw_mpi_any_true │ │ │ │ │ +00000398 0000211c R_ARM_CALL 00000000 fftw_mpi_mkdtensor │ │ │ │ │ +000003e0 0000221c R_ARM_CALL 00000000 fftw_mpi_mkproblem_rdft_d │ │ │ │ │ +000003ec 00001f1c R_ARM_CALL 00000000 fftw_mkplan_d │ │ │ │ │ +00000400 0000201c R_ARM_CALL 00000000 fftw_mpi_any_true │ │ │ │ │ +00000420 0000231c R_ARM_CALL 00000000 fftw_mkplan_rdft │ │ │ │ │ +00000454 0000241c R_ARM_CALL 00000000 fftw_ops_add │ │ │ │ │ +00000468 0000161c R_ARM_CALL 00000000 fftw_plan_destroy_internal │ │ │ │ │ +00000470 0000161c R_ARM_CALL 00000000 fftw_plan_destroy_internal │ │ │ │ │ +00000484 0000251c R_ARM_CALL 00000000 fftw_mpi_rdft_serial_applicable │ │ │ │ │ +00000498 00001003 R_ARM_REL32 00000000 .data.rel.ro │ │ │ │ │ +000004b4 0000261c R_ARM_CALL 00000000 fftw_plan_awake │ │ │ │ │ +000004d0 0000261d R_ARM_JUMP24 00000000 fftw_plan_awake │ │ │ │ │ +000004f4 0000281c R_ARM_CALL 00000000 fftw_mksolver │ │ │ │ │ +00000508 0000291c R_ARM_CALL 00000000 fftw_solver_register │ │ │ │ │ +00000514 0000281c R_ARM_CALL 00000000 fftw_mksolver │ │ │ │ │ +00000538 0000291d R_ARM_JUMP24 00000000 fftw_solver_register │ │ │ │ │ +0000053c 00001303 R_ARM_REL32 00000000 .data.rel.ro.local │ │ │ │ │ │ │ │ │ │ -Relocation section '.rel.data.rel.ro' at offset 0xaf4 contains 4 entries: │ │ │ │ │ +Relocation section '.rel.data.rel.ro' at offset 0xb74 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 00000444 awake │ │ │ │ │ -00000008 00000702 R_ARM_ABS32 00000050 print │ │ │ │ │ -0000000c 00000a02 R_ARM_ABS32 000000b0 destroy │ │ │ │ │ +00000004 00000e02 R_ARM_ABS32 0000049c awake │ │ │ │ │ +00000008 00000702 R_ARM_ABS32 00000064 print │ │ │ │ │ +0000000c 00000a02 R_ARM_ABS32 000000d0 destroy │ │ │ │ │ │ │ │ │ │ -Relocation section '.rel.data.rel.ro.local' at offset 0xb14 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 000000cc mkplan │ │ │ │ │ +00000004 00000b02 R_ARM_ABS32 000000f8 mkplan │ │ │ │ ├── objdump --line-numbers --disassemble --demangle --reloc --no-show-raw-insn --section=.text {} │ │ │ │ │ @@ -1,359 +1,391 @@ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ Disassembly of section .text: │ │ │ │ │ │ │ │ │ │ 00000000 : │ │ │ │ │ apply(): │ │ │ │ │ - push {r4, r5, r6, lr} │ │ │ │ │ + strd r4, [sp, #-16]! │ │ │ │ │ mov r4, r0 │ │ │ │ │ ldr ip, [r4, #72] @ 0x48 │ │ │ │ │ + str r6, [sp, #8] │ │ │ │ │ + mov r6, r2 │ │ │ │ │ ldr r0, [r0, #64] @ 0x40 │ │ │ │ │ + str lr, [sp, #12] │ │ │ │ │ cmp ip, #0 │ │ │ │ │ ldr r3, [r0, #56] @ 0x38 │ │ │ │ │ - mov r6, r2 │ │ │ │ │ - beq 40 │ │ │ │ │ - blx r3 │ │ │ │ │ + beq 54 │ │ │ │ │ mov r5, r6 │ │ │ │ │ + blx r3 │ │ │ │ │ ldr r0, [r4, #68] @ 0x44 │ │ │ │ │ mov r2, r6 │ │ │ │ │ mov r1, r5 │ │ │ │ │ + ldrd r4, [sp] │ │ │ │ │ + ldr r6, [sp, #8] │ │ │ │ │ + ldr lr, [sp, #12] │ │ │ │ │ + add sp, sp, #16 │ │ │ │ │ ldr r3, [r0, #56] @ 0x38 │ │ │ │ │ - pop {r4, r5, r6, lr} │ │ │ │ │ bx r3 │ │ │ │ │ mov r2, r1 │ │ │ │ │ mov r5, r1 │ │ │ │ │ blx r3 │ │ │ │ │ - b 28 │ │ │ │ │ + b 30 │ │ │ │ │ │ │ │ │ │ -00000050 : │ │ │ │ │ +00000064 : │ │ │ │ │ print(): │ │ │ │ │ mov r3, r0 │ │ │ │ │ + mov r0, r1 │ │ │ │ │ + str r4, [sp, #-8]! │ │ │ │ │ ldr r2, [r3, #72] @ 0x48 │ │ │ │ │ - push {r4, lr} │ │ │ │ │ - cmp r2, #2 │ │ │ │ │ - ldr r4, [r1] │ │ │ │ │ + str lr, [sp, #4] │ │ │ │ │ sub sp, sp, #8 │ │ │ │ │ - mov r0, r1 │ │ │ │ │ - beq 98 │ │ │ │ │ - ldr r2, [pc, #44] @ a4 │ │ │ │ │ + ldr r4, [r1] │ │ │ │ │ + cmp r2, #2 │ │ │ │ │ + beq b8 │ │ │ │ │ + ldr r2, [pc, #52] @ c4 │ │ │ │ │ add r2, pc, r2 │ │ │ │ │ ldr r1, [r3, #68] @ 0x44 │ │ │ │ │ str r1, [sp] │ │ │ │ │ - ldr r1, [pc, #32] @ a8 │ │ │ │ │ + ldr r1, [pc, #40] @ c8 │ │ │ │ │ ldr r3, [r3, #64] @ 0x40 │ │ │ │ │ add r1, pc, r1 │ │ │ │ │ blx r4 │ │ │ │ │ add sp, sp, #8 │ │ │ │ │ - pop {r4, pc} │ │ │ │ │ - ldr r2, [pc, #12] @ ac │ │ │ │ │ + ldr r4, [sp] │ │ │ │ │ + add sp, sp, #4 │ │ │ │ │ + pop {pc} @ (ldr pc, [sp], #4) │ │ │ │ │ + ldr r2, [pc, #12] @ cc │ │ │ │ │ add r2, pc, r2 │ │ │ │ │ - b 78 │ │ │ │ │ - .word 0x00000028 │ │ │ │ │ + b 90 │ │ │ │ │ + .word 0x00000030 │ │ │ │ │ R_ARM_REL32 .LC1 │ │ │ │ │ - .word 0x00000018 │ │ │ │ │ + .word 0x00000020 │ │ │ │ │ R_ARM_REL32 .LC2 │ │ │ │ │ .word 0x00000008 │ │ │ │ │ R_ARM_REL32 .LC0 │ │ │ │ │ │ │ │ │ │ -000000b0 : │ │ │ │ │ +000000d0 : │ │ │ │ │ destroy(): │ │ │ │ │ - push {r4, lr} │ │ │ │ │ + str r4, [sp, #-8]! │ │ │ │ │ mov r4, r0 │ │ │ │ │ ldr r0, [r0, #68] @ 0x44 │ │ │ │ │ + str lr, [sp, #4] │ │ │ │ │ bl 0 │ │ │ │ │ R_ARM_CALL fftw_plan_destroy_internal │ │ │ │ │ + ldr lr, [sp, #4] │ │ │ │ │ ldr r0, [r4, #64] @ 0x40 │ │ │ │ │ - pop {r4, lr} │ │ │ │ │ + ldr r4, [sp] │ │ │ │ │ + add sp, sp, #8 │ │ │ │ │ b 0 │ │ │ │ │ R_ARM_JUMP24 fftw_plan_destroy_internal │ │ │ │ │ │ │ │ │ │ -000000cc : │ │ │ │ │ +000000f8 : │ │ │ │ │ mkplan(): │ │ │ │ │ - push {r4, r5, r6, r7, r8, r9, sl, fp, lr} │ │ │ │ │ + strd r4, [sp, #-36]! @ 0xffffffdc │ │ │ │ │ mov r4, r1 │ │ │ │ │ ldr r1, [r1, #4] │ │ │ │ │ - sub sp, sp, #36 @ 0x24 │ │ │ │ │ + strd r6, [sp, #8] │ │ │ │ │ + strd r8, [sp, #16] │ │ │ │ │ + strd sl, [sp, #24] │ │ │ │ │ + str lr, [sp, #32] │ │ │ │ │ + sub sp, sp, #44 @ 0x2c │ │ │ │ │ ldr r3, [r1] │ │ │ │ │ cmp r3, #1 │ │ │ │ │ - ble f4 │ │ │ │ │ + ble 130 │ │ │ │ │ ldr r3, [r4, #20] │ │ │ │ │ cmp r3, #0 │ │ │ │ │ - beq 100 │ │ │ │ │ + beq 150 │ │ │ │ │ mov r0, #0 │ │ │ │ │ - add sp, sp, #36 @ 0x24 │ │ │ │ │ - pop {r4, r5, r6, r7, r8, r9, sl, fp, pc} │ │ │ │ │ + add sp, sp, #44 @ 0x2c │ │ │ │ │ + ldrd r4, [sp] │ │ │ │ │ + ldrd r6, [sp, #8] │ │ │ │ │ + ldrd r8, [sp, #16] │ │ │ │ │ + ldrd sl, [sp, #24] │ │ │ │ │ + add sp, sp, #32 │ │ │ │ │ + pop {pc} @ (ldr pc, [sp], #4) │ │ │ │ │ ldr r3, [r0, #8] │ │ │ │ │ mov r7, r0 │ │ │ │ │ - cmp r3, #0 │ │ │ │ │ mov r6, r2 │ │ │ │ │ - beq 130 │ │ │ │ │ + cmp r3, #0 │ │ │ │ │ + beq 180 │ │ │ │ │ ldr r3, [r2, #164] @ 0xa4 │ │ │ │ │ tst r3, #4096 @ 0x1000 │ │ │ │ │ - bne f4 │ │ │ │ │ + bne 130 │ │ │ │ │ ldr r2, [r4, #12] │ │ │ │ │ ldr r3, [r4, #16] │ │ │ │ │ cmp r2, r3 │ │ │ │ │ - beq f4 │ │ │ │ │ + beq 130 │ │ │ │ │ mov r2, #0 │ │ │ │ │ mov r0, #1 │ │ │ │ │ bl 0 │ │ │ │ │ R_ARM_CALL fftw_mpi_is_local_after │ │ │ │ │ cmp r0, #0 │ │ │ │ │ - beq f4 │ │ │ │ │ + beq 130 │ │ │ │ │ mov r2, #1 │ │ │ │ │ ldr r1, [r4, #4] │ │ │ │ │ mov r0, r2 │ │ │ │ │ bl 0 │ │ │ │ │ R_ARM_CALL fftw_mpi_is_local_after │ │ │ │ │ cmp r0, #0 │ │ │ │ │ - beq f4 │ │ │ │ │ + beq 130 │ │ │ │ │ ldr r3, [r6, #164] @ 0xa4 │ │ │ │ │ tst r3, #8 │ │ │ │ │ - bne 428 │ │ │ │ │ + bne 480 │ │ │ │ │ ldr r3, [r4, #12] │ │ │ │ │ - str r3, [sp, #16] │ │ │ │ │ - ldr r3, [r7, #8] │ │ │ │ │ ldr fp, [r4, #16] │ │ │ │ │ + str r3, [sp, #24] │ │ │ │ │ + ldr r3, [r7, #8] │ │ │ │ │ cmp r3, #0 │ │ │ │ │ - movne r8, fp │ │ │ │ │ - bne 198 │ │ │ │ │ + strne fp, [sp, #20] │ │ │ │ │ + bne 1e8 │ │ │ │ │ ldr r3, [r6, #164] @ 0xa4 │ │ │ │ │ tst r3, #4096 @ 0x1000 │ │ │ │ │ - ldr r3, [sp, #16] │ │ │ │ │ - movne r8, fp │ │ │ │ │ - moveq r8, r3 │ │ │ │ │ - add r1, sp, #24 │ │ │ │ │ + ldr r3, [sp, #24] │ │ │ │ │ + movne r3, fp │ │ │ │ │ + str r3, [sp, #20] │ │ │ │ │ ldr r0, [r4, #24] │ │ │ │ │ + add r1, sp, #32 │ │ │ │ │ bl 0 │ │ │ │ │ R_ARM_CALL MPI_Comm_rank │ │ │ │ │ - add r1, sp, #28 │ │ │ │ │ ldr r0, [r4, #24] │ │ │ │ │ + add r1, sp, #36 @ 0x24 │ │ │ │ │ bl 0 │ │ │ │ │ R_ARM_CALL MPI_Comm_size │ │ │ │ │ ldr r3, [r4, #4] │ │ │ │ │ ldr r0, [r3] │ │ │ │ │ sub r0, r0, #1 │ │ │ │ │ bl 0 │ │ │ │ │ R_ARM_CALL fftw_mktensor │ │ │ │ │ ldr r9, [r4, #4] │ │ │ │ │ + mov r5, r0 │ │ │ │ │ ldr lr, [r9] │ │ │ │ │ add r2, lr, lr, lsl #1 │ │ │ │ │ - add r3, lr, lr, lsl #1 │ │ │ │ │ + add r1, lr, lr, lsl #1 │ │ │ │ │ add r2, r9, r2, lsl #2 │ │ │ │ │ + lsl r1, r1, #2 │ │ │ │ │ ldr r2, [r2, #-8] │ │ │ │ │ - lsl r1, r3, #2 │ │ │ │ │ - add r3, r0, r3, lsl #2 │ │ │ │ │ - mov r5, r0 │ │ │ │ │ + add r3, r0, r1 │ │ │ │ │ + ldr r0, [r4, #8] │ │ │ │ │ str r2, [r3, #-20] @ 0xffffffec │ │ │ │ │ add r2, lr, lr, lsl #1 │ │ │ │ │ - ldr r0, [r4, #8] │ │ │ │ │ add r2, r5, r2, lsl #2 │ │ │ │ │ str r0, [r2, #-12] │ │ │ │ │ str r0, [r3, #-16] │ │ │ │ │ subs r0, lr, #3 │ │ │ │ │ - bmi 2b4 │ │ │ │ │ + bmi 310 │ │ │ │ │ cmp lr, #4 │ │ │ │ │ sub r2, r1, #16 │ │ │ │ │ sub ip, r1, #20 │ │ │ │ │ - ble 420 │ │ │ │ │ - sub lr, lr, #5 │ │ │ │ │ + ble 478 │ │ │ │ │ ldr r2, [r5, r2] │ │ │ │ │ - ldr ip, [r5, ip] │ │ │ │ │ + sub lr, lr, #5 │ │ │ │ │ add r1, r9, r1 │ │ │ │ │ and lr, lr, #1 │ │ │ │ │ + ldr ip, [r5, ip] │ │ │ │ │ + ldr r8, [sp, #20] │ │ │ │ │ mul r2, ip, r2 │ │ │ │ │ - ldr sl, [r1, #-20] @ 0xffffffec │ │ │ │ │ - str r2, [r3, #-24] @ 0xffffffe8 │ │ │ │ │ - str r2, [r3, #-28] @ 0xffffffe4 │ │ │ │ │ - mul r2, sl, r2 │ │ │ │ │ sub r0, r0, #2 │ │ │ │ │ - str sl, [r3, #-32] @ 0xffffffe0 │ │ │ │ │ - cmp r0, lr │ │ │ │ │ - ldr ip, [r1, #-32] @ 0xffffffe0 │ │ │ │ │ - str ip, [r3, #-44] @ 0xffffffd4 │ │ │ │ │ - str r2, [r3, #-36] @ 0xffffffdc │ │ │ │ │ - str r2, [r3, #-40] @ 0xffffffd8 │ │ │ │ │ sub r1, r1, #24 │ │ │ │ │ + ldr sl, [r1, #4] │ │ │ │ │ + cmp r0, lr │ │ │ │ │ sub r3, r3, #24 │ │ │ │ │ - bne 228 │ │ │ │ │ + str sl, [r3, #-8] │ │ │ │ │ + str r2, [r3, #-4] │ │ │ │ │ + str r2, [r3] │ │ │ │ │ + mul r2, sl, r2 │ │ │ │ │ + ldr ip, [r1, #-8] │ │ │ │ │ + str ip, [r3, #-20] @ 0xffffffec │ │ │ │ │ + str r2, [r3, #-16] │ │ │ │ │ + str r2, [r3, #-12] │ │ │ │ │ + bne 27c │ │ │ │ │ + str r8, [sp, #20] │ │ │ │ │ add r3, lr, lr, lsl #1 │ │ │ │ │ - add r9, r9, r3, lsl #2 │ │ │ │ │ - add r3, r5, r3, lsl #2 │ │ │ │ │ - ldr r1, [r3, #20] │ │ │ │ │ + cmp lr, #0 │ │ │ │ │ + lsl r3, r3, #2 │ │ │ │ │ + add r9, r9, r3 │ │ │ │ │ + add r3, r5, r3 │ │ │ │ │ ldr r2, [r3, #16] │ │ │ │ │ + ldr r1, [r3, #20] │ │ │ │ │ ldr r0, [r9, #16] │ │ │ │ │ mul r2, r1, r2 │ │ │ │ │ - cmp lr, #0 │ │ │ │ │ sub r1, lr, #1 │ │ │ │ │ str r0, [r3, #4] │ │ │ │ │ - str r2, [r3, #12] │ │ │ │ │ str r2, [r3, #8] │ │ │ │ │ - beq 2b4 │ │ │ │ │ - mul r2, r0, r2 │ │ │ │ │ - add r1, r1, r1, lsl #1 │ │ │ │ │ + str r2, [r3, #12] │ │ │ │ │ + beq 310 │ │ │ │ │ ldr ip, [r9, #4] │ │ │ │ │ + add r1, r1, r1, lsl #1 │ │ │ │ │ + mul r2, r0, r2 │ │ │ │ │ add r1, r5, r1, lsl #2 │ │ │ │ │ str ip, [r3, #-8] │ │ │ │ │ str r2, [r1, #12] │ │ │ │ │ str r2, [r3, #-4] │ │ │ │ │ mov r0, r5 │ │ │ │ │ + mov sl, #1 │ │ │ │ │ bl 0 │ │ │ │ │ R_ARM_CALL fftw_tensor_sz │ │ │ │ │ ldmib r5, {r2, r3} │ │ │ │ │ - mov sl, #1 │ │ │ │ │ + str r0, [sp, #28] │ │ │ │ │ mul r9, r3, r2 │ │ │ │ │ ldr r3, [r4, #4] │ │ │ │ │ - ldr r2, [sp, #24] │ │ │ │ │ - str r0, [sp, #20] │ │ │ │ │ + ldr r2, [sp, #32] │ │ │ │ │ ldmib r3, {r0, r1} │ │ │ │ │ bl 0 │ │ │ │ │ R_ARM_CALL fftw_mpi_block │ │ │ │ │ mov r2, r9 │ │ │ │ │ mov r1, r9 │ │ │ │ │ - str sl, [sp, #4] │ │ │ │ │ str sl, [sp] │ │ │ │ │ + str sl, [sp, #4] │ │ │ │ │ ldr r3, [r4, #8] │ │ │ │ │ bl 0 │ │ │ │ │ R_ARM_CALL fftw_mktensor_2d │ │ │ │ │ add r3, r4, #32 │ │ │ │ │ - ldr r2, [sp, #16] │ │ │ │ │ - str r3, [sp] │ │ │ │ │ - mov r3, r8 │ │ │ │ │ + ldr r2, [sp, #24] │ │ │ │ │ mov r1, r0 │ │ │ │ │ mov r0, r5 │ │ │ │ │ + str r3, [sp] │ │ │ │ │ + ldr r3, [sp, #20] │ │ │ │ │ bl 0 │ │ │ │ │ R_ARM_CALL fftw_mkproblem_rdft_d │ │ │ │ │ mov r1, r0 │ │ │ │ │ mov r0, r6 │ │ │ │ │ bl 0 │ │ │ │ │ R_ARM_CALL fftw_mkplan_d │ │ │ │ │ - ldr r1, [r4, #24] │ │ │ │ │ mov r5, r0 │ │ │ │ │ clz r0, r0 │ │ │ │ │ + ldr r1, [r4, #24] │ │ │ │ │ lsr r0, r0, #5 │ │ │ │ │ bl 0 │ │ │ │ │ R_ARM_CALL fftw_mpi_any_true │ │ │ │ │ cmp r0, #0 │ │ │ │ │ - bne 408 │ │ │ │ │ + bne 460 │ │ │ │ │ mov r0, sl │ │ │ │ │ bl 0 │ │ │ │ │ R_ARM_CALL fftw_mpi_mkdtensor │ │ │ │ │ - ldr r3, [r4, #4] │ │ │ │ │ - mov ip, r0 │ │ │ │ │ - ldmib r3, {r0, r1, r2} │ │ │ │ │ - stmib ip, {r0, r1, r2} │ │ │ │ │ - ldr r1, [r4, #8] │ │ │ │ │ - ldr r0, [sp, #20] │ │ │ │ │ + ldr r2, [r4, #4] │ │ │ │ │ mov r3, #16 │ │ │ │ │ - mul r0, r1, r0 │ │ │ │ │ + ldr r1, [r4, #8] │ │ │ │ │ + ldr ip, [sp, #28] │ │ │ │ │ + ldrd r8, [r2, #4] │ │ │ │ │ + mul ip, r1, ip │ │ │ │ │ + strd r8, [r0, #4] │ │ │ │ │ + ldr r2, [r2, #12] │ │ │ │ │ + mov r1, ip │ │ │ │ │ + str r2, [r0, #12] │ │ │ │ │ str r3, [sp, #8] │ │ │ │ │ add r3, r4, #28 │ │ │ │ │ + ldr r2, [sp, #20] │ │ │ │ │ str r3, [sp, #4] │ │ │ │ │ ldr r3, [r4, #24] │ │ │ │ │ - mov r2, r8 │ │ │ │ │ - mov r1, r0 │ │ │ │ │ str r3, [sp] │ │ │ │ │ - mov r0, ip │ │ │ │ │ mov r3, fp │ │ │ │ │ bl 0 │ │ │ │ │ R_ARM_CALL fftw_mpi_mkproblem_rdft_d │ │ │ │ │ mov r1, r0 │ │ │ │ │ mov r0, r6 │ │ │ │ │ bl 0 │ │ │ │ │ R_ARM_CALL fftw_mkplan_d │ │ │ │ │ - ldr r1, [r4, #24] │ │ │ │ │ mov r8, r0 │ │ │ │ │ clz r0, r0 │ │ │ │ │ + ldr r1, [r4, #24] │ │ │ │ │ lsr r0, r0, #5 │ │ │ │ │ bl 0 │ │ │ │ │ R_ARM_CALL fftw_mpi_any_true │ │ │ │ │ cmp r0, #0 │ │ │ │ │ - bne 40c │ │ │ │ │ - ldr r2, [pc, #132] @ 43c │ │ │ │ │ - ldr r1, [pc, #132] @ 440 │ │ │ │ │ + bne 464 │ │ │ │ │ + ldr r2, [pc, #128] @ 494 │ │ │ │ │ + mov r0, #80 @ 0x50 │ │ │ │ │ + ldr r1, [pc, #124] @ 498 │ │ │ │ │ add r2, pc, r2 │ │ │ │ │ add r1, pc, r1 │ │ │ │ │ - mov r0, #80 @ 0x50 │ │ │ │ │ bl 0 │ │ │ │ │ R_ARM_CALL fftw_mkplan_rdft │ │ │ │ │ ldr r3, [r7, #8] │ │ │ │ │ + mov r4, r0 │ │ │ │ │ + add r2, r0, #8 │ │ │ │ │ add r1, r8, #8 │ │ │ │ │ + str r5, [r0, #64] @ 0x40 │ │ │ │ │ + str r8, [r0, #68] @ 0x44 │ │ │ │ │ cmp r3, #0 │ │ │ │ │ ldreq r3, [r6, #164] @ 0xa4 │ │ │ │ │ movne r3, #2 │ │ │ │ │ andeq r3, r3, #4096 @ 0x1000 │ │ │ │ │ - mov r4, r0 │ │ │ │ │ - add r2, r0, #8 │ │ │ │ │ - str r5, [r0, #64] @ 0x40 │ │ │ │ │ - str r8, [r0, #68] @ 0x44 │ │ │ │ │ str r3, [r0, #72] @ 0x48 │ │ │ │ │ add r0, r5, #8 │ │ │ │ │ bl 0 │ │ │ │ │ R_ARM_CALL fftw_ops_add │ │ │ │ │ mov r0, r4 │ │ │ │ │ - add sp, sp, #36 @ 0x24 │ │ │ │ │ - pop {r4, r5, r6, r7, r8, r9, sl, fp, pc} │ │ │ │ │ + b 134 │ │ │ │ │ mov r8, #0 │ │ │ │ │ mov r0, r8 │ │ │ │ │ bl 0 │ │ │ │ │ R_ARM_CALL fftw_plan_destroy_internal │ │ │ │ │ mov r0, r5 │ │ │ │ │ bl 0 │ │ │ │ │ R_ARM_CALL fftw_plan_destroy_internal │ │ │ │ │ - b f4 │ │ │ │ │ + b 130 │ │ │ │ │ mov lr, r0 │ │ │ │ │ - b 264 │ │ │ │ │ + b 2bc │ │ │ │ │ mov r0, r4 │ │ │ │ │ bl 0 │ │ │ │ │ R_ARM_CALL fftw_mpi_rdft_serial_applicable │ │ │ │ │ cmp r0, #0 │ │ │ │ │ - beq 168 │ │ │ │ │ - b f4 │ │ │ │ │ - .word 0xfffffc40 │ │ │ │ │ - .word 0x0000007c │ │ │ │ │ + beq 1b8 │ │ │ │ │ + b 130 │ │ │ │ │ + .word 0xfffffbe0 │ │ │ │ │ + .word 0x00000074 │ │ │ │ │ R_ARM_REL32 .data.rel.ro │ │ │ │ │ │ │ │ │ │ -00000444 : │ │ │ │ │ +0000049c : │ │ │ │ │ awake(): │ │ │ │ │ - push {r4, r5, r6, lr} │ │ │ │ │ + strd r4, [sp, #-16]! │ │ │ │ │ mov r4, r0 │ │ │ │ │ mov r5, r1 │ │ │ │ │ ldr r0, [r0, #64] @ 0x40 │ │ │ │ │ + str r6, [sp, #8] │ │ │ │ │ + str lr, [sp, #12] │ │ │ │ │ bl 0 │ │ │ │ │ R_ARM_CALL fftw_plan_awake │ │ │ │ │ - ldr r0, [r4, #68] @ 0x44 │ │ │ │ │ + ldr r6, [sp, #8] │ │ │ │ │ mov r1, r5 │ │ │ │ │ - pop {r4, r5, r6, lr} │ │ │ │ │ + ldr lr, [sp, #12] │ │ │ │ │ + ldr r0, [r4, #68] @ 0x44 │ │ │ │ │ + ldrd r4, [sp] │ │ │ │ │ + add sp, sp, #16 │ │ │ │ │ b 0 │ │ │ │ │ R_ARM_JUMP24 fftw_plan_awake │ │ │ │ │ │ │ │ │ │ -00000468 : │ │ │ │ │ +000004d4 : │ │ │ │ │ fftw_mpi_rdft_rank_geq2_register(): │ │ │ │ │ - push {r4, r5, r6, lr} │ │ │ │ │ - ldr r5, [pc, #72] @ 4bc │ │ │ │ │ + strd r4, [sp, #-16]! │ │ │ │ │ mov r4, r0 │ │ │ │ │ + mov r0, #12 │ │ │ │ │ + ldr r5, [pc, #84] @ 53c │ │ │ │ │ + str r6, [sp, #8] │ │ │ │ │ + str lr, [sp, #12] │ │ │ │ │ add r5, pc, r5 │ │ │ │ │ mov r1, r5 │ │ │ │ │ - mov r0, #12 │ │ │ │ │ bl 0 │ │ │ │ │ R_ARM_CALL fftw_mksolver │ │ │ │ │ mov r3, #0 │ │ │ │ │ - str r3, [r0, #8] │ │ │ │ │ mov r1, r0 │ │ │ │ │ + str r3, [r0, #8] │ │ │ │ │ mov r0, r4 │ │ │ │ │ bl 0 │ │ │ │ │ R_ARM_CALL fftw_solver_register │ │ │ │ │ mov r1, r5 │ │ │ │ │ mov r0, #12 │ │ │ │ │ bl 0 │ │ │ │ │ R_ARM_CALL fftw_mksolver │ │ │ │ │ mov r3, #1 │ │ │ │ │ + ldr r6, [sp, #8] │ │ │ │ │ mov r1, r0 │ │ │ │ │ + ldr lr, [sp, #12] │ │ │ │ │ str r3, [r0, #8] │ │ │ │ │ mov r0, r4 │ │ │ │ │ - pop {r4, r5, r6, lr} │ │ │ │ │ + ldrd r4, [sp] │ │ │ │ │ + add sp, sp, #16 │ │ │ │ │ b 0 │ │ │ │ │ R_ARM_JUMP24 fftw_solver_register │ │ │ │ │ - .word 0x00000040 │ │ │ │ │ + .word 0x00000048 │ │ │ │ │ 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: 3456 (bytes into file) │ │ │ │ │ + Start of section headers: 3576 (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 0xd80: │ │ │ │ │ +There are 15 section headers, starting at offset 0xdf8: │ │ │ │ │ │ │ │ │ │ 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 0005ec 00 AX 0 0 4 │ │ │ │ │ - [ 2] .rel.text REL 00000000 000b80 000150 08 I 12 1 4 │ │ │ │ │ - [ 3] .data PROGBITS 00000000 000620 000000 00 WA 0 0 1 │ │ │ │ │ - [ 4] .bss NOBITS 00000000 000620 000000 00 WA 0 0 1 │ │ │ │ │ - [ 5] .rodata.str1.4 PROGBITS 00000000 000620 00003c 01 AMS 0 0 4 │ │ │ │ │ - [ 6] .data.rel.ro PROGBITS 00000000 00065c 000010 00 WA 0 0 4 │ │ │ │ │ - [ 7] .rel.data.rel.ro REL 00000000 000cd0 000020 08 I 12 6 4 │ │ │ │ │ - [ 8] .data.rel.ro.local PROGBITS 00000000 00066c 00000c 00 WA 0 0 4 │ │ │ │ │ - [ 9] .rel.data.rel.ro.local REL 00000000 000cf0 000008 08 I 12 8 4 │ │ │ │ │ - [10] .note.GNU-stack PROGBITS 00000000 000678 000000 00 0 0 1 │ │ │ │ │ - [11] .ARM.attributes ARM_ATTRIBUTES 00000000 000678 00002b 00 0 0 1 │ │ │ │ │ - [12] .symtab SYMTAB 00000000 0006a4 0002d0 10 13 22 4 │ │ │ │ │ - [13] .strtab STRTAB 00000000 000974 00020b 00 0 0 1 │ │ │ │ │ - [14] .shstrtab STRTAB 00000000 000cf8 000087 00 0 0 1 │ │ │ │ │ + [ 1] .text PROGBITS 00000000 000034 000664 00 AX 0 0 4 │ │ │ │ │ + [ 2] .rel.text REL 00000000 000bf8 000150 08 I 12 1 4 │ │ │ │ │ + [ 3] .data PROGBITS 00000000 000698 000000 00 WA 0 0 1 │ │ │ │ │ + [ 4] .bss NOBITS 00000000 000698 000000 00 WA 0 0 1 │ │ │ │ │ + [ 5] .rodata.str1.4 PROGBITS 00000000 000698 00003c 01 AMS 0 0 4 │ │ │ │ │ + [ 6] .data.rel.ro PROGBITS 00000000 0006d4 000010 00 WA 0 0 4 │ │ │ │ │ + [ 7] .rel.data.rel.ro REL 00000000 000d48 000020 08 I 12 6 4 │ │ │ │ │ + [ 8] .data.rel.ro.local PROGBITS 00000000 0006e4 00000c 00 WA 0 0 4 │ │ │ │ │ + [ 9] .rel.data.rel.ro.local REL 00000000 000d68 000008 08 I 12 8 4 │ │ │ │ │ + [10] .note.GNU-stack PROGBITS 00000000 0006f0 000000 00 0 0 1 │ │ │ │ │ + [11] .ARM.attributes ARM_ATTRIBUTES 00000000 0006f0 00002b 00 0 0 1 │ │ │ │ │ + [12] .symtab SYMTAB 00000000 00071c 0002d0 10 13 22 4 │ │ │ │ │ + [13] .strtab STRTAB 00000000 0009ec 00020b 00 0 0 1 │ │ │ │ │ + [14] .shstrtab STRTAB 00000000 000d70 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: 00000000 0 NOTYPE LOCAL DEFAULT 1 $a │ │ │ │ │ - 2: 00000000 100 FUNC LOCAL DEFAULT 1 apply │ │ │ │ │ + 2: 00000000 120 FUNC LOCAL DEFAULT 1 apply │ │ │ │ │ 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: 00000064 104 FUNC LOCAL DEFAULT 1 print │ │ │ │ │ - 8: 000000c0 0 NOTYPE LOCAL DEFAULT 1 $d │ │ │ │ │ - 9: 000000cc 0 NOTYPE LOCAL DEFAULT 1 $a │ │ │ │ │ - 10: 000000cc 36 FUNC LOCAL DEFAULT 1 destroy │ │ │ │ │ - 11: 000000f0 1140 FUNC LOCAL DEFAULT 1 mkplan │ │ │ │ │ - 12: 0000055c 0 NOTYPE LOCAL DEFAULT 1 $d │ │ │ │ │ - 13: 00000564 0 NOTYPE LOCAL DEFAULT 1 $a │ │ │ │ │ - 14: 00000564 48 FUNC LOCAL DEFAULT 1 awake │ │ │ │ │ - 15: 000005e8 0 NOTYPE LOCAL DEFAULT 1 $d │ │ │ │ │ + 7: 00000078 116 FUNC LOCAL DEFAULT 1 print │ │ │ │ │ + 8: 000000e0 0 NOTYPE LOCAL DEFAULT 1 $d │ │ │ │ │ + 9: 000000ec 0 NOTYPE LOCAL DEFAULT 1 $a │ │ │ │ │ + 10: 000000ec 48 FUNC LOCAL DEFAULT 1 destroy │ │ │ │ │ + 11: 0000011c 1176 FUNC LOCAL DEFAULT 1 mkplan │ │ │ │ │ + 12: 000005ac 0 NOTYPE LOCAL DEFAULT 1 $d │ │ │ │ │ + 13: 000005b4 0 NOTYPE LOCAL DEFAULT 1 $a │ │ │ │ │ + 14: 000005b4 68 FUNC LOCAL DEFAULT 1 awake │ │ │ │ │ + 15: 00000660 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: 00000594 88 FUNC GLOBAL DEFAULT 1 fftw_mpi_rdft_rank_geq2_transposed_register │ │ │ │ │ + 41: 000005f8 108 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,56 +1,56 @@ │ │ │ │ │ │ │ │ │ │ -Relocation section '.rel.text' at offset 0xb80 contains 42 entries: │ │ │ │ │ +Relocation section '.rel.text' at offset 0xbf8 contains 42 entries: │ │ │ │ │ Offset Info Type Sym. Value Symbol's Name │ │ │ │ │ -000000c0 00000503 R_ARM_REL32 00000004 .LC1 │ │ │ │ │ -000000c4 00000603 R_ARM_REL32 00000008 .LC2 │ │ │ │ │ -000000c8 00000403 R_ARM_REL32 00000000 .LC0 │ │ │ │ │ -000000d8 0000161c R_ARM_CALL 00000000 fftw_plan_destroy_internal │ │ │ │ │ -000000e0 0000161c R_ARM_CALL 00000000 fftw_plan_destroy_internal │ │ │ │ │ -000000ec 0000161d R_ARM_JUMP24 00000000 fftw_plan_destroy_internal │ │ │ │ │ -0000015c 0000171c R_ARM_CALL 00000000 fftw_mpi_is_local_after │ │ │ │ │ -00000174 0000171c R_ARM_CALL 00000000 fftw_mpi_is_local_after │ │ │ │ │ -0000018c 0000181c R_ARM_CALL 00000000 fftw_mpi_num_blocks │ │ │ │ │ -000001cc 0000191c R_ARM_CALL 00000000 MPI_Comm_rank │ │ │ │ │ -000001d8 00001a1c R_ARM_CALL 00000000 MPI_Comm_size │ │ │ │ │ -000001e8 00001b1c R_ARM_CALL 00000000 fftw_mktensor │ │ │ │ │ -00000330 00001c1c R_ARM_CALL 00000000 fftw_mpi_block │ │ │ │ │ -00000348 00001d1c R_ARM_CALL 00000000 fftw_mktensor_2d │ │ │ │ │ -00000364 00001e1c R_ARM_CALL 00000000 fftw_mkproblem_rdft_d │ │ │ │ │ -00000370 00001f1c R_ARM_CALL 00000000 fftw_mkplan_d │ │ │ │ │ -00000384 0000201c R_ARM_CALL 00000000 fftw_mpi_any_true │ │ │ │ │ -000003d0 0000211c R_ARM_CALL 00000000 fftw_mpi_mkproblem_transpose │ │ │ │ │ -000003dc 00001f1c R_ARM_CALL 00000000 fftw_mkplan_d │ │ │ │ │ -000003f0 0000201c R_ARM_CALL 00000000 fftw_mpi_any_true │ │ │ │ │ -00000418 00001c1c R_ARM_CALL 00000000 fftw_mpi_block │ │ │ │ │ -00000430 0000221c R_ARM_CALL 00000000 fftw_mktensor_1d │ │ │ │ │ -00000450 00001d1c R_ARM_CALL 00000000 fftw_mktensor_2d │ │ │ │ │ -0000046c 0000231c R_ARM_CALL 00000000 fftw_mkproblem_rdft_1_d │ │ │ │ │ -00000478 00001f1c R_ARM_CALL 00000000 fftw_mkplan_d │ │ │ │ │ -0000048c 0000201c R_ARM_CALL 00000000 fftw_mpi_any_true │ │ │ │ │ -000004ac 0000241c R_ARM_CALL 00000000 fftw_mkplan_rdft │ │ │ │ │ -000004e8 0000251c R_ARM_CALL 00000000 fftw_ops_add │ │ │ │ │ -000004f4 0000261c R_ARM_CALL 00000000 fftw_ops_add2 │ │ │ │ │ -00000510 0000161c R_ARM_CALL 00000000 fftw_plan_destroy_internal │ │ │ │ │ -00000518 0000161c R_ARM_CALL 00000000 fftw_plan_destroy_internal │ │ │ │ │ -00000520 0000161c R_ARM_CALL 00000000 fftw_plan_destroy_internal │ │ │ │ │ -0000054c 0000271c R_ARM_CALL 00000000 fftw_mpi_rdft_serial_applicable │ │ │ │ │ -00000560 00001003 R_ARM_REL32 00000000 .data.rel.ro │ │ │ │ │ -00000574 0000281c R_ARM_CALL 00000000 fftw_plan_awake │ │ │ │ │ -00000580 0000281c R_ARM_CALL 00000000 fftw_plan_awake │ │ │ │ │ -00000590 0000281d R_ARM_JUMP24 00000000 fftw_plan_awake │ │ │ │ │ -000005ac 00002a1c R_ARM_CALL 00000000 fftw_mksolver │ │ │ │ │ -000005c0 00002b1c R_ARM_CALL 00000000 fftw_solver_register │ │ │ │ │ -000005cc 00002a1c R_ARM_CALL 00000000 fftw_mksolver │ │ │ │ │ -000005e4 00002b1d R_ARM_JUMP24 00000000 fftw_solver_register │ │ │ │ │ -000005e8 00001303 R_ARM_REL32 00000000 .data.rel.ro.local │ │ │ │ │ +000000e0 00000503 R_ARM_REL32 00000004 .LC1 │ │ │ │ │ +000000e4 00000603 R_ARM_REL32 00000008 .LC2 │ │ │ │ │ +000000e8 00000403 R_ARM_REL32 00000000 .LC0 │ │ │ │ │ +000000fc 0000161c R_ARM_CALL 00000000 fftw_plan_destroy_internal │ │ │ │ │ +00000104 0000161c R_ARM_CALL 00000000 fftw_plan_destroy_internal │ │ │ │ │ +00000118 0000161d R_ARM_JUMP24 00000000 fftw_plan_destroy_internal │ │ │ │ │ +000001ac 0000171c R_ARM_CALL 00000000 fftw_mpi_is_local_after │ │ │ │ │ +000001c4 0000171c R_ARM_CALL 00000000 fftw_mpi_is_local_after │ │ │ │ │ +000001dc 0000181c R_ARM_CALL 00000000 fftw_mpi_num_blocks │ │ │ │ │ +0000021c 0000191c R_ARM_CALL 00000000 MPI_Comm_rank │ │ │ │ │ +00000228 00001a1c R_ARM_CALL 00000000 MPI_Comm_size │ │ │ │ │ +00000238 00001b1c R_ARM_CALL 00000000 fftw_mktensor │ │ │ │ │ +00000384 00001c1c R_ARM_CALL 00000000 fftw_mpi_block │ │ │ │ │ +0000039c 00001d1c R_ARM_CALL 00000000 fftw_mktensor_2d │ │ │ │ │ +000003b8 00001e1c R_ARM_CALL 00000000 fftw_mkproblem_rdft_d │ │ │ │ │ +000003c4 00001f1c R_ARM_CALL 00000000 fftw_mkplan_d │ │ │ │ │ +000003d8 0000201c R_ARM_CALL 00000000 fftw_mpi_any_true │ │ │ │ │ +00000424 0000211c R_ARM_CALL 00000000 fftw_mpi_mkproblem_transpose │ │ │ │ │ +00000430 00001f1c R_ARM_CALL 00000000 fftw_mkplan_d │ │ │ │ │ +00000444 0000201c R_ARM_CALL 00000000 fftw_mpi_any_true │ │ │ │ │ +0000046c 00001c1c R_ARM_CALL 00000000 fftw_mpi_block │ │ │ │ │ +00000484 0000221c R_ARM_CALL 00000000 fftw_mktensor_1d │ │ │ │ │ +000004a4 00001d1c R_ARM_CALL 00000000 fftw_mktensor_2d │ │ │ │ │ +000004c0 0000231c R_ARM_CALL 00000000 fftw_mkproblem_rdft_1_d │ │ │ │ │ +000004cc 00001f1c R_ARM_CALL 00000000 fftw_mkplan_d │ │ │ │ │ +000004e0 0000201c R_ARM_CALL 00000000 fftw_mpi_any_true │ │ │ │ │ +00000500 0000241c R_ARM_CALL 00000000 fftw_mkplan_rdft │ │ │ │ │ +0000053c 0000251c R_ARM_CALL 00000000 fftw_ops_add │ │ │ │ │ +00000548 0000261c R_ARM_CALL 00000000 fftw_ops_add2 │ │ │ │ │ +00000560 0000161c R_ARM_CALL 00000000 fftw_plan_destroy_internal │ │ │ │ │ +00000568 0000161c R_ARM_CALL 00000000 fftw_plan_destroy_internal │ │ │ │ │ +00000570 0000161c R_ARM_CALL 00000000 fftw_plan_destroy_internal │ │ │ │ │ +0000059c 0000271c R_ARM_CALL 00000000 fftw_mpi_rdft_serial_applicable │ │ │ │ │ +000005b0 00001003 R_ARM_REL32 00000000 .data.rel.ro │ │ │ │ │ +000005cc 0000281c R_ARM_CALL 00000000 fftw_plan_awake │ │ │ │ │ +000005d8 0000281c R_ARM_CALL 00000000 fftw_plan_awake │ │ │ │ │ +000005f4 0000281d R_ARM_JUMP24 00000000 fftw_plan_awake │ │ │ │ │ +00000618 00002a1c R_ARM_CALL 00000000 fftw_mksolver │ │ │ │ │ +0000062c 00002b1c R_ARM_CALL 00000000 fftw_solver_register │ │ │ │ │ +00000638 00002a1c R_ARM_CALL 00000000 fftw_mksolver │ │ │ │ │ +0000065c 00002b1d R_ARM_JUMP24 00000000 fftw_solver_register │ │ │ │ │ +00000660 00001303 R_ARM_REL32 00000000 .data.rel.ro.local │ │ │ │ │ │ │ │ │ │ -Relocation section '.rel.data.rel.ro' at offset 0xcd0 contains 4 entries: │ │ │ │ │ +Relocation section '.rel.data.rel.ro' at offset 0xd48 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 00000564 awake │ │ │ │ │ -00000008 00000702 R_ARM_ABS32 00000064 print │ │ │ │ │ -0000000c 00000a02 R_ARM_ABS32 000000cc destroy │ │ │ │ │ +00000004 00000e02 R_ARM_ABS32 000005b4 awake │ │ │ │ │ +00000008 00000702 R_ARM_ABS32 00000078 print │ │ │ │ │ +0000000c 00000a02 R_ARM_ABS32 000000ec destroy │ │ │ │ │ │ │ │ │ │ -Relocation section '.rel.data.rel.ro.local' at offset 0xcf0 contains 1 entry: │ │ │ │ │ +Relocation section '.rel.data.rel.ro.local' at offset 0xd68 contains 1 entry: │ │ │ │ │ Offset Info Type Sym. Value Symbol's Name │ │ │ │ │ -00000004 00000b02 R_ARM_ABS32 000000f0 mkplan │ │ │ │ │ +00000004 00000b02 R_ARM_ABS32 0000011c mkplan │ │ │ │ ├── objdump --line-numbers --disassemble --demangle --reloc --no-show-raw-insn --section=.text {} │ │ │ │ │ @@ -1,298 +1,319 @@ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ Disassembly of section .text: │ │ │ │ │ │ │ │ │ │ 00000000 : │ │ │ │ │ apply(): │ │ │ │ │ - push {r4, r5, r6, lr} │ │ │ │ │ + strd r4, [sp, #-16]! │ │ │ │ │ mov r4, r0 │ │ │ │ │ + mov r5, r2 │ │ │ │ │ ldr ip, [r4, #84] @ 0x54 │ │ │ │ │ + str r6, [sp, #8] │ │ │ │ │ ldr r0, [r0, #64] @ 0x40 │ │ │ │ │ + str lr, [sp, #12] │ │ │ │ │ cmp ip, #0 │ │ │ │ │ ldr r3, [r0, #56] @ 0x38 │ │ │ │ │ - mov r5, r2 │ │ │ │ │ - beq 54 │ │ │ │ │ - blx r3 │ │ │ │ │ + beq 68 │ │ │ │ │ mov r6, r5 │ │ │ │ │ + blx r3 │ │ │ │ │ ldr r0, [r4, #68] @ 0x44 │ │ │ │ │ mov r2, r5 │ │ │ │ │ - ldr r3, [r0, #56] @ 0x38 │ │ │ │ │ mov r1, r6 │ │ │ │ │ + ldr r3, [r0, #56] @ 0x38 │ │ │ │ │ blx r3 │ │ │ │ │ ldr r0, [r4, #72] @ 0x48 │ │ │ │ │ mov r2, r5 │ │ │ │ │ mov r1, r5 │ │ │ │ │ + ldrd r4, [sp] │ │ │ │ │ + ldr r6, [sp, #8] │ │ │ │ │ + ldr lr, [sp, #12] │ │ │ │ │ + add sp, sp, #16 │ │ │ │ │ ldr r3, [r0, #56] @ 0x38 │ │ │ │ │ - pop {r4, r5, r6, lr} │ │ │ │ │ bx r3 │ │ │ │ │ mov r2, r1 │ │ │ │ │ mov r6, r1 │ │ │ │ │ blx r3 │ │ │ │ │ - b 28 │ │ │ │ │ + b 30 │ │ │ │ │ │ │ │ │ │ -00000064 : │ │ │ │ │ +00000078 : │ │ │ │ │ print(): │ │ │ │ │ mov r3, r0 │ │ │ │ │ + mov r0, r1 │ │ │ │ │ + str r4, [sp, #-8]! │ │ │ │ │ ldr r2, [r3, #84] @ 0x54 │ │ │ │ │ - push {r4, lr} │ │ │ │ │ - cmp r2, #2 │ │ │ │ │ - ldr r4, [r1] │ │ │ │ │ + str lr, [sp, #4] │ │ │ │ │ sub sp, sp, #8 │ │ │ │ │ - mov r0, r1 │ │ │ │ │ - beq b4 │ │ │ │ │ - ldr r2, [pc, #52] @ c0 │ │ │ │ │ + ldr r4, [r1] │ │ │ │ │ + cmp r2, #2 │ │ │ │ │ + beq d4 │ │ │ │ │ + ldr r2, [pc, #60] @ e0 │ │ │ │ │ add r2, pc, r2 │ │ │ │ │ ldr r1, [r3, #72] @ 0x48 │ │ │ │ │ str r1, [sp, #4] │ │ │ │ │ ldr r1, [r3, #68] @ 0x44 │ │ │ │ │ str r1, [sp] │ │ │ │ │ - ldr r1, [pc, #32] @ c4 │ │ │ │ │ + ldr r1, [pc, #40] @ e4 │ │ │ │ │ ldr r3, [r3, #64] @ 0x40 │ │ │ │ │ add r1, pc, r1 │ │ │ │ │ blx r4 │ │ │ │ │ add sp, sp, #8 │ │ │ │ │ - pop {r4, pc} │ │ │ │ │ - ldr r2, [pc, #12] @ c8 │ │ │ │ │ + ldr r4, [sp] │ │ │ │ │ + add sp, sp, #4 │ │ │ │ │ + pop {pc} @ (ldr pc, [sp], #4) │ │ │ │ │ + ldr r2, [pc, #12] @ e8 │ │ │ │ │ add r2, pc, r2 │ │ │ │ │ - b 8c │ │ │ │ │ - .word 0x00000030 │ │ │ │ │ + b a4 │ │ │ │ │ + .word 0x00000038 │ │ │ │ │ R_ARM_REL32 .LC1 │ │ │ │ │ - .word 0x00000018 │ │ │ │ │ + .word 0x00000020 │ │ │ │ │ R_ARM_REL32 .LC2 │ │ │ │ │ .word 0x00000008 │ │ │ │ │ R_ARM_REL32 .LC0 │ │ │ │ │ │ │ │ │ │ -000000cc : │ │ │ │ │ +000000ec : │ │ │ │ │ destroy(): │ │ │ │ │ - push {r4, lr} │ │ │ │ │ + str r4, [sp, #-8]! │ │ │ │ │ mov r4, r0 │ │ │ │ │ ldr r0, [r0, #72] @ 0x48 │ │ │ │ │ + str lr, [sp, #4] │ │ │ │ │ bl 0 │ │ │ │ │ R_ARM_CALL fftw_plan_destroy_internal │ │ │ │ │ ldr r0, [r4, #68] @ 0x44 │ │ │ │ │ bl 0 │ │ │ │ │ R_ARM_CALL fftw_plan_destroy_internal │ │ │ │ │ + ldr lr, [sp, #4] │ │ │ │ │ ldr r0, [r4, #64] @ 0x40 │ │ │ │ │ - pop {r4, lr} │ │ │ │ │ + ldr r4, [sp] │ │ │ │ │ + add sp, sp, #8 │ │ │ │ │ b 0 │ │ │ │ │ R_ARM_JUMP24 fftw_plan_destroy_internal │ │ │ │ │ │ │ │ │ │ -000000f0 : │ │ │ │ │ +0000011c : │ │ │ │ │ mkplan(): │ │ │ │ │ - push {r4, r5, r6, r7, r8, r9, sl, fp, lr} │ │ │ │ │ + strd r4, [sp, #-36]! @ 0xffffffdc │ │ │ │ │ mov r4, r1 │ │ │ │ │ ldr r1, [r1, #4] │ │ │ │ │ + strd r6, [sp, #8] │ │ │ │ │ + strd r8, [sp, #16] │ │ │ │ │ + strd sl, [sp, #24] │ │ │ │ │ + str lr, [sp, #32] │ │ │ │ │ sub sp, sp, #52 @ 0x34 │ │ │ │ │ ldr r3, [r1] │ │ │ │ │ cmp r3, #1 │ │ │ │ │ - ble 118 │ │ │ │ │ + ble 154 │ │ │ │ │ ldr r3, [r4, #20] │ │ │ │ │ cmp r3, #8 │ │ │ │ │ - beq 124 │ │ │ │ │ + beq 174 │ │ │ │ │ mov r0, #0 │ │ │ │ │ add sp, sp, #52 @ 0x34 │ │ │ │ │ - pop {r4, r5, r6, r7, r8, r9, sl, fp, pc} │ │ │ │ │ + ldrd r4, [sp] │ │ │ │ │ + ldrd r6, [sp, #8] │ │ │ │ │ + ldrd r8, [sp, #16] │ │ │ │ │ + ldrd sl, [sp, #24] │ │ │ │ │ + add sp, sp, #32 │ │ │ │ │ + pop {pc} @ (ldr pc, [sp], #4) │ │ │ │ │ ldr r3, [r0, #8] │ │ │ │ │ mov sl, r0 │ │ │ │ │ - cmp r3, #0 │ │ │ │ │ mov fp, r2 │ │ │ │ │ - beq 154 │ │ │ │ │ + cmp r3, #0 │ │ │ │ │ + beq 1a4 │ │ │ │ │ ldr r3, [r2, #164] @ 0xa4 │ │ │ │ │ tst r3, #4096 @ 0x1000 │ │ │ │ │ - bne 118 │ │ │ │ │ + bne 154 │ │ │ │ │ ldr r2, [r4, #12] │ │ │ │ │ ldr r3, [r4, #16] │ │ │ │ │ cmp r2, r3 │ │ │ │ │ - beq 118 │ │ │ │ │ + beq 154 │ │ │ │ │ mov r2, #0 │ │ │ │ │ mov r0, #1 │ │ │ │ │ bl 0 │ │ │ │ │ R_ARM_CALL fftw_mpi_is_local_after │ │ │ │ │ cmp r0, #0 │ │ │ │ │ - beq 118 │ │ │ │ │ + beq 154 │ │ │ │ │ ldr r1, [r4, #4] │ │ │ │ │ mov r2, #1 │ │ │ │ │ mov r0, #2 │ │ │ │ │ bl 0 │ │ │ │ │ R_ARM_CALL fftw_mpi_is_local_after │ │ │ │ │ cmp r0, #0 │ │ │ │ │ - beq 118 │ │ │ │ │ + beq 154 │ │ │ │ │ ldr r3, [r4, #4] │ │ │ │ │ - ldr r1, [r3, #12] │ │ │ │ │ ldr r0, [r3, #4] │ │ │ │ │ + ldr r1, [r3, #12] │ │ │ │ │ bl 0 │ │ │ │ │ R_ARM_CALL fftw_mpi_num_blocks │ │ │ │ │ cmp r0, #1 │ │ │ │ │ mov r5, r0 │ │ │ │ │ - bne 118 │ │ │ │ │ + bne 154 │ │ │ │ │ ldr r3, [fp, #164] @ 0xa4 │ │ │ │ │ tst r3, #8 │ │ │ │ │ - bne 548 │ │ │ │ │ + bne 598 │ │ │ │ │ + ldr r9, [r4, #12] │ │ │ │ │ ldr r3, [r4, #16] │ │ │ │ │ str r3, [sp, #28] │ │ │ │ │ ldr r3, [sl, #8] │ │ │ │ │ - ldr r9, [r4, #12] │ │ │ │ │ cmp r3, #0 │ │ │ │ │ - beq 528 │ │ │ │ │ + beq 578 │ │ │ │ │ ldr r8, [sp, #28] │ │ │ │ │ add r1, sp, #40 @ 0x28 │ │ │ │ │ ldr r0, [r4, #24] │ │ │ │ │ bl 0 │ │ │ │ │ R_ARM_CALL MPI_Comm_rank │ │ │ │ │ - add r1, sp, #44 @ 0x2c │ │ │ │ │ ldr r0, [r4, #24] │ │ │ │ │ + add r1, sp, #44 @ 0x2c │ │ │ │ │ bl 0 │ │ │ │ │ R_ARM_CALL MPI_Comm_size │ │ │ │ │ ldr r3, [r4, #4] │ │ │ │ │ ldr r0, [r3] │ │ │ │ │ sub r0, r0, #1 │ │ │ │ │ bl 0 │ │ │ │ │ R_ARM_CALL fftw_mktensor │ │ │ │ │ ldr ip, [r4, #4] │ │ │ │ │ + mov r7, r0 │ │ │ │ │ ldr r6, [ip] │ │ │ │ │ add r2, r6, r6, lsl #1 │ │ │ │ │ - add r3, r6, r6, lsl #1 │ │ │ │ │ + add r1, r6, r6, lsl #1 │ │ │ │ │ add r2, ip, r2, lsl #2 │ │ │ │ │ + lsl r1, r1, #2 │ │ │ │ │ ldr r2, [r2, #-8] │ │ │ │ │ - lsl r1, r3, #2 │ │ │ │ │ - add r3, r0, r3, lsl #2 │ │ │ │ │ - mov r7, r0 │ │ │ │ │ + add r3, r0, r1 │ │ │ │ │ + ldr r0, [r4, #8] │ │ │ │ │ str r2, [r3, #-20] @ 0xffffffec │ │ │ │ │ add r2, r6, r6, lsl #1 │ │ │ │ │ - ldr r0, [r4, #8] │ │ │ │ │ add r2, r7, r2, lsl #2 │ │ │ │ │ str r0, [r2, #-12] │ │ │ │ │ str r0, [r3, #-16] │ │ │ │ │ subs r0, r6, #3 │ │ │ │ │ - bmi 2e8 │ │ │ │ │ + bmi 33c │ │ │ │ │ cmp r6, #4 │ │ │ │ │ sub r2, r1, #16 │ │ │ │ │ sub lr, r1, #20 │ │ │ │ │ - ble 540 │ │ │ │ │ - sub r6, r6, #5 │ │ │ │ │ + ble 590 │ │ │ │ │ ldr r2, [r7, r2] │ │ │ │ │ - ldr lr, [r7, lr] │ │ │ │ │ + sub r6, r6, #5 │ │ │ │ │ add r1, ip, r1 │ │ │ │ │ and r6, r6, #1 │ │ │ │ │ str ip, [sp, #32] │ │ │ │ │ + ldr lr, [r7, lr] │ │ │ │ │ mul r2, lr, r2 │ │ │ │ │ - ldr ip, [r1, #-20] @ 0xffffffec │ │ │ │ │ - str r2, [r3, #-24] @ 0xffffffe8 │ │ │ │ │ - str r2, [r3, #-28] @ 0xffffffe4 │ │ │ │ │ - mul r2, ip, r2 │ │ │ │ │ sub r0, r0, #2 │ │ │ │ │ - str ip, [r3, #-32] @ 0xffffffe0 │ │ │ │ │ - cmp r0, r6 │ │ │ │ │ - ldr lr, [r1, #-32] @ 0xffffffe0 │ │ │ │ │ - str lr, [r3, #-44] @ 0xffffffd4 │ │ │ │ │ - str r2, [r3, #-36] @ 0xffffffdc │ │ │ │ │ - str r2, [r3, #-40] @ 0xffffffd8 │ │ │ │ │ sub r1, r1, #24 │ │ │ │ │ + ldr ip, [r1, #4] │ │ │ │ │ + cmp r0, r6 │ │ │ │ │ sub r3, r3, #24 │ │ │ │ │ - bne 258 │ │ │ │ │ + str ip, [r3, #-8] │ │ │ │ │ + str r2, [r3, #-4] │ │ │ │ │ + str r2, [r3] │ │ │ │ │ + mul r2, ip, r2 │ │ │ │ │ + ldr lr, [r1, #-8] │ │ │ │ │ + str lr, [r3, #-20] @ 0xffffffec │ │ │ │ │ + str r2, [r3, #-16] │ │ │ │ │ + str r2, [r3, #-12] │ │ │ │ │ + bne 2a8 │ │ │ │ │ ldr ip, [sp, #32] │ │ │ │ │ add r3, r6, r6, lsl #1 │ │ │ │ │ - add r0, ip, r3, lsl #2 │ │ │ │ │ - add r3, r7, r3, lsl #2 │ │ │ │ │ - ldr lr, [r3, #20] │ │ │ │ │ + cmp r6, #0 │ │ │ │ │ + lsl r3, r3, #2 │ │ │ │ │ + add r0, ip, r3 │ │ │ │ │ + add r3, r7, r3 │ │ │ │ │ ldr r2, [r3, #16] │ │ │ │ │ + ldr lr, [r3, #20] │ │ │ │ │ ldr r1, [r0, #16] │ │ │ │ │ mul r2, lr, r2 │ │ │ │ │ - cmp r6, #0 │ │ │ │ │ sub lr, r6, #1 │ │ │ │ │ str r1, [r3, #4] │ │ │ │ │ - str r2, [r3, #12] │ │ │ │ │ str r2, [r3, #8] │ │ │ │ │ - beq 2e8 │ │ │ │ │ - mul r2, r1, r2 │ │ │ │ │ - add lr, lr, lr, lsl #1 │ │ │ │ │ + str r2, [r3, #12] │ │ │ │ │ + beq 33c │ │ │ │ │ ldr r0, [r0, #4] │ │ │ │ │ + add lr, lr, lr, lsl #1 │ │ │ │ │ + mul r2, r1, r2 │ │ │ │ │ add lr, r7, lr, lsl #2 │ │ │ │ │ str r0, [r3, #-8] │ │ │ │ │ str r2, [lr, #12] │ │ │ │ │ str r2, [r3, #-4] │ │ │ │ │ ldr r1, [r7] │ │ │ │ │ cmp r1, #1 │ │ │ │ │ - ble 318 │ │ │ │ │ + ble 36c │ │ │ │ │ add r1, r1, r1, lsl #1 │ │ │ │ │ - sub r1, r1, #3 │ │ │ │ │ mov r3, #0 │ │ │ │ │ add r0, r7, #16 │ │ │ │ │ + sub r1, r1, #3 │ │ │ │ │ ldr r2, [r0, r3, lsl #2] │ │ │ │ │ add r3, r3, #3 │ │ │ │ │ cmp r1, r3 │ │ │ │ │ mul r5, r2, r5 │ │ │ │ │ - bne 304 │ │ │ │ │ + bne 358 │ │ │ │ │ ldmib r7, {r2, r3} │ │ │ │ │ mov r6, #1 │ │ │ │ │ mul r1, r3, r2 │ │ │ │ │ ldr r2, [sp, #40] @ 0x28 │ │ │ │ │ str r1, [sp, #32] │ │ │ │ │ ldmib ip, {r0, r1} │ │ │ │ │ bl 0 │ │ │ │ │ R_ARM_CALL fftw_mpi_block │ │ │ │ │ ldr r2, [sp, #32] │ │ │ │ │ - str r6, [sp, #4] │ │ │ │ │ - mov r1, r2 │ │ │ │ │ str r6, [sp] │ │ │ │ │ + str r6, [sp, #4] │ │ │ │ │ ldr r3, [r4, #8] │ │ │ │ │ + mov r1, r2 │ │ │ │ │ bl 0 │ │ │ │ │ R_ARM_CALL fftw_mktensor_2d │ │ │ │ │ add r3, r4, #32 │ │ │ │ │ mov r2, r9 │ │ │ │ │ - str r3, [sp] │ │ │ │ │ - mov r3, r8 │ │ │ │ │ mov r1, r0 │ │ │ │ │ mov r0, r7 │ │ │ │ │ + str r3, [sp] │ │ │ │ │ + mov r3, r8 │ │ │ │ │ bl 0 │ │ │ │ │ R_ARM_CALL fftw_mkproblem_rdft_d │ │ │ │ │ mov r1, r0 │ │ │ │ │ mov r0, fp │ │ │ │ │ bl 0 │ │ │ │ │ R_ARM_CALL fftw_mkplan_d │ │ │ │ │ - ldr r1, [r4, #24] │ │ │ │ │ mov r7, r0 │ │ │ │ │ clz r0, r0 │ │ │ │ │ + ldr r1, [r4, #24] │ │ │ │ │ lsr r0, r0, #5 │ │ │ │ │ bl 0 │ │ │ │ │ R_ARM_CALL fftw_mpi_any_true │ │ │ │ │ subs r9, r0, #0 │ │ │ │ │ - bne 504 │ │ │ │ │ + bne 554 │ │ │ │ │ ldr r3, [r4, #8] │ │ │ │ │ mul r5, r3, r5 │ │ │ │ │ ldr r3, [r4, #4] │ │ │ │ │ - ldr r1, [r3, #16] │ │ │ │ │ ldr r0, [r3, #4] │ │ │ │ │ + ldr r1, [r3, #16] │ │ │ │ │ str r9, [sp, #16] │ │ │ │ │ ldr r2, [r4, #24] │ │ │ │ │ str r2, [sp, #12] │ │ │ │ │ ldr r2, [r3, #24] │ │ │ │ │ str r2, [sp, #8] │ │ │ │ │ + mov r2, r5 │ │ │ │ │ ldr r3, [r3, #8] │ │ │ │ │ str r3, [sp, #4] │ │ │ │ │ ldr r3, [sp, #28] │ │ │ │ │ - mov r2, r5 │ │ │ │ │ str r3, [sp] │ │ │ │ │ mov r3, r8 │ │ │ │ │ bl 0 │ │ │ │ │ R_ARM_CALL fftw_mpi_mkproblem_transpose │ │ │ │ │ mov r1, r0 │ │ │ │ │ mov r0, fp │ │ │ │ │ bl 0 │ │ │ │ │ R_ARM_CALL fftw_mkplan_d │ │ │ │ │ - ldr r1, [r4, #24] │ │ │ │ │ mov r8, r0 │ │ │ │ │ clz r0, r0 │ │ │ │ │ + ldr r1, [r4, #24] │ │ │ │ │ lsr r0, r0, #5 │ │ │ │ │ bl 0 │ │ │ │ │ R_ARM_CALL fftw_mpi_any_true │ │ │ │ │ cmp r0, #0 │ │ │ │ │ - bne 50c │ │ │ │ │ + bne 55c │ │ │ │ │ ldr r3, [r4, #4] │ │ │ │ │ ldr r2, [r3, #4] │ │ │ │ │ ldr r0, [r3, #16] │ │ │ │ │ mul r1, r2, r5 │ │ │ │ │ ldr r2, [sp, #40] @ 0x28 │ │ │ │ │ str r1, [sp, #32] │ │ │ │ │ ldr r1, [r3, #24] │ │ │ │ │ @@ -302,142 +323,151 @@ │ │ │ │ │ mov r2, r5 │ │ │ │ │ mov r1, r5 │ │ │ │ │ str r0, [sp, #36] @ 0x24 │ │ │ │ │ ldr r0, [r3, #4] │ │ │ │ │ bl 0 │ │ │ │ │ R_ARM_CALL fftw_mktensor_1d │ │ │ │ │ ldr r2, [sp, #32] │ │ │ │ │ + mov r9, r0 │ │ │ │ │ mov r3, r5 │ │ │ │ │ - mov r1, r2 │ │ │ │ │ - str r6, [sp, #4] │ │ │ │ │ str r6, [sp] │ │ │ │ │ - mov r9, r0 │ │ │ │ │ ldr r0, [sp, #36] @ 0x24 │ │ │ │ │ + str r6, [sp, #4] │ │ │ │ │ + mov r1, r2 │ │ │ │ │ bl 0 │ │ │ │ │ R_ARM_CALL fftw_mktensor_2d │ │ │ │ │ ldr r3, [r4, #28] │ │ │ │ │ + mov r1, r0 │ │ │ │ │ + mov r0, r9 │ │ │ │ │ str r3, [sp] │ │ │ │ │ ldr r3, [sp, #28] │ │ │ │ │ mov r2, r3 │ │ │ │ │ - mov r1, r0 │ │ │ │ │ - mov r0, r9 │ │ │ │ │ bl 0 │ │ │ │ │ R_ARM_CALL fftw_mkproblem_rdft_1_d │ │ │ │ │ mov r1, r0 │ │ │ │ │ mov r0, fp │ │ │ │ │ bl 0 │ │ │ │ │ R_ARM_CALL fftw_mkplan_d │ │ │ │ │ - ldr r1, [r4, #24] │ │ │ │ │ mov r9, r0 │ │ │ │ │ clz r0, r0 │ │ │ │ │ + ldr r1, [r4, #24] │ │ │ │ │ lsr r0, r0, #5 │ │ │ │ │ bl 0 │ │ │ │ │ R_ARM_CALL fftw_mpi_any_true │ │ │ │ │ cmp r0, #0 │ │ │ │ │ - bne 50c │ │ │ │ │ - ldr r2, [pc, #188] @ 55c │ │ │ │ │ - ldr r1, [pc, #188] @ 560 │ │ │ │ │ + bne 55c │ │ │ │ │ + ldr r2, [pc, #184] @ 5ac │ │ │ │ │ + mov r0, #88 @ 0x58 │ │ │ │ │ + ldr r1, [pc, #180] @ 5b0 │ │ │ │ │ add r2, pc, r2 │ │ │ │ │ add r1, pc, r1 │ │ │ │ │ - mov r0, #88 @ 0x58 │ │ │ │ │ bl 0 │ │ │ │ │ R_ARM_CALL fftw_mkplan_rdft │ │ │ │ │ ldr r3, [sl, #8] │ │ │ │ │ - add r1, r9, #8 │ │ │ │ │ - cmp r3, #0 │ │ │ │ │ - ldreq r3, [fp, #164] @ 0xa4 │ │ │ │ │ - movne r3, #2 │ │ │ │ │ - andeq r3, r3, #4096 @ 0x1000 │ │ │ │ │ add r5, r0, #8 │ │ │ │ │ - str r3, [r0, #84] @ 0x54 │ │ │ │ │ mov r4, r0 │ │ │ │ │ mov r2, r5 │ │ │ │ │ + add r1, r9, #8 │ │ │ │ │ str r7, [r0, #64] @ 0x40 │ │ │ │ │ str r8, [r0, #68] @ 0x44 │ │ │ │ │ str r9, [r0, #72] @ 0x48 │ │ │ │ │ + cmp r3, #0 │ │ │ │ │ + ldreq r3, [fp, #164] @ 0xa4 │ │ │ │ │ + movne r3, #2 │ │ │ │ │ + andeq r3, r3, #4096 @ 0x1000 │ │ │ │ │ + str r3, [r0, #84] @ 0x54 │ │ │ │ │ add r0, r7, #8 │ │ │ │ │ bl 0 │ │ │ │ │ R_ARM_CALL fftw_ops_add │ │ │ │ │ add r0, r8, #8 │ │ │ │ │ mov r1, r5 │ │ │ │ │ bl 0 │ │ │ │ │ R_ARM_CALL fftw_ops_add2 │ │ │ │ │ mov r0, r4 │ │ │ │ │ - add sp, sp, #52 @ 0x34 │ │ │ │ │ - pop {r4, r5, r6, r7, r8, r9, sl, fp, pc} │ │ │ │ │ + b 158 │ │ │ │ │ mov r9, #0 │ │ │ │ │ mov r8, r9 │ │ │ │ │ mov r0, r9 │ │ │ │ │ bl 0 │ │ │ │ │ R_ARM_CALL fftw_plan_destroy_internal │ │ │ │ │ mov r0, r8 │ │ │ │ │ bl 0 │ │ │ │ │ R_ARM_CALL fftw_plan_destroy_internal │ │ │ │ │ mov r0, r7 │ │ │ │ │ bl 0 │ │ │ │ │ R_ARM_CALL fftw_plan_destroy_internal │ │ │ │ │ - b 118 │ │ │ │ │ + b 154 │ │ │ │ │ ldr r3, [fp, #164] @ 0xa4 │ │ │ │ │ tst r3, #4096 @ 0x1000 │ │ │ │ │ ldr r3, [sp, #28] │ │ │ │ │ moveq r8, r9 │ │ │ │ │ movne r8, r3 │ │ │ │ │ - b 1c4 │ │ │ │ │ + b 214 │ │ │ │ │ mov r6, r0 │ │ │ │ │ - b 298 │ │ │ │ │ + b 2e8 │ │ │ │ │ mov r0, r4 │ │ │ │ │ bl 0 │ │ │ │ │ R_ARM_CALL fftw_mpi_rdft_serial_applicable │ │ │ │ │ cmp r0, #0 │ │ │ │ │ - beq 1a8 │ │ │ │ │ - b 118 │ │ │ │ │ - .word 0xfffffb58 │ │ │ │ │ - .word 0x000000b4 │ │ │ │ │ + beq 1f8 │ │ │ │ │ + b 154 │ │ │ │ │ + .word 0xfffffb00 │ │ │ │ │ + .word 0x000000ac │ │ │ │ │ R_ARM_REL32 .data.rel.ro │ │ │ │ │ │ │ │ │ │ -00000564 : │ │ │ │ │ +000005b4 : │ │ │ │ │ awake(): │ │ │ │ │ - push {r4, r5, r6, lr} │ │ │ │ │ + strd r4, [sp, #-16]! │ │ │ │ │ mov r4, r0 │ │ │ │ │ mov r5, r1 │ │ │ │ │ ldr r0, [r0, #64] @ 0x40 │ │ │ │ │ + str r6, [sp, #8] │ │ │ │ │ + str lr, [sp, #12] │ │ │ │ │ bl 0 │ │ │ │ │ R_ARM_CALL fftw_plan_awake │ │ │ │ │ ldr r0, [r4, #68] @ 0x44 │ │ │ │ │ mov r1, r5 │ │ │ │ │ bl 0 │ │ │ │ │ R_ARM_CALL fftw_plan_awake │ │ │ │ │ - ldr r0, [r4, #72] @ 0x48 │ │ │ │ │ + ldr r6, [sp, #8] │ │ │ │ │ mov r1, r5 │ │ │ │ │ - pop {r4, r5, r6, lr} │ │ │ │ │ + ldr lr, [sp, #12] │ │ │ │ │ + ldr r0, [r4, #72] @ 0x48 │ │ │ │ │ + ldrd r4, [sp] │ │ │ │ │ + add sp, sp, #16 │ │ │ │ │ b 0 │ │ │ │ │ R_ARM_JUMP24 fftw_plan_awake │ │ │ │ │ │ │ │ │ │ -00000594 : │ │ │ │ │ +000005f8 : │ │ │ │ │ fftw_mpi_rdft_rank_geq2_transposed_register(): │ │ │ │ │ - push {r4, r5, r6, lr} │ │ │ │ │ - ldr r5, [pc, #72] @ 5e8 │ │ │ │ │ + strd r4, [sp, #-16]! │ │ │ │ │ mov r4, r0 │ │ │ │ │ + mov r0, #12 │ │ │ │ │ + ldr r5, [pc, #84] @ 660 │ │ │ │ │ + str r6, [sp, #8] │ │ │ │ │ + str lr, [sp, #12] │ │ │ │ │ add r5, pc, r5 │ │ │ │ │ mov r1, r5 │ │ │ │ │ - mov r0, #12 │ │ │ │ │ bl 0 │ │ │ │ │ R_ARM_CALL fftw_mksolver │ │ │ │ │ mov r3, #0 │ │ │ │ │ - str r3, [r0, #8] │ │ │ │ │ mov r1, r0 │ │ │ │ │ + str r3, [r0, #8] │ │ │ │ │ mov r0, r4 │ │ │ │ │ bl 0 │ │ │ │ │ R_ARM_CALL fftw_solver_register │ │ │ │ │ mov r1, r5 │ │ │ │ │ mov r0, #12 │ │ │ │ │ bl 0 │ │ │ │ │ R_ARM_CALL fftw_mksolver │ │ │ │ │ mov r3, #1 │ │ │ │ │ + ldr r6, [sp, #8] │ │ │ │ │ mov r1, r0 │ │ │ │ │ + ldr lr, [sp, #12] │ │ │ │ │ str r3, [r0, #8] │ │ │ │ │ mov r0, r4 │ │ │ │ │ - pop {r4, r5, r6, lr} │ │ │ │ │ + ldrd r4, [sp] │ │ │ │ │ + add sp, sp, #16 │ │ │ │ │ b 0 │ │ │ │ │ R_ARM_JUMP24 fftw_solver_register │ │ │ │ │ - .word 0x00000040 │ │ │ │ │ + .word 0x00000048 │ │ │ │ │ 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: 3360 (bytes into file) │ │ │ │ │ + Start of section headers: 3492 (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 0xd20: │ │ │ │ │ +There are 16 section headers, starting at offset 0xda4: │ │ │ │ │ │ │ │ │ │ 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 0004f4 00 AX 0 0 4 │ │ │ │ │ - [ 2] .rel.text REL 00000000 000b10 000158 08 I 13 1 4 │ │ │ │ │ - [ 3] .data PROGBITS 00000000 000528 000000 00 WA 0 0 1 │ │ │ │ │ - [ 4] .bss NOBITS 00000000 000528 000000 00 WA 0 0 1 │ │ │ │ │ - [ 5] .rodata.str1.4 PROGBITS 00000000 000528 00003a 01 AMS 0 0 4 │ │ │ │ │ - [ 6] .rodata PROGBITS 00000000 000562 000050 00 A 0 0 4 │ │ │ │ │ - [ 7] .data.rel.ro PROGBITS 00000000 0005b2 000010 00 WA 0 0 4 │ │ │ │ │ - [ 8] .rel.data.rel.ro REL 00000000 000c68 000020 08 I 13 7 4 │ │ │ │ │ - [ 9] .data.rel.ro.local PROGBITS 00000000 0005c2 00000c 00 WA 0 0 4 │ │ │ │ │ - [10] .rel.data.rel.ro.local REL 00000000 000c88 000008 08 I 13 9 4 │ │ │ │ │ - [11] .note.GNU-stack PROGBITS 00000000 0005ce 000000 00 0 0 1 │ │ │ │ │ - [12] .ARM.attributes ARM_ATTRIBUTES 00000000 0005ce 00002b 00 0 0 1 │ │ │ │ │ - [13] .symtab SYMTAB 00000000 0005fc 000300 10 14 24 4 │ │ │ │ │ - [14] .strtab STRTAB 00000000 0008fc 000212 00 0 0 1 │ │ │ │ │ - [15] .shstrtab STRTAB 00000000 000c90 00008f 00 0 0 1 │ │ │ │ │ + [ 1] .text PROGBITS 00000000 000034 000578 00 AX 0 0 4 │ │ │ │ │ + [ 2] .rel.text REL 00000000 000b94 000158 08 I 13 1 4 │ │ │ │ │ + [ 3] .data PROGBITS 00000000 0005ac 000000 00 WA 0 0 1 │ │ │ │ │ + [ 4] .bss NOBITS 00000000 0005ac 000000 00 WA 0 0 1 │ │ │ │ │ + [ 5] .rodata.str1.4 PROGBITS 00000000 0005ac 00003a 01 AMS 0 0 4 │ │ │ │ │ + [ 6] .rodata PROGBITS 00000000 0005e6 000050 00 A 0 0 4 │ │ │ │ │ + [ 7] .data.rel.ro PROGBITS 00000000 000636 000010 00 WA 0 0 4 │ │ │ │ │ + [ 8] .rel.data.rel.ro REL 00000000 000cec 000020 08 I 13 7 4 │ │ │ │ │ + [ 9] .data.rel.ro.local PROGBITS 00000000 000646 00000c 00 WA 0 0 4 │ │ │ │ │ + [10] .rel.data.rel.ro.local REL 00000000 000d0c 000008 08 I 13 9 4 │ │ │ │ │ + [11] .note.GNU-stack PROGBITS 00000000 000652 000000 00 0 0 1 │ │ │ │ │ + [12] .ARM.attributes ARM_ATTRIBUTES 00000000 000652 00002b 00 0 0 1 │ │ │ │ │ + [13] .symtab SYMTAB 00000000 000680 000300 10 14 24 4 │ │ │ │ │ + [14] .strtab STRTAB 00000000 000980 000212 00 0 0 1 │ │ │ │ │ + [15] .shstrtab STRTAB 00000000 000d14 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: 00000000 0 NOTYPE LOCAL DEFAULT 1 $a │ │ │ │ │ - 2: 00000000 84 FUNC LOCAL DEFAULT 1 apply │ │ │ │ │ + 2: 00000000 104 FUNC LOCAL DEFAULT 1 apply │ │ │ │ │ 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: 00000054 148 FUNC LOCAL DEFAULT 1 print │ │ │ │ │ - 8: 000000d8 0 NOTYPE LOCAL DEFAULT 1 $d │ │ │ │ │ - 9: 000000e8 0 NOTYPE LOCAL DEFAULT 1 $a │ │ │ │ │ - 10: 000000e8 36 FUNC LOCAL DEFAULT 1 destroy │ │ │ │ │ - 11: 0000010c 840 FUNC LOCAL DEFAULT 1 mkplan │ │ │ │ │ - 12: 0000044c 0 NOTYPE LOCAL DEFAULT 1 $d │ │ │ │ │ - 13: 00000454 0 NOTYPE LOCAL DEFAULT 1 $a │ │ │ │ │ - 14: 00000454 48 FUNC LOCAL DEFAULT 1 awake │ │ │ │ │ - 15: 000004f0 0 NOTYPE LOCAL DEFAULT 1 $d │ │ │ │ │ + 7: 00000068 168 FUNC LOCAL DEFAULT 1 print │ │ │ │ │ + 8: 00000100 0 NOTYPE LOCAL DEFAULT 1 $d │ │ │ │ │ + 9: 00000110 0 NOTYPE LOCAL DEFAULT 1 $a │ │ │ │ │ + 10: 00000110 48 FUNC LOCAL DEFAULT 1 destroy │ │ │ │ │ + 11: 00000140 872 FUNC LOCAL DEFAULT 1 mkplan │ │ │ │ │ + 12: 000004a0 0 NOTYPE LOCAL DEFAULT 1 $d │ │ │ │ │ + 13: 000004a8 0 NOTYPE LOCAL DEFAULT 1 $a │ │ │ │ │ + 14: 000004a8 68 FUNC LOCAL DEFAULT 1 awake │ │ │ │ │ + 15: 00000574 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: 00000484 112 FUNC GLOBAL DEFAULT 1 fftw_mpi_rdft_rank1_bigvec_register │ │ │ │ │ + 44: 000004ec 140 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,57 +1,57 @@ │ │ │ │ │ │ │ │ │ │ -Relocation section '.rel.text' at offset 0xb10 contains 43 entries: │ │ │ │ │ +Relocation section '.rel.text' at offset 0xb94 contains 43 entries: │ │ │ │ │ Offset Info Type Sym. Value Symbol's Name │ │ │ │ │ -00000078 0000181c R_ARM_CALL 00000000 memcpy │ │ │ │ │ -000000d8 00001003 R_ARM_REL32 00000000 .rodata │ │ │ │ │ -000000dc 00000503 R_ARM_REL32 00000004 .LC2 │ │ │ │ │ -000000e0 00000603 R_ARM_REL32 00000008 .LC3 │ │ │ │ │ -000000e4 00000403 R_ARM_REL32 00000000 .LC1 │ │ │ │ │ -000000f4 0000191c R_ARM_CALL 00000000 fftw_plan_destroy_internal │ │ │ │ │ -000000fc 0000191c R_ARM_CALL 00000000 fftw_plan_destroy_internal │ │ │ │ │ -00000108 0000191d R_ARM_JUMP24 00000000 fftw_plan_destroy_internal │ │ │ │ │ -0000012c 00001a1c R_ARM_CALL 00000000 MPI_Comm_size │ │ │ │ │ -00000198 00001b1c R_ARM_CALL 00000000 fftw_mpi_rearrange_applicable │ │ │ │ │ -000001b8 00001c1c R_ARM_CALL 00000000 MPI_Comm_rank │ │ │ │ │ -000001c4 00001a1c R_ARM_CALL 00000000 MPI_Comm_size │ │ │ │ │ -000001e8 00001d1c R_ARM_CALL 00000000 fftw_mpi_rearrange_ny │ │ │ │ │ -000001fc 00001e1c R_ARM_CALL 00000000 __aeabi_idiv │ │ │ │ │ -00000210 00001f1c R_ARM_CALL 00000000 fftw_mpi_default_block │ │ │ │ │ -00000254 0000201c R_ARM_CALL 00000000 fftw_mpi_mkproblem_transpose │ │ │ │ │ -00000260 0000211c R_ARM_CALL 00000000 fftw_mkplan_d │ │ │ │ │ -00000274 0000221c R_ARM_CALL 00000000 fftw_mpi_any_true │ │ │ │ │ -000002a8 0000231c R_ARM_CALL 00000000 fftw_mpi_block │ │ │ │ │ -000002bc 0000241c R_ARM_CALL 00000000 fftw_mktensor_1d │ │ │ │ │ -000002e0 0000251c R_ARM_CALL 00000000 fftw_mktensor_2d │ │ │ │ │ -000002fc 0000261c R_ARM_CALL 00000000 fftw_mkproblem_rdft_1_d │ │ │ │ │ -00000308 0000211c R_ARM_CALL 00000000 fftw_mkplan_d │ │ │ │ │ -0000031c 0000221c R_ARM_CALL 00000000 fftw_mpi_any_true │ │ │ │ │ -00000360 0000201c R_ARM_CALL 00000000 fftw_mpi_mkproblem_transpose │ │ │ │ │ -0000036c 0000211c R_ARM_CALL 00000000 fftw_mkplan_d │ │ │ │ │ -00000380 0000221c R_ARM_CALL 00000000 fftw_mpi_any_true │ │ │ │ │ -000003a0 0000271c R_ARM_CALL 00000000 fftw_mkplan_rdft │ │ │ │ │ -000003ec 0000281c R_ARM_CALL 00000000 fftw_ops_add │ │ │ │ │ -000003f8 0000291c R_ARM_CALL 00000000 fftw_ops_add2 │ │ │ │ │ -00000410 0000191c R_ARM_CALL 00000000 fftw_plan_destroy_internal │ │ │ │ │ -00000418 0000191c R_ARM_CALL 00000000 fftw_plan_destroy_internal │ │ │ │ │ -00000420 0000191c R_ARM_CALL 00000000 fftw_plan_destroy_internal │ │ │ │ │ -0000043c 00002a1c R_ARM_CALL 00000000 fftw_mpi_rdft_serial_applicable │ │ │ │ │ -00000450 00001203 R_ARM_REL32 00000000 .data.rel.ro │ │ │ │ │ -00000464 00002b1c R_ARM_CALL 00000000 fftw_plan_awake │ │ │ │ │ -00000470 00002b1c R_ARM_CALL 00000000 fftw_plan_awake │ │ │ │ │ -00000480 00002b1d R_ARM_JUMP24 00000000 fftw_plan_awake │ │ │ │ │ -000004a4 00002d1c R_ARM_CALL 00000000 fftw_mksolver │ │ │ │ │ -000004b8 00002e1c R_ARM_CALL 00000000 fftw_solver_register │ │ │ │ │ -000004c4 00002d1c R_ARM_CALL 00000000 fftw_mksolver │ │ │ │ │ -000004e0 00002e1c R_ARM_CALL 00000000 fftw_solver_register │ │ │ │ │ -000004f0 00001503 R_ARM_REL32 00000000 .data.rel.ro.local │ │ │ │ │ +00000094 0000181c R_ARM_CALL 00000000 memcpy │ │ │ │ │ +00000100 00001003 R_ARM_REL32 00000000 .rodata │ │ │ │ │ +00000104 00000503 R_ARM_REL32 00000004 .LC2 │ │ │ │ │ +00000108 00000603 R_ARM_REL32 00000008 .LC3 │ │ │ │ │ +0000010c 00000403 R_ARM_REL32 00000000 .LC1 │ │ │ │ │ +00000120 0000191c R_ARM_CALL 00000000 fftw_plan_destroy_internal │ │ │ │ │ +00000128 0000191c R_ARM_CALL 00000000 fftw_plan_destroy_internal │ │ │ │ │ +0000013c 0000191d R_ARM_JUMP24 00000000 fftw_plan_destroy_internal │ │ │ │ │ +00000170 00001a1c R_ARM_CALL 00000000 MPI_Comm_size │ │ │ │ │ +000001f0 00001b1c R_ARM_CALL 00000000 fftw_mpi_rearrange_applicable │ │ │ │ │ +00000210 00001c1c R_ARM_CALL 00000000 MPI_Comm_rank │ │ │ │ │ +0000021c 00001a1c R_ARM_CALL 00000000 MPI_Comm_size │ │ │ │ │ +00000240 00001d1c R_ARM_CALL 00000000 fftw_mpi_rearrange_ny │ │ │ │ │ +00000258 00001e1c R_ARM_CALL 00000000 __aeabi_idiv │ │ │ │ │ +00000268 00001f1c R_ARM_CALL 00000000 fftw_mpi_default_block │ │ │ │ │ +000002ac 0000201c R_ARM_CALL 00000000 fftw_mpi_mkproblem_transpose │ │ │ │ │ +000002b8 0000211c R_ARM_CALL 00000000 fftw_mkplan_d │ │ │ │ │ +000002cc 0000221c R_ARM_CALL 00000000 fftw_mpi_any_true │ │ │ │ │ +00000300 0000231c R_ARM_CALL 00000000 fftw_mpi_block │ │ │ │ │ +00000314 0000241c R_ARM_CALL 00000000 fftw_mktensor_1d │ │ │ │ │ +00000338 0000251c R_ARM_CALL 00000000 fftw_mktensor_2d │ │ │ │ │ +00000354 0000261c R_ARM_CALL 00000000 fftw_mkproblem_rdft_1_d │ │ │ │ │ +00000360 0000211c R_ARM_CALL 00000000 fftw_mkplan_d │ │ │ │ │ +00000374 0000221c R_ARM_CALL 00000000 fftw_mpi_any_true │ │ │ │ │ +000003b8 0000201c R_ARM_CALL 00000000 fftw_mpi_mkproblem_transpose │ │ │ │ │ +000003c4 0000211c R_ARM_CALL 00000000 fftw_mkplan_d │ │ │ │ │ +000003d8 0000221c R_ARM_CALL 00000000 fftw_mpi_any_true │ │ │ │ │ +000003f8 0000271c R_ARM_CALL 00000000 fftw_mkplan_rdft │ │ │ │ │ +00000444 0000281c R_ARM_CALL 00000000 fftw_ops_add │ │ │ │ │ +00000450 0000291c R_ARM_CALL 00000000 fftw_ops_add2 │ │ │ │ │ +00000464 0000191c R_ARM_CALL 00000000 fftw_plan_destroy_internal │ │ │ │ │ +0000046c 0000191c R_ARM_CALL 00000000 fftw_plan_destroy_internal │ │ │ │ │ +00000474 0000191c R_ARM_CALL 00000000 fftw_plan_destroy_internal │ │ │ │ │ +00000490 00002a1c R_ARM_CALL 00000000 fftw_mpi_rdft_serial_applicable │ │ │ │ │ +000004a4 00001203 R_ARM_REL32 00000000 .data.rel.ro │ │ │ │ │ +000004c0 00002b1c R_ARM_CALL 00000000 fftw_plan_awake │ │ │ │ │ +000004cc 00002b1c R_ARM_CALL 00000000 fftw_plan_awake │ │ │ │ │ +000004e8 00002b1d R_ARM_JUMP24 00000000 fftw_plan_awake │ │ │ │ │ +00000518 00002d1c R_ARM_CALL 00000000 fftw_mksolver │ │ │ │ │ +0000052c 00002e1c R_ARM_CALL 00000000 fftw_solver_register │ │ │ │ │ +00000538 00002d1c R_ARM_CALL 00000000 fftw_mksolver │ │ │ │ │ +00000554 00002e1c R_ARM_CALL 00000000 fftw_solver_register │ │ │ │ │ +00000574 00001503 R_ARM_REL32 00000000 .data.rel.ro.local │ │ │ │ │ │ │ │ │ │ -Relocation section '.rel.data.rel.ro' at offset 0xc68 contains 4 entries: │ │ │ │ │ +Relocation section '.rel.data.rel.ro' at offset 0xcec 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 00000454 awake │ │ │ │ │ -00000008 00000702 R_ARM_ABS32 00000054 print │ │ │ │ │ -0000000c 00000a02 R_ARM_ABS32 000000e8 destroy │ │ │ │ │ +00000004 00000e02 R_ARM_ABS32 000004a8 awake │ │ │ │ │ +00000008 00000702 R_ARM_ABS32 00000068 print │ │ │ │ │ +0000000c 00000a02 R_ARM_ABS32 00000110 destroy │ │ │ │ │ │ │ │ │ │ -Relocation section '.rel.data.rel.ro.local' at offset 0xc88 contains 1 entry: │ │ │ │ │ +Relocation section '.rel.data.rel.ro.local' at offset 0xd0c contains 1 entry: │ │ │ │ │ Offset Info Type Sym. Value Symbol's Name │ │ │ │ │ -00000004 00000b02 R_ARM_ABS32 0000010c mkplan │ │ │ │ │ +00000004 00000b02 R_ARM_ABS32 00000140 mkplan │ │ │ │ ├── objdump --line-numbers --disassemble --demangle --reloc --no-show-raw-insn --section=.text {} │ │ │ │ │ @@ -1,382 +1,415 @@ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ Disassembly of section .text: │ │ │ │ │ │ │ │ │ │ 00000000 : │ │ │ │ │ apply(): │ │ │ │ │ - push {r4, r5, r6, lr} │ │ │ │ │ + strd r4, [sp, #-16]! │ │ │ │ │ mov r5, r0 │ │ │ │ │ - ldr r0, [r0, #64] @ 0x40 │ │ │ │ │ mov r4, r1 │ │ │ │ │ - ldr r3, [r0, #56] @ 0x38 │ │ │ │ │ + ldr r0, [r0, #64] @ 0x40 │ │ │ │ │ + str r6, [sp, #8] │ │ │ │ │ mov r6, r2 │ │ │ │ │ + str lr, [sp, #12] │ │ │ │ │ + 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 │ │ │ │ │ - movne r4, r6 │ │ │ │ │ ldr r3, [r0, #56] @ 0x38 │ │ │ │ │ + movne r4, r6 │ │ │ │ │ mov r2, r4 │ │ │ │ │ - mov r1, r6 │ │ │ │ │ blx r3 │ │ │ │ │ ldr r0, [r5, #72] @ 0x48 │ │ │ │ │ mov r2, r6 │ │ │ │ │ mov r1, r4 │ │ │ │ │ + ldrd r4, [sp] │ │ │ │ │ + ldr r6, [sp, #8] │ │ │ │ │ + ldr lr, [sp, #12] │ │ │ │ │ + add sp, sp, #16 │ │ │ │ │ ldr r3, [r0, #56] @ 0x38 │ │ │ │ │ - pop {r4, r5, r6, lr} │ │ │ │ │ bx r3 │ │ │ │ │ │ │ │ │ │ -00000054 : │ │ │ │ │ +00000068 : │ │ │ │ │ print(): │ │ │ │ │ - push {r4, r5, r6, lr} │ │ │ │ │ + strd r4, [sp, #-16]! │ │ │ │ │ mov r5, r1 │ │ │ │ │ - sub sp, sp, #96 @ 0x60 │ │ │ │ │ - ldr r1, [pc, #112] @ d8 │ │ │ │ │ - add r3, sp, #16 │ │ │ │ │ mov r4, r0 │ │ │ │ │ + ldr r1, [pc, #132] @ 100 │ │ │ │ │ mov r2, #80 @ 0x50 │ │ │ │ │ + str r6, [sp, #8] │ │ │ │ │ + str lr, [sp, #12] │ │ │ │ │ + sub sp, sp, #96 @ 0x60 │ │ │ │ │ + add r3, sp, #16 │ │ │ │ │ mov r0, r3 │ │ │ │ │ add r1, pc, r1 │ │ │ │ │ bl 0 │ │ │ │ │ R_ARM_CALL memcpy │ │ │ │ │ ldr r3, [r4, #76] @ 0x4c │ │ │ │ │ ldr r2, [r4, #80] @ 0x50 │ │ │ │ │ - cmp r3, #2 │ │ │ │ │ ldr r6, [r5] │ │ │ │ │ + cmp r3, #2 │ │ │ │ │ add r2, r0, r2, lsl #4 │ │ │ │ │ - beq cc │ │ │ │ │ - ldr r3, [pc, #64] @ dc │ │ │ │ │ + beq f4 │ │ │ │ │ + ldr r3, [pc, #76] @ 104 │ │ │ │ │ add r3, pc, r3 │ │ │ │ │ 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] │ │ │ │ │ - ldr r1, [pc, #36] @ e0 │ │ │ │ │ - mov r0, r5 │ │ │ │ │ + ldr r1, [pc, #44] @ 108 │ │ │ │ │ add r1, pc, r1 │ │ │ │ │ blx r6 │ │ │ │ │ add sp, sp, #96 @ 0x60 │ │ │ │ │ - pop {r4, r5, r6, pc} │ │ │ │ │ - ldr r3, [pc, #16] @ e4 │ │ │ │ │ + ldrd r4, [sp] │ │ │ │ │ + ldr r6, [sp, #8] │ │ │ │ │ + add sp, sp, #12 │ │ │ │ │ + pop {pc} @ (ldr pc, [sp], #4) │ │ │ │ │ + ldr r3, [pc, #16] @ 10c │ │ │ │ │ add r3, pc, r3 │ │ │ │ │ - b 9c │ │ │ │ │ - .word 0x0000005c │ │ │ │ │ + b b8 │ │ │ │ │ + .word 0x00000068 │ │ │ │ │ R_ARM_REL32 .rodata │ │ │ │ │ - .word 0x0000003c │ │ │ │ │ + .word 0x00000048 │ │ │ │ │ R_ARM_REL32 .LC2 │ │ │ │ │ - .word 0x0000001c │ │ │ │ │ + .word 0x00000028 │ │ │ │ │ R_ARM_REL32 .LC3 │ │ │ │ │ .word 0x0000000c │ │ │ │ │ R_ARM_REL32 .LC1 │ │ │ │ │ │ │ │ │ │ -000000e8 : │ │ │ │ │ +00000110 : │ │ │ │ │ destroy(): │ │ │ │ │ - push {r4, lr} │ │ │ │ │ + str r4, [sp, #-8]! │ │ │ │ │ mov r4, r0 │ │ │ │ │ ldr r0, [r0, #72] @ 0x48 │ │ │ │ │ + str lr, [sp, #4] │ │ │ │ │ bl 0 │ │ │ │ │ R_ARM_CALL fftw_plan_destroy_internal │ │ │ │ │ ldr r0, [r4, #68] @ 0x44 │ │ │ │ │ bl 0 │ │ │ │ │ R_ARM_CALL fftw_plan_destroy_internal │ │ │ │ │ + ldr lr, [sp, #4] │ │ │ │ │ ldr r0, [r4, #64] @ 0x40 │ │ │ │ │ - pop {r4, lr} │ │ │ │ │ + ldr r4, [sp] │ │ │ │ │ + add sp, sp, #8 │ │ │ │ │ b 0 │ │ │ │ │ R_ARM_JUMP24 fftw_plan_destroy_internal │ │ │ │ │ │ │ │ │ │ -0000010c : │ │ │ │ │ +00000140 : │ │ │ │ │ mkplan(): │ │ │ │ │ - push {r4, r5, r6, r7, r8, r9, sl, fp, lr} │ │ │ │ │ - sub sp, sp, #52 @ 0x34 │ │ │ │ │ + strd r4, [sp, #-36]! @ 0xffffffdc │ │ │ │ │ mov r4, r1 │ │ │ │ │ - add r5, sp, #44 @ 0x2c │ │ │ │ │ + strd r6, [sp, #8] │ │ │ │ │ mov r6, r0 │ │ │ │ │ - mov r1, r5 │ │ │ │ │ - ldr r0, [r4, #24] │ │ │ │ │ mov r7, r2 │ │ │ │ │ + strd r8, [sp, #16] │ │ │ │ │ + strd sl, [sp, #24] │ │ │ │ │ + str lr, [sp, #32] │ │ │ │ │ + sub sp, sp, #52 @ 0x34 │ │ │ │ │ + add r5, sp, #44 @ 0x2c │ │ │ │ │ + ldr r0, [r4, #24] │ │ │ │ │ + mov r1, r5 │ │ │ │ │ bl 0 │ │ │ │ │ R_ARM_CALL MPI_Comm_size │ │ │ │ │ ldr r3, [r4, #4] │ │ │ │ │ ldr r2, [r3] │ │ │ │ │ cmp r2, #1 │ │ │ │ │ - beq 14c │ │ │ │ │ + beq 1a4 │ │ │ │ │ mov r0, #0 │ │ │ │ │ add sp, sp, #52 @ 0x34 │ │ │ │ │ - pop {r4, r5, r6, r7, r8, r9, sl, fp, pc} │ │ │ │ │ + ldrd r4, [sp] │ │ │ │ │ + ldrd r6, [sp, #8] │ │ │ │ │ + ldrd r8, [sp, #16] │ │ │ │ │ + ldrd sl, [sp, #24] │ │ │ │ │ + add sp, sp, #32 │ │ │ │ │ + pop {pc} @ (ldr pc, [sp], #4) │ │ │ │ │ ldr r2, [r4, #20] │ │ │ │ │ bics r2, r2, #16 │ │ │ │ │ - bne 140 │ │ │ │ │ + bne 184 │ │ │ │ │ ldr r2, [r6, #8] │ │ │ │ │ cmp r2, #0 │ │ │ │ │ - beq 180 │ │ │ │ │ + beq 1d8 │ │ │ │ │ ldr r2, [r7, #164] @ 0xa4 │ │ │ │ │ tst r2, #4096 @ 0x1000 │ │ │ │ │ - bne 140 │ │ │ │ │ + bne 184 │ │ │ │ │ ldr r1, [r4, #12] │ │ │ │ │ ldr r2, [r4, #16] │ │ │ │ │ cmp r1, r2 │ │ │ │ │ - beq 140 │ │ │ │ │ + beq 184 │ │ │ │ │ ldr r2, [sp, #44] @ 0x2c │ │ │ │ │ str r2, [sp, #4] │ │ │ │ │ ldr r2, [r4, #8] │ │ │ │ │ str r2, [sp] │ │ │ │ │ ldmib r3, {r1, r2, r3} │ │ │ │ │ ldr r0, [r6, #12] │ │ │ │ │ bl 0 │ │ │ │ │ R_ARM_CALL fftw_mpi_rearrange_applicable │ │ │ │ │ cmp r0, #0 │ │ │ │ │ - beq 140 │ │ │ │ │ + beq 184 │ │ │ │ │ ldr r3, [r7, #164] @ 0xa4 │ │ │ │ │ tst r3, #8 │ │ │ │ │ - bne 438 │ │ │ │ │ - add r1, sp, #40 @ 0x28 │ │ │ │ │ + bne 48c │ │ │ │ │ ldr r0, [r4, #24] │ │ │ │ │ + add r1, sp, #40 @ 0x28 │ │ │ │ │ bl 0 │ │ │ │ │ R_ARM_CALL MPI_Comm_rank │ │ │ │ │ - mov r1, r5 │ │ │ │ │ ldr r0, [r4, #24] │ │ │ │ │ + mov r1, r5 │ │ │ │ │ bl 0 │ │ │ │ │ R_ARM_CALL MPI_Comm_size │ │ │ │ │ ldr r3, [r4, #4] │ │ │ │ │ ldr r2, [sp, #44] @ 0x2c │ │ │ │ │ ldr sl, [r3, #4]! │ │ │ │ │ str r2, [sp, #4] │ │ │ │ │ ldr r2, [r4, #8] │ │ │ │ │ str r2, [sp] │ │ │ │ │ ldm r3, {r1, r2, r3} │ │ │ │ │ ldr r0, [r6, #12] │ │ │ │ │ bl 0 │ │ │ │ │ R_ARM_CALL fftw_mpi_rearrange_ny │ │ │ │ │ subs r5, r0, #0 │ │ │ │ │ - beq 140 │ │ │ │ │ + beq 184 │ │ │ │ │ ldr r0, [r4, #8] │ │ │ │ │ mov r1, r5 │ │ │ │ │ + mov r9, #0 │ │ │ │ │ bl 0 <__aeabi_idiv> │ │ │ │ │ R_ARM_CALL __aeabi_idiv │ │ │ │ │ ldr r1, [sp, #44] @ 0x2c │ │ │ │ │ - mov r9, #0 │ │ │ │ │ mov r8, r0 │ │ │ │ │ mov r0, r5 │ │ │ │ │ bl 0 │ │ │ │ │ R_ARM_CALL fftw_mpi_default_block │ │ │ │ │ - ldr r2, [r4, #16] │ │ │ │ │ ldr fp, [r4, #12] │ │ │ │ │ + mov r1, r5 │ │ │ │ │ + str r0, [sp, #28] │ │ │ │ │ + ldr r2, [r4, #16] │ │ │ │ │ str r9, [sp, #16] │ │ │ │ │ ldr r3, [r4, #24] │ │ │ │ │ - str r3, [sp, #12] │ │ │ │ │ - mov r1, r5 │ │ │ │ │ - str r2, [sp, #24] │ │ │ │ │ str r0, [sp, #8] │ │ │ │ │ + mov r0, sl │ │ │ │ │ + str r3, [sp, #12] │ │ │ │ │ ldr r3, [r4, #4] │ │ │ │ │ - str r0, [sp, #28] │ │ │ │ │ + str r2, [sp, #24] │ │ │ │ │ ldr r3, [r3, #8] │ │ │ │ │ - str r3, [sp, #4] │ │ │ │ │ str r2, [sp] │ │ │ │ │ - mov r3, fp │ │ │ │ │ mov r2, r8 │ │ │ │ │ - mov r0, sl │ │ │ │ │ + str r3, [sp, #4] │ │ │ │ │ + mov r3, fp │ │ │ │ │ bl 0 │ │ │ │ │ R_ARM_CALL fftw_mpi_mkproblem_transpose │ │ │ │ │ mov r1, r0 │ │ │ │ │ mov r0, r7 │ │ │ │ │ bl 0 │ │ │ │ │ R_ARM_CALL fftw_mkplan_d │ │ │ │ │ - ldr r1, [r4, #24] │ │ │ │ │ str r0, [sp, #32] │ │ │ │ │ clz r0, r0 │ │ │ │ │ + ldr r1, [r4, #24] │ │ │ │ │ lsr r0, r0, #5 │ │ │ │ │ bl 0 │ │ │ │ │ R_ARM_CALL fftw_mpi_any_true │ │ │ │ │ cmp r0, r9 │ │ │ │ │ - bne 430 │ │ │ │ │ + bne 484 │ │ │ │ │ ldr r3, [r6, #8] │ │ │ │ │ cmp r3, r9 │ │ │ │ │ - bne 428 │ │ │ │ │ + bne 47c │ │ │ │ │ ldr r3, [r7, #164] @ 0xa4 │ │ │ │ │ ldr r2, [sp, #24] │ │ │ │ │ tst r3, #4096 @ 0x1000 │ │ │ │ │ movne fp, r2 │ │ │ │ │ - ldr r2, [sp, #40] @ 0x28 │ │ │ │ │ ldr r1, [sp, #28] │ │ │ │ │ mov r0, r5 │ │ │ │ │ + ldr r2, [sp, #40] @ 0x28 │ │ │ │ │ bl 0 │ │ │ │ │ R_ARM_CALL fftw_mpi_block │ │ │ │ │ + mov r9, r0 │ │ │ │ │ mov r2, r8 │ │ │ │ │ mov r1, r8 │ │ │ │ │ - mov r9, r0 │ │ │ │ │ mov r0, sl │ │ │ │ │ bl 0 │ │ │ │ │ R_ARM_CALL fftw_mktensor_1d │ │ │ │ │ mul r2, r8, sl │ │ │ │ │ mov r3, #1 │ │ │ │ │ + str r3, [sp] │ │ │ │ │ mov r1, r2 │ │ │ │ │ str r3, [sp, #4] │ │ │ │ │ - str r3, [sp] │ │ │ │ │ mov r3, r8 │ │ │ │ │ str r0, [sp, #36] @ 0x24 │ │ │ │ │ mov r0, r9 │ │ │ │ │ bl 0 │ │ │ │ │ R_ARM_CALL fftw_mktensor_2d │ │ │ │ │ ldr r3, [r4, #28] │ │ │ │ │ + mov r1, r0 │ │ │ │ │ ldr r2, [sp, #24] │ │ │ │ │ + ldr r0, [sp, #36] @ 0x24 │ │ │ │ │ str r3, [sp] │ │ │ │ │ mov r3, fp │ │ │ │ │ - mov r1, r0 │ │ │ │ │ - ldr r0, [sp, #36] @ 0x24 │ │ │ │ │ bl 0 │ │ │ │ │ R_ARM_CALL fftw_mkproblem_rdft_1_d │ │ │ │ │ mov r1, r0 │ │ │ │ │ mov r0, r7 │ │ │ │ │ bl 0 │ │ │ │ │ R_ARM_CALL fftw_mkplan_d │ │ │ │ │ - ldr r1, [r4, #24] │ │ │ │ │ mov r9, r0 │ │ │ │ │ clz r0, r0 │ │ │ │ │ + ldr r1, [r4, #24] │ │ │ │ │ lsr r0, r0, #5 │ │ │ │ │ bl 0 │ │ │ │ │ R_ARM_CALL fftw_mpi_any_true │ │ │ │ │ cmp r0, #0 │ │ │ │ │ - bne 408 │ │ │ │ │ + bne 45c │ │ │ │ │ str r0, [sp, #16] │ │ │ │ │ + mov r2, r8 │ │ │ │ │ + mov r1, sl │ │ │ │ │ ldr r3, [r4, #24] │ │ │ │ │ + mov r0, r5 │ │ │ │ │ str r3, [sp, #12] │ │ │ │ │ ldr r3, [r4, #4] │ │ │ │ │ - mov r2, r8 │ │ │ │ │ ldr r3, [r3, #12] │ │ │ │ │ str r3, [sp, #8] │ │ │ │ │ ldr r3, [sp, #28] │ │ │ │ │ str r3, [sp, #4] │ │ │ │ │ ldr r3, [sp, #24] │ │ │ │ │ - mov r1, sl │ │ │ │ │ - mov r0, r5 │ │ │ │ │ str r3, [sp] │ │ │ │ │ mov r3, fp │ │ │ │ │ bl 0 │ │ │ │ │ R_ARM_CALL fftw_mpi_mkproblem_transpose │ │ │ │ │ mov r1, r0 │ │ │ │ │ mov r0, r7 │ │ │ │ │ bl 0 │ │ │ │ │ R_ARM_CALL fftw_mkplan_d │ │ │ │ │ - ldr r1, [r4, #24] │ │ │ │ │ mov r5, r0 │ │ │ │ │ clz r0, r0 │ │ │ │ │ + ldr r1, [r4, #24] │ │ │ │ │ lsr r0, r0, #5 │ │ │ │ │ bl 0 │ │ │ │ │ R_ARM_CALL fftw_mpi_any_true │ │ │ │ │ cmp r0, #0 │ │ │ │ │ - bne 40c │ │ │ │ │ - ldr r2, [pc, #184] @ 44c │ │ │ │ │ - ldr r1, [pc, #184] @ 450 │ │ │ │ │ + bne 460 │ │ │ │ │ + ldr r2, [pc, #180] @ 4a0 │ │ │ │ │ + mov r0, #88 @ 0x58 │ │ │ │ │ + ldr r1, [pc, #176] @ 4a4 │ │ │ │ │ add r2, pc, r2 │ │ │ │ │ add r1, pc, r1 │ │ │ │ │ - mov r0, #88 @ 0x58 │ │ │ │ │ bl 0 │ │ │ │ │ R_ARM_CALL fftw_mkplan_rdft │ │ │ │ │ ldr r3, [sp, #32] │ │ │ │ │ + mov r4, r0 │ │ │ │ │ add r1, r9, #8 │ │ │ │ │ str r3, [r0, #64] @ 0x40 │ │ │ │ │ ldr r3, [r6, #8] │ │ │ │ │ - mov r4, r0 │ │ │ │ │ + str r9, [r0, #68] @ 0x44 │ │ │ │ │ + str r5, [r0, #72] @ 0x48 │ │ │ │ │ cmp r3, #0 │ │ │ │ │ ldreq r3, [r7, #164] @ 0xa4 │ │ │ │ │ movne r3, #2 │ │ │ │ │ andeq r3, r3, #4096 @ 0x1000 │ │ │ │ │ str r3, [r0, #76] @ 0x4c │ │ │ │ │ ldr r3, [r6, #12] │ │ │ │ │ - str r3, [r0, #80] @ 0x50 │ │ │ │ │ - ldr r3, [sp, #32] │ │ │ │ │ add r6, r0, #8 │ │ │ │ │ mov r2, r6 │ │ │ │ │ - str r9, [r0, #68] @ 0x44 │ │ │ │ │ - str r5, [r0, #72] @ 0x48 │ │ │ │ │ + str r3, [r0, #80] @ 0x50 │ │ │ │ │ + ldr r3, [sp, #32] │ │ │ │ │ add r0, r3, #8 │ │ │ │ │ bl 0 │ │ │ │ │ R_ARM_CALL fftw_ops_add │ │ │ │ │ add r0, r5, #8 │ │ │ │ │ mov r1, r6 │ │ │ │ │ bl 0 │ │ │ │ │ R_ARM_CALL fftw_ops_add2 │ │ │ │ │ mov r0, r4 │ │ │ │ │ - add sp, sp, #52 @ 0x34 │ │ │ │ │ - pop {r4, r5, r6, r7, r8, r9, sl, fp, pc} │ │ │ │ │ + b 188 │ │ │ │ │ mov r5, #0 │ │ │ │ │ mov r0, r5 │ │ │ │ │ bl 0 │ │ │ │ │ R_ARM_CALL fftw_plan_destroy_internal │ │ │ │ │ mov r0, r9 │ │ │ │ │ bl 0 │ │ │ │ │ R_ARM_CALL fftw_plan_destroy_internal │ │ │ │ │ ldr r0, [sp, #32] │ │ │ │ │ bl 0 │ │ │ │ │ R_ARM_CALL fftw_plan_destroy_internal │ │ │ │ │ - b 140 │ │ │ │ │ + b 184 │ │ │ │ │ ldr fp, [sp, #24] │ │ │ │ │ - b 29c │ │ │ │ │ + b 2f4 │ │ │ │ │ mov r5, r9 │ │ │ │ │ - b 40c │ │ │ │ │ + b 460 │ │ │ │ │ mov r0, r4 │ │ │ │ │ bl 0 │ │ │ │ │ R_ARM_CALL fftw_mpi_rdft_serial_applicable │ │ │ │ │ cmp r0, #0 │ │ │ │ │ - bne 140 │ │ │ │ │ - b 1b0 │ │ │ │ │ - .word 0xfffffc64 │ │ │ │ │ - .word 0x000000b0 │ │ │ │ │ + bne 184 │ │ │ │ │ + b 208 │ │ │ │ │ + .word 0xfffffc08 │ │ │ │ │ + .word 0x000000a8 │ │ │ │ │ R_ARM_REL32 .data.rel.ro │ │ │ │ │ │ │ │ │ │ -00000454 : │ │ │ │ │ +000004a8 : │ │ │ │ │ awake(): │ │ │ │ │ - push {r4, r5, r6, lr} │ │ │ │ │ + strd r4, [sp, #-16]! │ │ │ │ │ mov r4, r0 │ │ │ │ │ mov r5, r1 │ │ │ │ │ ldr r0, [r0, #64] @ 0x40 │ │ │ │ │ + str r6, [sp, #8] │ │ │ │ │ + str lr, [sp, #12] │ │ │ │ │ bl 0 │ │ │ │ │ R_ARM_CALL fftw_plan_awake │ │ │ │ │ ldr r0, [r4, #68] @ 0x44 │ │ │ │ │ mov r1, r5 │ │ │ │ │ bl 0 │ │ │ │ │ R_ARM_CALL fftw_plan_awake │ │ │ │ │ - ldr r0, [r4, #72] @ 0x48 │ │ │ │ │ + ldr r6, [sp, #8] │ │ │ │ │ mov r1, r5 │ │ │ │ │ - pop {r4, r5, r6, lr} │ │ │ │ │ + ldr lr, [sp, #12] │ │ │ │ │ + ldr r0, [r4, #72] @ 0x48 │ │ │ │ │ + ldrd r4, [sp] │ │ │ │ │ + add sp, sp, #16 │ │ │ │ │ b 0 │ │ │ │ │ R_ARM_JUMP24 fftw_plan_awake │ │ │ │ │ │ │ │ │ │ -00000484 : │ │ │ │ │ +000004ec : │ │ │ │ │ fftw_mpi_rdft_rank1_bigvec_register(): │ │ │ │ │ - push {r4, r5, r6, r7, r8, lr} │ │ │ │ │ - ldr r6, [pc, #96] @ 4f0 │ │ │ │ │ + strd r4, [sp, #-24]! @ 0xffffffe8 │ │ │ │ │ mov r4, #0 │ │ │ │ │ mov r5, r0 │ │ │ │ │ - add r6, pc, r6 │ │ │ │ │ + strd r6, [sp, #8] │ │ │ │ │ mov r7, r4 │ │ │ │ │ + ldr r6, [pc, #108] @ 574 │ │ │ │ │ + str r8, [sp, #16] │ │ │ │ │ + str lr, [sp, #20] │ │ │ │ │ + add r6, pc, r6 │ │ │ │ │ mov r1, r6 │ │ │ │ │ mov r0, #16 │ │ │ │ │ bl 0 │ │ │ │ │ R_ARM_CALL fftw_mksolver │ │ │ │ │ mov r1, r0 │ │ │ │ │ - str r4, [r0, #12] │ │ │ │ │ str r7, [r0, #8] │ │ │ │ │ + str r4, [r0, #12] │ │ │ │ │ mov r0, r5 │ │ │ │ │ bl 0 │ │ │ │ │ R_ARM_CALL fftw_solver_register │ │ │ │ │ mov r1, r6 │ │ │ │ │ mov r0, #16 │ │ │ │ │ bl 0 │ │ │ │ │ R_ARM_CALL fftw_mksolver │ │ │ │ │ mov r3, #1 │ │ │ │ │ - str r4, [r0, #12] │ │ │ │ │ mov r1, r0 │ │ │ │ │ str r3, [r0, #8] │ │ │ │ │ - add r4, r4, #1 │ │ │ │ │ + str r4, [r0, #12] │ │ │ │ │ mov r0, r5 │ │ │ │ │ + add r4, r4, #1 │ │ │ │ │ bl 0 │ │ │ │ │ R_ARM_CALL fftw_solver_register │ │ │ │ │ cmp r4, #4 │ │ │ │ │ - bne 49c │ │ │ │ │ - pop {r4, r5, r6, r7, r8, pc} │ │ │ │ │ - .word 0x00000054 │ │ │ │ │ + bne 510 │ │ │ │ │ + ldrd r4, [sp] │ │ │ │ │ + ldrd r6, [sp, #8] │ │ │ │ │ + ldr r8, [sp, #16] │ │ │ │ │ + add sp, sp, #20 │ │ │ │ │ + pop {pc} @ (ldr pc, [sp], #4) │ │ │ │ │ + .word 0x00000060 │ │ │ │ │ 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: 2580 (bytes into file) │ │ │ │ │ + Start of section headers: 2688 (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 0xa14: │ │ │ │ │ +There are 13 section headers, starting at offset 0xa80: │ │ │ │ │ │ │ │ │ │ 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 000410 00 AX 0 0 4 │ │ │ │ │ - [ 2] .rel.text REL 00000000 00088c 0000f0 08 I 10 1 4 │ │ │ │ │ - [ 3] .data PROGBITS 00000000 000444 000000 00 WA 0 0 1 │ │ │ │ │ - [ 4] .bss NOBITS 00000000 000444 000000 00 WA 0 0 1 │ │ │ │ │ - [ 5] .rodata.str1.4 PROGBITS 00000000 000444 000030 01 AMS 0 0 4 │ │ │ │ │ - [ 6] .data.rel.ro.local PROGBITS 00000000 000474 000014 00 WA 0 0 4 │ │ │ │ │ - [ 7] .rel.data.rel.ro.local REL 00000000 00097c 000020 08 I 10 6 4 │ │ │ │ │ - [ 8] .note.GNU-stack PROGBITS 00000000 000488 000000 00 0 0 1 │ │ │ │ │ - [ 9] .ARM.attributes ARM_ATTRIBUTES 00000000 000488 00002b 00 0 0 1 │ │ │ │ │ - [10] .symtab SYMTAB 00000000 0004b4 000270 10 11 21 4 │ │ │ │ │ - [11] .strtab STRTAB 00000000 000724 000166 00 0 0 1 │ │ │ │ │ - [12] .shstrtab STRTAB 00000000 00099c 000076 00 0 0 1 │ │ │ │ │ + [ 1] .text PROGBITS 00000000 000034 00047c 00 AX 0 0 4 │ │ │ │ │ + [ 2] .rel.text REL 00000000 0008f8 0000f0 08 I 10 1 4 │ │ │ │ │ + [ 3] .data PROGBITS 00000000 0004b0 000000 00 WA 0 0 1 │ │ │ │ │ + [ 4] .bss NOBITS 00000000 0004b0 000000 00 WA 0 0 1 │ │ │ │ │ + [ 5] .rodata.str1.4 PROGBITS 00000000 0004b0 000030 01 AMS 0 0 4 │ │ │ │ │ + [ 6] .data.rel.ro.local PROGBITS 00000000 0004e0 000014 00 WA 0 0 4 │ │ │ │ │ + [ 7] .rel.data.rel.ro.local REL 00000000 0009e8 000020 08 I 10 6 4 │ │ │ │ │ + [ 8] .note.GNU-stack PROGBITS 00000000 0004f4 000000 00 0 0 1 │ │ │ │ │ + [ 9] .ARM.attributes ARM_ATTRIBUTES 00000000 0004f4 00002b 00 0 0 1 │ │ │ │ │ + [10] .symtab SYMTAB 00000000 000520 000270 10 11 21 4 │ │ │ │ │ + [11] .strtab STRTAB 00000000 000790 000166 00 0 0 1 │ │ │ │ │ + [12] .shstrtab STRTAB 00000000 000a08 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: 00000000 0 NOTYPE LOCAL DEFAULT 1 $a │ │ │ │ │ - 2: 00000000 36 FUNC LOCAL DEFAULT 1 destroy │ │ │ │ │ + 2: 00000000 48 FUNC LOCAL DEFAULT 1 destroy │ │ │ │ │ 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: 00000024 268 FUNC LOCAL DEFAULT 1 print │ │ │ │ │ - 9: 00000120 0 NOTYPE LOCAL DEFAULT 1 $d │ │ │ │ │ - 10: 00000130 0 NOTYPE LOCAL DEFAULT 1 $a │ │ │ │ │ - 11: 00000130 84 FUNC LOCAL DEFAULT 1 zero │ │ │ │ │ + 8: 00000030 296 FUNC LOCAL DEFAULT 1 print │ │ │ │ │ + 9: 00000148 0 NOTYPE LOCAL DEFAULT 1 $d │ │ │ │ │ + 10: 00000158 0 NOTYPE LOCAL DEFAULT 1 $a │ │ │ │ │ + 11: 00000158 104 FUNC LOCAL DEFAULT 1 zero │ │ │ │ │ 12: 00000028 0 NOTYPE LOCAL DEFAULT 5 .LC4 │ │ │ │ │ - 13: 00000184 200 FUNC LOCAL DEFAULT 1 hash │ │ │ │ │ - 14: 00000248 0 NOTYPE LOCAL DEFAULT 1 $d │ │ │ │ │ - 15: 0000024c 0 NOTYPE LOCAL DEFAULT 1 $a │ │ │ │ │ - 16: 000003cc 0 NOTYPE LOCAL DEFAULT 1 $d │ │ │ │ │ - 17: 000003d0 0 NOTYPE LOCAL DEFAULT 1 $a │ │ │ │ │ + 13: 000001c0 212 FUNC LOCAL DEFAULT 1 hash │ │ │ │ │ + 14: 00000290 0 NOTYPE LOCAL DEFAULT 1 $d │ │ │ │ │ + 15: 00000294 0 NOTYPE LOCAL DEFAULT 1 $a │ │ │ │ │ + 16: 0000042c 0 NOTYPE LOCAL DEFAULT 1 $d │ │ │ │ │ + 17: 00000430 0 NOTYPE LOCAL DEFAULT 1 $a │ │ │ │ │ 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: 0000024c 388 FUNC GLOBAL DEFAULT 1 fftw_mpi_mkproblem_rdft │ │ │ │ │ + 34: 00000294 412 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: 000003d0 64 FUNC GLOBAL DEFAULT 1 fftw_mpi_mkproblem_rdft_d │ │ │ │ │ + 38: 00000430 76 FUNC GLOBAL DEFAULT 1 fftw_mpi_mkproblem_rdft_d │ │ │ │ ├── readelf --wide --relocs {} │ │ │ │ │ @@ -1,40 +1,40 @@ │ │ │ │ │ │ │ │ │ │ -Relocation section '.rel.text' at offset 0x88c contains 30 entries: │ │ │ │ │ +Relocation section '.rel.text' at offset 0x8f8 contains 30 entries: │ │ │ │ │ Offset Info Type Sym. Value Symbol's Name │ │ │ │ │ -0000000c 0000151c R_ARM_CALL 00000000 fftw_mpi_dtensor_destroy │ │ │ │ │ -00000014 0000161c R_ARM_CALL 00000000 MPI_Comm_free │ │ │ │ │ -00000020 0000171d R_ARM_JUMP24 00000000 fftw_ifree │ │ │ │ │ -00000044 0000181c R_ARM_CALL 00000000 fftw_ialignment_of │ │ │ │ │ -00000058 0000181c R_ARM_CALL 00000000 fftw_ialignment_of │ │ │ │ │ -00000080 0000191c R_ARM_CALL 00000000 fftw_mpi_dtensor_print │ │ │ │ │ -000000fc 00001a1c R_ARM_CALL 00000000 MPI_Comm_size │ │ │ │ │ -00000120 00000403 R_ARM_REL32 00000000 .LC0 │ │ │ │ │ -00000124 00000503 R_ARM_REL32 00000014 .LC1 │ │ │ │ │ -00000128 00000603 R_ARM_REL32 00000018 .LC2 │ │ │ │ │ -0000012c 00000703 R_ARM_REL32 00000020 .LC3 │ │ │ │ │ -00000148 00001b1c R_ARM_CALL 00000000 MPI_Comm_rank │ │ │ │ │ -0000015c 00001c1c R_ARM_CALL 00000000 fftw_mpi_total_block │ │ │ │ │ -00000178 00001d1c R_ARM_CALL 00000000 memset │ │ │ │ │ -000001a0 00001e1c R_ARM_CALL 00000000 fftw_md5puts │ │ │ │ │ -000001bc 00001f1c R_ARM_CALL 00000000 fftw_md5int │ │ │ │ │ -000001c8 0000201c R_ARM_CALL 00000000 fftw_mpi_dtensor_md5 │ │ │ │ │ -000001d4 0000211c R_ARM_CALL 00000000 fftw_md5INT │ │ │ │ │ +00000010 0000151c R_ARM_CALL 00000000 fftw_mpi_dtensor_destroy │ │ │ │ │ +00000018 0000161c R_ARM_CALL 00000000 MPI_Comm_free │ │ │ │ │ +0000002c 0000171d R_ARM_JUMP24 00000000 fftw_ifree │ │ │ │ │ +0000005c 0000181c R_ARM_CALL 00000000 fftw_ialignment_of │ │ │ │ │ +0000006c 0000181c R_ARM_CALL 00000000 fftw_ialignment_of │ │ │ │ │ +00000098 0000191c R_ARM_CALL 00000000 fftw_mpi_dtensor_print │ │ │ │ │ +00000114 00001a1c R_ARM_CALL 00000000 MPI_Comm_size │ │ │ │ │ +00000148 00000403 R_ARM_REL32 00000000 .LC0 │ │ │ │ │ +0000014c 00000503 R_ARM_REL32 00000014 .LC1 │ │ │ │ │ +00000150 00000603 R_ARM_REL32 00000018 .LC2 │ │ │ │ │ +00000154 00000703 R_ARM_REL32 00000020 .LC3 │ │ │ │ │ +00000178 00001b1c R_ARM_CALL 00000000 MPI_Comm_rank │ │ │ │ │ +0000018c 00001c1c R_ARM_CALL 00000000 fftw_mpi_total_block │ │ │ │ │ +000001a8 00001d1c R_ARM_CALL 00000000 memset │ │ │ │ │ +000001e0 00001e1c R_ARM_CALL 00000000 fftw_md5puts │ │ │ │ │ 000001fc 00001f1c R_ARM_CALL 00000000 fftw_md5int │ │ │ │ │ -00000224 00001f1c R_ARM_CALL 00000000 fftw_md5int │ │ │ │ │ -00000230 00001a1c R_ARM_CALL 00000000 MPI_Comm_size │ │ │ │ │ +00000208 0000201c R_ARM_CALL 00000000 fftw_mpi_dtensor_md5 │ │ │ │ │ +00000214 0000211c R_ARM_CALL 00000000 fftw_md5INT │ │ │ │ │ 0000023c 00001f1c R_ARM_CALL 00000000 fftw_md5int │ │ │ │ │ -00000248 00000c03 R_ARM_REL32 00000028 .LC4 │ │ │ │ │ -0000027c 00001a1c R_ARM_CALL 00000000 MPI_Comm_size │ │ │ │ │ -00000298 0000231c R_ARM_CALL 00000000 fftw_mkproblem │ │ │ │ │ -000002a8 0000241c R_ARM_CALL 00000000 fftw_mpi_dtensor_canonical │ │ │ │ │ -00000358 0000251c R_ARM_CALL 00000000 MPI_Comm_dup │ │ │ │ │ -000003cc 00001203 R_ARM_REL32 00000000 .data.rel.ro.local │ │ │ │ │ -000003f4 0000221c R_ARM_CALL 0000024c fftw_mpi_mkproblem_rdft │ │ │ │ │ -00000400 0000151c R_ARM_CALL 00000000 fftw_mpi_dtensor_destroy │ │ │ │ │ +00000264 00001f1c R_ARM_CALL 00000000 fftw_md5int │ │ │ │ │ +00000270 00001a1c R_ARM_CALL 00000000 MPI_Comm_size │ │ │ │ │ +0000027c 00001f1c R_ARM_CALL 00000000 fftw_md5int │ │ │ │ │ +00000290 00000c03 R_ARM_REL32 00000028 .LC4 │ │ │ │ │ +000002d0 00001a1c R_ARM_CALL 00000000 MPI_Comm_size │ │ │ │ │ +000002ec 0000231c R_ARM_CALL 00000000 fftw_mkproblem │ │ │ │ │ +000002fc 0000241c R_ARM_CALL 00000000 fftw_mpi_dtensor_canonical │ │ │ │ │ +0000039c 0000251c R_ARM_CALL 00000000 MPI_Comm_dup │ │ │ │ │ +0000042c 00001203 R_ARM_REL32 00000000 .data.rel.ro.local │ │ │ │ │ +00000458 0000221c R_ARM_CALL 00000294 fftw_mpi_mkproblem_rdft │ │ │ │ │ +00000464 0000151c R_ARM_CALL 00000000 fftw_mpi_dtensor_destroy │ │ │ │ │ │ │ │ │ │ -Relocation section '.rel.data.rel.ro.local' at offset 0x97c contains 4 entries: │ │ │ │ │ +Relocation section '.rel.data.rel.ro.local' at offset 0x9e8 contains 4 entries: │ │ │ │ │ Offset Info Type Sym. Value Symbol's Name │ │ │ │ │ -00000004 00000d02 R_ARM_ABS32 00000184 hash │ │ │ │ │ -00000008 00000b02 R_ARM_ABS32 00000130 zero │ │ │ │ │ -0000000c 00000802 R_ARM_ABS32 00000024 print │ │ │ │ │ +00000004 00000d02 R_ARM_ABS32 000001c0 hash │ │ │ │ │ +00000008 00000b02 R_ARM_ABS32 00000158 zero │ │ │ │ │ +0000000c 00000802 R_ARM_ABS32 00000030 print │ │ │ │ │ 00000010 00000202 R_ARM_ABS32 00000000 destroy │ │ │ │ ├── objdump --line-numbers --disassemble --demangle --reloc --no-show-raw-insn --section=.text {} │ │ │ │ │ @@ -1,146 +1,162 @@ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ Disassembly of section .text: │ │ │ │ │ │ │ │ │ │ 00000000 : │ │ │ │ │ destroy(): │ │ │ │ │ - push {r4, lr} │ │ │ │ │ + str r4, [sp, #-8]! │ │ │ │ │ mov r4, r0 │ │ │ │ │ ldr r0, [r0, #4] │ │ │ │ │ + str lr, [sp, #4] │ │ │ │ │ bl 0 │ │ │ │ │ R_ARM_CALL fftw_mpi_dtensor_destroy │ │ │ │ │ add r0, r4, #24 │ │ │ │ │ bl 0 │ │ │ │ │ R_ARM_CALL MPI_Comm_free │ │ │ │ │ + ldr lr, [sp, #4] │ │ │ │ │ mov r0, r4 │ │ │ │ │ - pop {r4, lr} │ │ │ │ │ + ldr r4, [sp] │ │ │ │ │ + add sp, sp, #8 │ │ │ │ │ b 0 │ │ │ │ │ R_ARM_JUMP24 fftw_ifree │ │ │ │ │ │ │ │ │ │ -00000024 : │ │ │ │ │ +00000030 : │ │ │ │ │ print(): │ │ │ │ │ - push {r4, r5, r6, r7, r8, lr} │ │ │ │ │ + strd r4, [sp, #-24]! @ 0xffffffe8 │ │ │ │ │ mov r4, r0 │ │ │ │ │ - ldr r6, [r4, #16] │ │ │ │ │ + mov r5, r1 │ │ │ │ │ ldr r0, [r0, #12] │ │ │ │ │ + strd r6, [sp, #8] │ │ │ │ │ + ldr r6, [r4, #16] │ │ │ │ │ + str r8, [sp, #16] │ │ │ │ │ + str lr, [sp, #20] │ │ │ │ │ sub sp, sp, #16 │ │ │ │ │ - mov r5, r1 │ │ │ │ │ ldr r8, [r1] │ │ │ │ │ sub r6, r6, r0 │ │ │ │ │ bl 0 │ │ │ │ │ R_ARM_CALL fftw_ialignment_of │ │ │ │ │ - clz r6, r6 │ │ │ │ │ - lsr r6, r6, #5 │ │ │ │ │ mov r7, r0 │ │ │ │ │ ldr r0, [r4, #16] │ │ │ │ │ + clz r6, r6 │ │ │ │ │ bl 0 │ │ │ │ │ R_ARM_CALL fftw_ialignment_of │ │ │ │ │ - ldr r1, [pc, #188] @ 120 │ │ │ │ │ + ldr r1, [pc, #208] @ 148 │ │ │ │ │ + lsr r6, r6, #5 │ │ │ │ │ mov r3, r7 │ │ │ │ │ - mov r2, r6 │ │ │ │ │ - add r1, pc, r1 │ │ │ │ │ str r0, [sp] │ │ │ │ │ mov r0, r5 │ │ │ │ │ + mov r2, r6 │ │ │ │ │ + add r1, pc, r1 │ │ │ │ │ blx r8 │ │ │ │ │ ldr r0, [r4, #4] │ │ │ │ │ mov r1, r5 │ │ │ │ │ bl 0 │ │ │ │ │ R_ARM_CALL fftw_mpi_dtensor_print │ │ │ │ │ ldr r2, [r4, #4] │ │ │ │ │ mov r3, #0 │ │ │ │ │ - ldr r2, [r2] │ │ │ │ │ str r3, [sp, #12] │ │ │ │ │ + ldr r2, [r2] │ │ │ │ │ cmp r2, r3 │ │ │ │ │ - ble d8 │ │ │ │ │ - ldr r6, [pc, #128] @ 124 │ │ │ │ │ + ble f0 │ │ │ │ │ + ldr r6, [pc, #144] @ 14c │ │ │ │ │ add r6, pc, r6 │ │ │ │ │ add r3, r4, r3, lsl #2 │ │ │ │ │ - ldr r2, [r3, #28] │ │ │ │ │ mov r1, r6 │ │ │ │ │ - ldr r3, [r5] │ │ │ │ │ mov r0, r5 │ │ │ │ │ + ldr r2, [r3, #28] │ │ │ │ │ + ldr r3, [r5] │ │ │ │ │ blx r3 │ │ │ │ │ ldr r2, [r4, #4] │ │ │ │ │ ldr r3, [sp, #12] │ │ │ │ │ ldr r2, [r2] │ │ │ │ │ add r3, r3, #1 │ │ │ │ │ - cmp r3, r2 │ │ │ │ │ str r3, [sp, #12] │ │ │ │ │ - blt a4 │ │ │ │ │ - ldr r1, [pc, #72] @ 128 │ │ │ │ │ - ldr r3, [r4, #20] │ │ │ │ │ - ldr r2, [r4, #8] │ │ │ │ │ + cmp r3, r2 │ │ │ │ │ + blt bc │ │ │ │ │ + ldr r1, [pc, #88] @ 150 │ │ │ │ │ mov r0, r5 │ │ │ │ │ ldr r6, [r5] │ │ │ │ │ + ldr r2, [r4, #8] │ │ │ │ │ add r1, pc, r1 │ │ │ │ │ + ldr r3, [r4, #20] │ │ │ │ │ blx r6 │ │ │ │ │ - add r1, sp, #12 │ │ │ │ │ ldr r0, [r4, #24] │ │ │ │ │ + add r1, sp, #12 │ │ │ │ │ bl 0 │ │ │ │ │ R_ARM_CALL MPI_Comm_size │ │ │ │ │ - ldr r1, [pc, #36] @ 12c │ │ │ │ │ + ldr r1, [pc, #52] @ 154 │ │ │ │ │ + mov r0, r5 │ │ │ │ │ ldr r3, [r5] │ │ │ │ │ ldr r2, [sp, #12] │ │ │ │ │ add r1, pc, r1 │ │ │ │ │ - mov r0, r5 │ │ │ │ │ blx r3 │ │ │ │ │ add sp, sp, #16 │ │ │ │ │ - pop {r4, r5, r6, r7, r8, pc} │ │ │ │ │ - .word 0x000000b0 │ │ │ │ │ + ldrd r4, [sp] │ │ │ │ │ + ldrd r6, [sp, #8] │ │ │ │ │ + ldr r8, [sp, #16] │ │ │ │ │ + add sp, sp, #20 │ │ │ │ │ + pop {pc} @ (ldr pc, [sp], #4) │ │ │ │ │ + .word 0x000000b8 │ │ │ │ │ R_ARM_REL32 .LC0 │ │ │ │ │ - .word 0x0000007c │ │ │ │ │ + .word 0x0000008c │ │ │ │ │ R_ARM_REL32 .LC1 │ │ │ │ │ - .word 0x00000034 │ │ │ │ │ + .word 0x00000048 │ │ │ │ │ R_ARM_REL32 .LC2 │ │ │ │ │ - .word 0x00000018 │ │ │ │ │ + .word 0x00000024 │ │ │ │ │ R_ARM_REL32 .LC3 │ │ │ │ │ │ │ │ │ │ -00000130 : │ │ │ │ │ +00000158 : │ │ │ │ │ zero(): │ │ │ │ │ - push {r4, r5, r6, lr} │ │ │ │ │ - sub sp, sp, #8 │ │ │ │ │ + strd r4, [sp, #-16]! │ │ │ │ │ mov r4, r0 │ │ │ │ │ + str r6, [sp, #8] │ │ │ │ │ + str lr, [sp, #12] │ │ │ │ │ + sub sp, sp, #8 │ │ │ │ │ ldr r6, [r0, #12] │ │ │ │ │ add r1, sp, #4 │ │ │ │ │ ldr r0, [r0, #24] │ │ │ │ │ bl 0 │ │ │ │ │ R_ARM_CALL MPI_Comm_rank │ │ │ │ │ ldr r2, [sp, #4] │ │ │ │ │ - ldr r0, [r4, #4] │ │ │ │ │ mov r1, #0 │ │ │ │ │ ldr r5, [r4, #8] │ │ │ │ │ + ldr r0, [r4, #4] │ │ │ │ │ bl 0 │ │ │ │ │ R_ARM_CALL fftw_mpi_total_block │ │ │ │ │ mul r0, r5, r0 │ │ │ │ │ cmp r0, #0 │ │ │ │ │ - ble 17c │ │ │ │ │ + ble 1ac │ │ │ │ │ lsl r2, r0, #3 │ │ │ │ │ mov r1, #0 │ │ │ │ │ mov r0, r6 │ │ │ │ │ bl 0 │ │ │ │ │ R_ARM_CALL memset │ │ │ │ │ add sp, sp, #8 │ │ │ │ │ - pop {r4, r5, r6, pc} │ │ │ │ │ + ldrd r4, [sp] │ │ │ │ │ + ldr r6, [sp, #8] │ │ │ │ │ + add sp, sp, #12 │ │ │ │ │ + pop {pc} @ (ldr pc, [sp], #4) │ │ │ │ │ │ │ │ │ │ -00000184 : │ │ │ │ │ +000001c0 : │ │ │ │ │ hash(): │ │ │ │ │ - push {r4, r5, lr} │ │ │ │ │ + strd r4, [sp, #-12]! │ │ │ │ │ mov r5, r1 │ │ │ │ │ - ldr r1, [pc, #180] @ 248 │ │ │ │ │ mov r4, r0 │ │ │ │ │ + ldr r1, [pc, #188] @ 290 │ │ │ │ │ + mov r0, r5 │ │ │ │ │ + str lr, [sp, #8] │ │ │ │ │ sub sp, sp, #12 │ │ │ │ │ add r1, pc, r1 │ │ │ │ │ - mov r0, r5 │ │ │ │ │ bl 0 │ │ │ │ │ R_ARM_CALL fftw_md5puts │ │ │ │ │ - ldr r3, [r4, #16] │ │ │ │ │ ldr r1, [r4, #12] │ │ │ │ │ mov r0, r5 │ │ │ │ │ + ldr r3, [r4, #16] │ │ │ │ │ sub r1, r1, r3 │ │ │ │ │ clz r1, r1 │ │ │ │ │ lsr r1, r1, #5 │ │ │ │ │ bl 0 │ │ │ │ │ R_ARM_CALL fftw_md5int │ │ │ │ │ ldr r1, [r4, #4] │ │ │ │ │ mov r0, r5 │ │ │ │ │ @@ -148,165 +164,176 @@ │ │ │ │ │ R_ARM_CALL fftw_mpi_dtensor_md5 │ │ │ │ │ ldr r1, [r4, #8] │ │ │ │ │ mov r0, r5 │ │ │ │ │ bl 0 │ │ │ │ │ R_ARM_CALL fftw_md5INT │ │ │ │ │ ldr r2, [r4, #4] │ │ │ │ │ mov r3, #0 │ │ │ │ │ - ldr r2, [r2] │ │ │ │ │ str r3, [sp, #4] │ │ │ │ │ + ldr r2, [r2] │ │ │ │ │ cmp r2, r3 │ │ │ │ │ - ble 21c │ │ │ │ │ + ble 25c │ │ │ │ │ add r3, r4, r3, lsl #2 │ │ │ │ │ - ldr r1, [r3, #28] │ │ │ │ │ mov r0, r5 │ │ │ │ │ + ldr r1, [r3, #28] │ │ │ │ │ bl 0 │ │ │ │ │ R_ARM_CALL fftw_md5int │ │ │ │ │ ldr r2, [r4, #4] │ │ │ │ │ ldr r3, [sp, #4] │ │ │ │ │ ldr r2, [r2] │ │ │ │ │ add r3, r3, #1 │ │ │ │ │ - cmp r3, r2 │ │ │ │ │ str r3, [sp, #4] │ │ │ │ │ - blt 1f0 │ │ │ │ │ + cmp r3, r2 │ │ │ │ │ + blt 230 │ │ │ │ │ ldr r1, [r4, #20] │ │ │ │ │ mov r0, r5 │ │ │ │ │ bl 0 │ │ │ │ │ R_ARM_CALL fftw_md5int │ │ │ │ │ - add r1, sp, #4 │ │ │ │ │ ldr r0, [r4, #24] │ │ │ │ │ + add r1, sp, #4 │ │ │ │ │ bl 0 │ │ │ │ │ R_ARM_CALL MPI_Comm_size │ │ │ │ │ ldr r1, [sp, #4] │ │ │ │ │ mov r0, r5 │ │ │ │ │ bl 0 │ │ │ │ │ R_ARM_CALL fftw_md5int │ │ │ │ │ add sp, sp, #12 │ │ │ │ │ - pop {r4, r5, pc} │ │ │ │ │ - .word 0x000000a8 │ │ │ │ │ + ldrd r4, [sp] │ │ │ │ │ + add sp, sp, #8 │ │ │ │ │ + pop {pc} @ (ldr pc, [sp], #4) │ │ │ │ │ + .word 0x000000ac │ │ │ │ │ R_ARM_REL32 .LC4 │ │ │ │ │ │ │ │ │ │ -0000024c : │ │ │ │ │ +00000294 : │ │ │ │ │ fftw_mpi_mkproblem_rdft(): │ │ │ │ │ - push {r4, r5, r6, r7, r8, r9, sl, fp, lr} │ │ │ │ │ - sub sp, sp, #20 │ │ │ │ │ - ldr r9, [sp, #56] @ 0x38 │ │ │ │ │ - ldr r4, [r0] │ │ │ │ │ + strd r4, [sp, #-36]! @ 0xffffffdc │ │ │ │ │ + mov r5, r2 │ │ │ │ │ + mov r4, r3 │ │ │ │ │ + strd r6, [sp, #8] │ │ │ │ │ + strd r8, [sp, #16] │ │ │ │ │ + strd sl, [sp, #24] │ │ │ │ │ mov fp, r0 │ │ │ │ │ mov sl, r1 │ │ │ │ │ - mov r0, r9 │ │ │ │ │ + str lr, [sp, #32] │ │ │ │ │ + sub sp, sp, #20 │ │ │ │ │ + ldrd r8, [sp, #56] @ 0x38 │ │ │ │ │ mov r1, sp │ │ │ │ │ - mov r7, r2 │ │ │ │ │ - mov r6, r3 │ │ │ │ │ - ldr r5, [sp, #60] @ 0x3c │ │ │ │ │ - ldr r8, [sp, #64] @ 0x40 │ │ │ │ │ + ldr r6, [r0] │ │ │ │ │ + ldr r7, [sp, #64] @ 0x40 │ │ │ │ │ + mov r0, r8 │ │ │ │ │ bl 0 │ │ │ │ │ R_ARM_CALL MPI_Comm_size │ │ │ │ │ - cmp r4, #0 │ │ │ │ │ - ldr r1, [pc, #320] @ 3cc │ │ │ │ │ - addgt r0, r4, #7 │ │ │ │ │ + ldr r1, [pc, #336] @ 42c │ │ │ │ │ + cmp r6, #0 │ │ │ │ │ + addgt r0, r6, #7 │ │ │ │ │ movle r0, #32 │ │ │ │ │ - add r1, pc, r1 │ │ │ │ │ lslgt r0, r0, #2 │ │ │ │ │ + add r1, pc, r1 │ │ │ │ │ bl 0 │ │ │ │ │ R_ARM_CALL fftw_mkproblem │ │ │ │ │ + mov r6, r0 │ │ │ │ │ mov r1, #0 │ │ │ │ │ - mov r4, r0 │ │ │ │ │ mov r0, fp │ │ │ │ │ bl 0 │ │ │ │ │ R_ARM_CALL fftw_mpi_dtensor_canonical │ │ │ │ │ - str sl, [r4, #8] │ │ │ │ │ - str r7, [r4, #12] │ │ │ │ │ - str r6, [r4, #16] │ │ │ │ │ - mov ip, r0 │ │ │ │ │ - str r0, [r4, #4] │ │ │ │ │ - ldr r0, [r0] │ │ │ │ │ - cmp r0, #0 │ │ │ │ │ - addle lr, r4, #24 │ │ │ │ │ - ble 34c │ │ │ │ │ - sub r3, r0, #1 │ │ │ │ │ + ldr ip, [r0] │ │ │ │ │ + stmib r6, {r0, sl} │ │ │ │ │ + str r5, [r6, #12] │ │ │ │ │ + str r4, [r6, #16] │ │ │ │ │ + cmp ip, #0 │ │ │ │ │ + addle r1, r6, #24 │ │ │ │ │ + ble 394 │ │ │ │ │ + sub r3, ip, #1 │ │ │ │ │ cmp r3, #8 │ │ │ │ │ - bls 3a8 │ │ │ │ │ - add r3, r4, #28 │ │ │ │ │ - orr r1, r5, r3 │ │ │ │ │ - add r2, r5, #4 │ │ │ │ │ - subs r2, r3, r2 │ │ │ │ │ + bls 408 │ │ │ │ │ + add r2, r6, #28 │ │ │ │ │ + add r3, r9, #4 │ │ │ │ │ + orr r1, r9, r2 │ │ │ │ │ + subs r3, r2, r3 │ │ │ │ │ and r1, r1, #7 │ │ │ │ │ - movne r2, #1 │ │ │ │ │ + movne r3, #1 │ │ │ │ │ cmp r1, #0 │ │ │ │ │ - movne r2, #0 │ │ │ │ │ - cmp r2, #0 │ │ │ │ │ - beq 3a8 │ │ │ │ │ - lsr r1, r0, #1 │ │ │ │ │ - add r1, r4, r1, lsl #3 │ │ │ │ │ - sub r2, r5, #8 │ │ │ │ │ - add r1, r1, #28 │ │ │ │ │ - ldrd r6, [r2, #8]! │ │ │ │ │ - strd r6, [r3], #8 │ │ │ │ │ + movne r3, #0 │ │ │ │ │ + cmp r3, #0 │ │ │ │ │ + beq 408 │ │ │ │ │ + lsr r1, ip, #1 │ │ │ │ │ + mov r3, r9 │ │ │ │ │ + add r1, r9, r1, lsl #3 │ │ │ │ │ + ldrd r4, [r3], #8 │ │ │ │ │ cmp r3, r1 │ │ │ │ │ - bne 314 │ │ │ │ │ - bic r3, r0, #1 │ │ │ │ │ - cmp r0, r3 │ │ │ │ │ - ldrne r2, [r5, r3, lsl #2] │ │ │ │ │ - add lr, r4, #24 │ │ │ │ │ - addne r3, r4, r3, lsl #2 │ │ │ │ │ + strd r4, [r2], #8 │ │ │ │ │ + bne 35c │ │ │ │ │ + bic r3, ip, #1 │ │ │ │ │ + add r1, r6, #24 │ │ │ │ │ + cmp ip, r3 │ │ │ │ │ + ldrne r2, [r9, r3, lsl #2] │ │ │ │ │ + addne r3, r6, r3, lsl #2 │ │ │ │ │ strne r2, [r3, #28] │ │ │ │ │ - subs r0, r0, #1 │ │ │ │ │ - movne r0, #1 │ │ │ │ │ - ands r0, r0, r8, lsr #2 │ │ │ │ │ - bne 368 │ │ │ │ │ - mov r1, lr │ │ │ │ │ - mov r0, r9 │ │ │ │ │ - str r8, [r4, #20] │ │ │ │ │ + subs ip, ip, #1 │ │ │ │ │ + movne ip, #1 │ │ │ │ │ + ands ip, ip, r7, lsr #2 │ │ │ │ │ + bne 3c0 │ │ │ │ │ + mov r0, r8 │ │ │ │ │ + str r7, [r6, #20] │ │ │ │ │ bl 0 │ │ │ │ │ R_ARM_CALL MPI_Comm_dup │ │ │ │ │ - mov r0, r4 │ │ │ │ │ + mov r0, r6 │ │ │ │ │ add sp, sp, #20 │ │ │ │ │ - pop {r4, r5, r6, r7, r8, r9, sl, fp, pc} │ │ │ │ │ - add r5, ip, #4 │ │ │ │ │ - ldm r5, {r0, r1, r2} │ │ │ │ │ - add r3, sp, #4 │ │ │ │ │ - add ip, ip, #16 │ │ │ │ │ - stm r3, {r0, r1, r2} │ │ │ │ │ - ldm ip, {r0, r1, r2} │ │ │ │ │ - ldr r6, [r4, #28] │ │ │ │ │ - stm r5, {r0, r1, r2} │ │ │ │ │ - ldm r3, {r0, r1, r2} │ │ │ │ │ - bic r8, r8, #4 │ │ │ │ │ - ldr r3, [r4, #32] │ │ │ │ │ - stm ip, {r0, r1, r2} │ │ │ │ │ - eor r8, r8, #8 │ │ │ │ │ - str r3, [r4, #28] │ │ │ │ │ - str r6, [r4, #32] │ │ │ │ │ - b 34c │ │ │ │ │ - sub r5, r5, #4 │ │ │ │ │ - add lr, r4, #24 │ │ │ │ │ - mov r3, lr │ │ │ │ │ - add r1, r5, r0, lsl #2 │ │ │ │ │ - ldr r2, [r5, #4]! │ │ │ │ │ - str r2, [r3, #4]! │ │ │ │ │ - cmp r1, r5 │ │ │ │ │ - bne 3b8 │ │ │ │ │ - b 33c │ │ │ │ │ - .word 0x00000134 │ │ │ │ │ + ldrd r4, [sp] │ │ │ │ │ + ldrd r6, [sp, #8] │ │ │ │ │ + ldrd r8, [sp, #16] │ │ │ │ │ + ldrd sl, [sp, #24] │ │ │ │ │ + add sp, sp, #32 │ │ │ │ │ + pop {pc} @ (ldr pc, [sp], #4) │ │ │ │ │ + ldrd r2, [r0, #4] │ │ │ │ │ + bic r7, r7, #4 │ │ │ │ │ + eor r7, r7, #8 │ │ │ │ │ + ldr r4, [r6, #28] │ │ │ │ │ + ldr lr, [r0, #12] │ │ │ │ │ + strd r2, [sp, #4] │ │ │ │ │ + ldrd r2, [r0, #16] │ │ │ │ │ + str lr, [sp, #12] │ │ │ │ │ + strd r2, [r0, #4] │ │ │ │ │ + ldr r3, [r0, #24] │ │ │ │ │ + str r3, [r0, #12] │ │ │ │ │ + ldrd r2, [sp, #4] │ │ │ │ │ + str lr, [r0, #24] │ │ │ │ │ + strd r2, [r0, #16] │ │ │ │ │ + ldr r3, [r6, #32] │ │ │ │ │ + str r3, [r6, #28] │ │ │ │ │ + str r4, [r6, #32] │ │ │ │ │ + b 394 │ │ │ │ │ + add r1, r6, #24 │ │ │ │ │ + add r4, r9, ip, lsl #2 │ │ │ │ │ + mov r3, r9 │ │ │ │ │ + mov r2, r1 │ │ │ │ │ + ldr lr, [r3], #4 │ │ │ │ │ + cmp r3, r4 │ │ │ │ │ + str lr, [r2, #4]! │ │ │ │ │ + bne 418 │ │ │ │ │ + b 384 │ │ │ │ │ + .word 0x0000013c │ │ │ │ │ R_ARM_REL32 .data.rel.ro.local │ │ │ │ │ │ │ │ │ │ -000003d0 : │ │ │ │ │ +00000430 : │ │ │ │ │ fftw_mpi_mkproblem_rdft_d(): │ │ │ │ │ - push {r4, r5, lr} │ │ │ │ │ + strd r4, [sp, #-12]! │ │ │ │ │ + mov r5, r0 │ │ │ │ │ + str lr, [sp, #8] │ │ │ │ │ sub sp, sp, #20 │ │ │ │ │ ldr ip, [sp, #40] @ 0x28 │ │ │ │ │ str ip, [sp, #8] │ │ │ │ │ ldr ip, [sp, #36] @ 0x24 │ │ │ │ │ str ip, [sp, #4] │ │ │ │ │ ldr ip, [sp, #32] │ │ │ │ │ str ip, [sp] │ │ │ │ │ - mov r5, r0 │ │ │ │ │ - bl 24c │ │ │ │ │ + bl 294 │ │ │ │ │ R_ARM_CALL fftw_mpi_mkproblem_rdft │ │ │ │ │ mov r4, r0 │ │ │ │ │ mov r0, r5 │ │ │ │ │ bl 0 │ │ │ │ │ R_ARM_CALL fftw_mpi_dtensor_destroy │ │ │ │ │ mov r0, r4 │ │ │ │ │ add sp, sp, #20 │ │ │ │ │ - pop {r4, r5, pc} │ │ │ │ │ + ldrd r4, [sp] │ │ │ │ │ + add sp, sp, #8 │ │ │ │ │ + pop {pc} @ (ldr pc, [sp], #4) │ │ │ ├── rdft-solve.o │ │ │ │ ├── objdump --line-numbers --disassemble --demangle --reloc --no-show-raw-insn --section=.text {} │ │ │ │ │ @@ -2,10 +2,10 @@ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ Disassembly of section .text: │ │ │ │ │ │ │ │ │ │ 00000000 : │ │ │ │ │ fftw_mpi_rdft_solve(): │ │ │ │ │ ldr r2, [r1, #16] │ │ │ │ │ - ldr r3, [r0, #56] @ 0x38 │ │ │ │ │ ldr r1, [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: 2432 (bytes into file) │ │ │ │ │ + Start of section headers: 2520 (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 0x980: │ │ │ │ │ +There are 15 section headers, starting at offset 0x9d8: │ │ │ │ │ │ │ │ │ │ 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 0003a4 00 AX 0 0 4 │ │ │ │ │ - [ 2] .rel.text REL 00000000 000828 0000a8 08 I 12 1 4 │ │ │ │ │ - [ 3] .data PROGBITS 00000000 0003d8 000000 00 WA 0 0 1 │ │ │ │ │ - [ 4] .bss NOBITS 00000000 0003d8 000000 00 WA 0 0 1 │ │ │ │ │ - [ 5] .rodata.str1.4 PROGBITS 00000000 0003d8 00001a 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 0008d0 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 0008f0 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 00002b 00 0 0 1 │ │ │ │ │ - [12] .symtab SYMTAB 00000000 00043c 000260 10 13 21 4 │ │ │ │ │ - [13] .strtab STRTAB 00000000 00069c 00018b 00 0 0 1 │ │ │ │ │ - [14] .shstrtab STRTAB 00000000 0008f8 000087 00 0 0 1 │ │ │ │ │ + [ 1] .text PROGBITS 00000000 000034 0003fc 00 AX 0 0 4 │ │ │ │ │ + [ 2] .rel.text REL 00000000 000880 0000a8 08 I 12 1 4 │ │ │ │ │ + [ 3] .data PROGBITS 00000000 000430 000000 00 WA 0 0 1 │ │ │ │ │ + [ 4] .bss NOBITS 00000000 000430 000000 00 WA 0 0 1 │ │ │ │ │ + [ 5] .rodata.str1.4 PROGBITS 00000000 000430 00001a 01 AMS 0 0 4 │ │ │ │ │ + [ 6] .data.rel.ro PROGBITS 00000000 00044a 000010 00 WA 0 0 4 │ │ │ │ │ + [ 7] .rel.data.rel.ro REL 00000000 000928 000020 08 I 12 6 4 │ │ │ │ │ + [ 8] .data.rel.ro.local PROGBITS 00000000 00045a 00000c 00 WA 0 0 4 │ │ │ │ │ + [ 9] .rel.data.rel.ro.local REL 00000000 000948 000008 08 I 12 8 4 │ │ │ │ │ + [10] .note.GNU-stack PROGBITS 00000000 000466 000000 00 0 0 1 │ │ │ │ │ + [11] .ARM.attributes ARM_ATTRIBUTES 00000000 000466 00002b 00 0 0 1 │ │ │ │ │ + [12] .symtab SYMTAB 00000000 000494 000260 10 13 21 4 │ │ │ │ │ + [13] .strtab STRTAB 00000000 0006f4 00018b 00 0 0 1 │ │ │ │ │ + [14] .shstrtab STRTAB 00000000 000950 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: 00000000 0 NOTYPE LOCAL DEFAULT 1 $a │ │ │ │ │ - 2: 00000000 52 FUNC LOCAL DEFAULT 1 apply_r2c │ │ │ │ │ - 3: 00000034 56 FUNC LOCAL DEFAULT 1 apply_c2r │ │ │ │ │ + 2: 00000000 64 FUNC LOCAL DEFAULT 1 apply_r2c │ │ │ │ │ + 3: 00000040 68 FUNC LOCAL DEFAULT 1 apply_c2r │ │ │ │ │ 4: 00000000 0 NOTYPE LOCAL DEFAULT 5 $d │ │ │ │ │ 5: 00000000 0 NOTYPE LOCAL DEFAULT 5 .LC0 │ │ │ │ │ - 6: 0000006c 32 FUNC LOCAL DEFAULT 1 print │ │ │ │ │ - 7: 00000088 0 NOTYPE LOCAL DEFAULT 1 $d │ │ │ │ │ - 8: 0000008c 0 NOTYPE LOCAL DEFAULT 1 $a │ │ │ │ │ - 9: 0000008c 8 FUNC LOCAL DEFAULT 1 destroy │ │ │ │ │ - 10: 00000094 8 FUNC LOCAL DEFAULT 1 awake │ │ │ │ │ - 11: 0000009c 644 FUNC LOCAL DEFAULT 1 mkplan │ │ │ │ │ - 12: 00000314 0 NOTYPE LOCAL DEFAULT 1 $d │ │ │ │ │ - 13: 00000320 0 NOTYPE LOCAL DEFAULT 1 $a │ │ │ │ │ - 14: 000003a0 0 NOTYPE LOCAL DEFAULT 1 $d │ │ │ │ │ + 6: 00000084 32 FUNC LOCAL DEFAULT 1 print │ │ │ │ │ + 7: 000000a0 0 NOTYPE LOCAL DEFAULT 1 $d │ │ │ │ │ + 8: 000000a4 0 NOTYPE LOCAL DEFAULT 1 $a │ │ │ │ │ + 9: 000000a4 8 FUNC LOCAL DEFAULT 1 destroy │ │ │ │ │ + 10: 000000ac 8 FUNC LOCAL DEFAULT 1 awake │ │ │ │ │ + 11: 000000b4 684 FUNC LOCAL DEFAULT 1 mkplan │ │ │ │ │ + 12: 00000354 0 NOTYPE LOCAL DEFAULT 1 $d │ │ │ │ │ + 13: 00000360 0 NOTYPE LOCAL DEFAULT 1 $a │ │ │ │ │ + 14: 000003f8 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_mkproblem_rdft2_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_0d │ │ │ │ │ - 33: 00000320 88 FUNC GLOBAL DEFAULT 1 fftw_mpi_rdft2_serial_applicable │ │ │ │ │ - 34: 00000378 44 FUNC GLOBAL DEFAULT 1 fftw_mpi_rdft2_serial_register │ │ │ │ │ + 33: 00000360 100 FUNC GLOBAL DEFAULT 1 fftw_mpi_rdft2_serial_applicable │ │ │ │ │ + 34: 000003c4 56 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,35 +1,35 @@ │ │ │ │ │ │ │ │ │ │ -Relocation section '.rel.text' at offset 0x828 contains 21 entries: │ │ │ │ │ +Relocation section '.rel.text' at offset 0x880 contains 21 entries: │ │ │ │ │ Offset Info Type Sym. Value Symbol's Name │ │ │ │ │ -00000088 00000503 R_ARM_REL32 00000000 .LC0 │ │ │ │ │ -00000090 0000151d R_ARM_JUMP24 00000000 fftw_plan_destroy_internal │ │ │ │ │ -00000098 0000161d R_ARM_JUMP24 00000000 fftw_plan_awake │ │ │ │ │ -000000c8 0000171c R_ARM_CALL 00000000 fftw_mpi_is_local │ │ │ │ │ -00000118 0000181c R_ARM_CALL 00000000 MPI_Comm_rank │ │ │ │ │ -00000164 0000191c R_ARM_CALL 00000000 fftw_mktensor │ │ │ │ │ -00000208 00001a1c R_ARM_CALL 00000000 fftw_mktensor_1d │ │ │ │ │ -00000228 00001b1c R_ARM_CALL 00000000 fftw_mkproblem_rdft2_d │ │ │ │ │ -00000234 00001c1c R_ARM_CALL 00000000 fftw_mkplan_d │ │ │ │ │ -00000248 00001d1c R_ARM_CALL 00000000 fftw_mpi_any_true │ │ │ │ │ -00000274 00001e1c R_ARM_CALL 00000000 fftw_mkplan_rdft │ │ │ │ │ -00000290 00001f1c R_ARM_CALL 00000000 fftw_ops_cpy │ │ │ │ │ -000002a0 0000201c R_ARM_CALL 00000000 fftw_mktensor_0d │ │ │ │ │ -000002b4 00001a1c R_ARM_CALL 00000000 fftw_mktensor_1d │ │ │ │ │ -00000300 0000171c R_ARM_CALL 00000000 fftw_mpi_is_local │ │ │ │ │ -00000318 00000f03 R_ARM_REL32 00000000 .data.rel.ro │ │ │ │ │ +000000a0 00000503 R_ARM_REL32 00000000 .LC0 │ │ │ │ │ +000000a8 0000151d R_ARM_JUMP24 00000000 fftw_plan_destroy_internal │ │ │ │ │ +000000b0 0000161d R_ARM_JUMP24 00000000 fftw_plan_awake │ │ │ │ │ +00000104 0000171c R_ARM_CALL 00000000 fftw_mpi_is_local │ │ │ │ │ +00000148 0000181c R_ARM_CALL 00000000 MPI_Comm_rank │ │ │ │ │ +00000198 0000191c R_ARM_CALL 00000000 fftw_mktensor │ │ │ │ │ +00000230 00001a1c R_ARM_CALL 00000000 fftw_mktensor_1d │ │ │ │ │ +00000250 00001b1c R_ARM_CALL 00000000 fftw_mkproblem_rdft2_d │ │ │ │ │ +0000025c 00001c1c R_ARM_CALL 00000000 fftw_mkplan_d │ │ │ │ │ +00000270 00001d1c R_ARM_CALL 00000000 fftw_mpi_any_true │ │ │ │ │ +0000029c 00001e1c R_ARM_CALL 00000000 fftw_mkplan_rdft │ │ │ │ │ +000002b8 00001f1c R_ARM_CALL 00000000 fftw_ops_cpy │ │ │ │ │ +000002c4 0000201c R_ARM_CALL 00000000 fftw_mktensor_0d │ │ │ │ │ +000002d8 00001a1c R_ARM_CALL 00000000 fftw_mktensor_1d │ │ │ │ │ 00000340 0000171c R_ARM_CALL 00000000 fftw_mpi_is_local │ │ │ │ │ -00000364 0000171c R_ARM_CALL 00000000 fftw_mpi_is_local │ │ │ │ │ -0000038c 0000231c R_ARM_CALL 00000000 fftw_mksolver │ │ │ │ │ -0000039c 0000241d R_ARM_JUMP24 00000000 fftw_solver_register │ │ │ │ │ -000003a0 00001203 R_ARM_REL32 00000000 .data.rel.ro.local │ │ │ │ │ +00000358 00000f03 R_ARM_REL32 00000000 .data.rel.ro │ │ │ │ │ +00000384 0000171c R_ARM_CALL 00000000 fftw_mpi_is_local │ │ │ │ │ +000003b0 0000171c R_ARM_CALL 00000000 fftw_mpi_is_local │ │ │ │ │ +000003dc 0000231c R_ARM_CALL 00000000 fftw_mksolver │ │ │ │ │ +000003f4 0000241d R_ARM_JUMP24 00000000 fftw_solver_register │ │ │ │ │ +000003f8 00001203 R_ARM_REL32 00000000 .data.rel.ro.local │ │ │ │ │ │ │ │ │ │ -Relocation section '.rel.data.rel.ro' at offset 0x8d0 contains 4 entries: │ │ │ │ │ +Relocation section '.rel.data.rel.ro' at offset 0x928 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 00000094 awake │ │ │ │ │ -00000008 00000602 R_ARM_ABS32 0000006c print │ │ │ │ │ -0000000c 00000902 R_ARM_ABS32 0000008c destroy │ │ │ │ │ +00000004 00000a02 R_ARM_ABS32 000000ac awake │ │ │ │ │ +00000008 00000602 R_ARM_ABS32 00000084 print │ │ │ │ │ +0000000c 00000902 R_ARM_ABS32 000000a4 destroy │ │ │ │ │ │ │ │ │ │ -Relocation section '.rel.data.rel.ro.local' at offset 0x8f0 contains 1 entry: │ │ │ │ │ +Relocation section '.rel.data.rel.ro.local' at offset 0x948 contains 1 entry: │ │ │ │ │ Offset Info Type Sym. Value Symbol's Name │ │ │ │ │ -00000004 00000b02 R_ARM_ABS32 0000009c mkplan │ │ │ │ │ +00000004 00000b02 R_ARM_ABS32 000000b4 mkplan │ │ │ │ ├── objdump --line-numbers --disassemble --demangle --reloc --no-show-raw-insn --section=.text {} │ │ │ │ │ @@ -2,281 +2,303 @@ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ Disassembly of section .text: │ │ │ │ │ │ │ │ │ │ 00000000 : │ │ │ │ │ apply_r2c(): │ │ │ │ │ mov ip, r0 │ │ │ │ │ - mov r3, r2 │ │ │ │ │ ldr r0, [r0, #64] @ 0x40 │ │ │ │ │ + mov r3, r2 │ │ │ │ │ + str r4, [sp, #-8]! │ │ │ │ │ ldr r2, [ip, #68] @ 0x44 │ │ │ │ │ - push {r4, lr} │ │ │ │ │ add ip, r3, #8 │ │ │ │ │ + str lr, [sp, #4] │ │ │ │ │ sub sp, sp, #8 │ │ │ │ │ str ip, [sp] │ │ │ │ │ - add r2, r1, r2, lsl #3 │ │ │ │ │ ldr r4, [r0, #56] @ 0x38 │ │ │ │ │ + add r2, r1, r2, lsl #3 │ │ │ │ │ blx r4 │ │ │ │ │ add sp, sp, #8 │ │ │ │ │ - pop {r4, pc} │ │ │ │ │ + ldr r4, [sp] │ │ │ │ │ + add sp, sp, #4 │ │ │ │ │ + pop {pc} @ (ldr pc, [sp], #4) │ │ │ │ │ │ │ │ │ │ -00000034 : │ │ │ │ │ +00000040 : │ │ │ │ │ apply_c2r(): │ │ │ │ │ mov ip, r0 │ │ │ │ │ - mov r3, r1 │ │ │ │ │ ldr r0, [r0, #64] @ 0x40 │ │ │ │ │ + mov r3, r1 │ │ │ │ │ mov r1, r2 │ │ │ │ │ + str r4, [sp, #-8]! │ │ │ │ │ ldr r2, [ip, #68] @ 0x44 │ │ │ │ │ - push {r4, lr} │ │ │ │ │ add ip, r3, #8 │ │ │ │ │ + str lr, [sp, #4] │ │ │ │ │ sub sp, sp, #8 │ │ │ │ │ str ip, [sp] │ │ │ │ │ - add r2, r1, r2, lsl #3 │ │ │ │ │ ldr r4, [r0, #56] @ 0x38 │ │ │ │ │ + add r2, r1, r2, lsl #3 │ │ │ │ │ blx r4 │ │ │ │ │ add sp, sp, #8 │ │ │ │ │ - pop {r4, pc} │ │ │ │ │ + ldr r4, [sp] │ │ │ │ │ + add sp, sp, #4 │ │ │ │ │ + pop {pc} @ (ldr pc, [sp], #4) │ │ │ │ │ │ │ │ │ │ -0000006c : │ │ │ │ │ +00000084 : │ │ │ │ │ print(): │ │ │ │ │ - mov r2, r0 │ │ │ │ │ ldr r3, [r1] │ │ │ │ │ + mov r2, r0 │ │ │ │ │ mov r0, r1 │ │ │ │ │ - ldr r1, [pc, #8] @ 88 │ │ │ │ │ + ldr r1, [pc, #8] @ a0 │ │ │ │ │ ldr r2, [r2, #64] @ 0x40 │ │ │ │ │ add r1, pc, r1 │ │ │ │ │ bx r3 │ │ │ │ │ .word 0x00000000 │ │ │ │ │ R_ARM_REL32 .LC0 │ │ │ │ │ │ │ │ │ │ -0000008c : │ │ │ │ │ +000000a4 : │ │ │ │ │ destroy(): │ │ │ │ │ ldr r0, [r0, #64] @ 0x40 │ │ │ │ │ b 0 │ │ │ │ │ R_ARM_JUMP24 fftw_plan_destroy_internal │ │ │ │ │ │ │ │ │ │ -00000094 : │ │ │ │ │ +000000ac : │ │ │ │ │ awake(): │ │ │ │ │ ldr r0, [r0, #64] @ 0x40 │ │ │ │ │ b 0 │ │ │ │ │ R_ARM_JUMP24 fftw_plan_awake │ │ │ │ │ │ │ │ │ │ -0000009c : │ │ │ │ │ +000000b4 : │ │ │ │ │ mkplan(): │ │ │ │ │ - push {r4, r5, r6, r7, r8, r9, sl, fp, lr} │ │ │ │ │ + strd r4, [sp, #-36]! @ 0xffffffdc │ │ │ │ │ mov r4, r1 │ │ │ │ │ ldr r1, [r1, #24] │ │ │ │ │ - sub sp, sp, #52 @ 0x34 │ │ │ │ │ + strd r6, [sp, #8] │ │ │ │ │ + strd r8, [sp, #16] │ │ │ │ │ + strd sl, [sp, #24] │ │ │ │ │ + str lr, [sp, #32] │ │ │ │ │ + sub sp, sp, #44 @ 0x2c │ │ │ │ │ cmp r1, #0 │ │ │ │ │ - beq c0 │ │ │ │ │ + beq fc │ │ │ │ │ mov r0, #0 │ │ │ │ │ - add sp, sp, #52 @ 0x34 │ │ │ │ │ - pop {r4, r5, r6, r7, r8, r9, sl, fp, pc} │ │ │ │ │ + add sp, sp, #44 @ 0x2c │ │ │ │ │ + ldrd r4, [sp] │ │ │ │ │ + ldrd r6, [sp, #8] │ │ │ │ │ + ldrd r8, [sp, #16] │ │ │ │ │ + ldrd sl, [sp, #24] │ │ │ │ │ + add sp, sp, #32 │ │ │ │ │ + pop {pc} @ (ldr pc, [sp], #4) │ │ │ │ │ ldr r0, [r4, #4] │ │ │ │ │ - mov r6, r2 │ │ │ │ │ + mov r5, r2 │ │ │ │ │ bl 0 │ │ │ │ │ R_ARM_CALL fftw_mpi_is_local │ │ │ │ │ cmp r0, #0 │ │ │ │ │ - bne 2f8 │ │ │ │ │ - ldr r5, [r4, #8] │ │ │ │ │ - cmp r5, #0 │ │ │ │ │ - bne b4 │ │ │ │ │ - ldr r3, [r4, #20] │ │ │ │ │ - ldr r8, [r4, #12] │ │ │ │ │ + bne 338 │ │ │ │ │ + ldr r3, [r4, #8] │ │ │ │ │ cmp r3, #0 │ │ │ │ │ - ldr r7, [r4, #16] │ │ │ │ │ - movne r3, r8 │ │ │ │ │ - lsl r5, r5, #3 │ │ │ │ │ + bne dc │ │ │ │ │ + ldr r7, [r4, #12] │ │ │ │ │ + lsl r3, r3, #3 │ │ │ │ │ + ldr r2, [r4, #20] │ │ │ │ │ + ldr r6, [r4, #16] │ │ │ │ │ + cmp r2, #0 │ │ │ │ │ + bne 2fc │ │ │ │ │ + add r3, r7, r3 │ │ │ │ │ + add r8, r6, #8 │ │ │ │ │ + str r3, [sp, #16] │ │ │ │ │ ldr r0, [r4, #28] │ │ │ │ │ - add r1, sp, #44 @ 0x2c │ │ │ │ │ - addne r5, r7, r5 │ │ │ │ │ - addne r9, r8, #8 │ │ │ │ │ - addeq r5, r8, r5 │ │ │ │ │ - movne r8, r7 │ │ │ │ │ - addeq r9, r7, #8 │ │ │ │ │ - movne r7, r3 │ │ │ │ │ + add r1, sp, #36 @ 0x24 │ │ │ │ │ bl 0 │ │ │ │ │ R_ARM_CALL MPI_Comm_rank │ │ │ │ │ - ldr r3, [sp, #44] @ 0x2c │ │ │ │ │ + ldr r3, [sp, #36] @ 0x24 │ │ │ │ │ cmp r3, #0 │ │ │ │ │ - bne 2a0 │ │ │ │ │ + bne 2c4 │ │ │ │ │ ldr r3, [r4, #8] │ │ │ │ │ cmp r3, #0 │ │ │ │ │ - ble 2a0 │ │ │ │ │ + ble 2c4 │ │ │ │ │ ldr r3, [r4, #20] │ │ │ │ │ cmp r3, #4 │ │ │ │ │ - beq 2e4 │ │ │ │ │ + beq 324 │ │ │ │ │ cmp r3, #0 │ │ │ │ │ mov r3, #1 │ │ │ │ │ - str r3, [sp, #28] │ │ │ │ │ strne r3, [sp, #24] │ │ │ │ │ - moveq r3, #2 │ │ │ │ │ - streq r3, [sp, #24] │ │ │ │ │ + str r3, [sp, #28] │ │ │ │ │ + bne 18c │ │ │ │ │ + mov r3, #2 │ │ │ │ │ + str r3, [sp, #24] │ │ │ │ │ ldr r3, [r4, #4] │ │ │ │ │ - ldr fp, [r3] │ │ │ │ │ - mov r0, fp │ │ │ │ │ + ldr sl, [r3] │ │ │ │ │ + mov r0, sl │ │ │ │ │ bl 0 │ │ │ │ │ R_ARM_CALL fftw_mktensor │ │ │ │ │ ldr r3, [r4, #8] │ │ │ │ │ - sub r1, fp, #1 │ │ │ │ │ - add r2, r1, r1, lsl #1 │ │ │ │ │ - add fp, fp, fp, lsl #1 │ │ │ │ │ + sub ip, sl, #1 │ │ │ │ │ + add sl, sl, sl, lsl #1 │ │ │ │ │ + mov r9, r0 │ │ │ │ │ + cmp ip, #0 │ │ │ │ │ + lsl lr, sl, #2 │ │ │ │ │ + add sl, r0, lr │ │ │ │ │ + lsl r1, r3, #1 │ │ │ │ │ str r3, [sp, #20] │ │ │ │ │ - lsl r3, r3, #1 │ │ │ │ │ - cmp r1, #0 │ │ │ │ │ - mov sl, r0 │ │ │ │ │ - add r0, r0, r2, lsl #2 │ │ │ │ │ - str r3, [r0, #12] │ │ │ │ │ - lsl r0, fp, #2 │ │ │ │ │ - str r0, [sp, #32] │ │ │ │ │ + add r3, ip, ip, lsl #1 │ │ │ │ │ + lsl r3, r3, #2 │ │ │ │ │ + add r2, r0, r3 │ │ │ │ │ ldr r0, [r4, #4] │ │ │ │ │ - add lr, sl, fp, lsl #2 │ │ │ │ │ - add r2, r0, r2, lsl #2 │ │ │ │ │ - ldr fp, [r2, #4] │ │ │ │ │ - str r3, [lr, #-4] │ │ │ │ │ + str r1, [r2, #12] │ │ │ │ │ + str r1, [sl, #-4] │ │ │ │ │ + add r3, r0, r3 │ │ │ │ │ + addgt r0, r0, lr │ │ │ │ │ + ldr fp, [r3, #4] │ │ │ │ │ + movgt r3, sl │ │ │ │ │ add r2, fp, fp, lsr #31 │ │ │ │ │ asr r2, r2, #1 │ │ │ │ │ add r2, r2, #1 │ │ │ │ │ - str r2, [lr, #-8] │ │ │ │ │ - ble 1f8 │ │ │ │ │ - str r3, [sp, #36] @ 0x24 │ │ │ │ │ - ldr r3, [sp, #32] │ │ │ │ │ - mov ip, lr │ │ │ │ │ - add r0, r0, r3 │ │ │ │ │ - ldr r3, [sp, #36] @ 0x24 │ │ │ │ │ - mul r3, r2, r3 │ │ │ │ │ - subs r1, r1, #1 │ │ │ │ │ - str r3, [ip, #-12] │ │ │ │ │ - str r3, [ip, #-16] │ │ │ │ │ - ldr r2, [r0, #-20] @ 0xffffffec │ │ │ │ │ - str r2, [ip, #-20] @ 0xffffffec │ │ │ │ │ + str r2, [sl, #-8] │ │ │ │ │ + ble 220 │ │ │ │ │ + mul r1, r2, r1 │ │ │ │ │ + subs ip, ip, #1 │ │ │ │ │ + sub r3, r3, #12 │ │ │ │ │ sub r0, r0, #12 │ │ │ │ │ - sub ip, ip, #12 │ │ │ │ │ - bne 1d4 │ │ │ │ │ + str r1, [r3, #-4] │ │ │ │ │ + str r1, [r3] │ │ │ │ │ + ldr r2, [r0, #-8] │ │ │ │ │ + str r2, [r3, #-8] │ │ │ │ │ + bne 1fc │ │ │ │ │ + ldr r0, [sp, #20] │ │ │ │ │ + str fp, [sl, #-8] │ │ │ │ │ ldr r2, [sp, #24] │ │ │ │ │ ldr r1, [sp, #28] │ │ │ │ │ - ldr r0, [sp, #20] │ │ │ │ │ - str fp, [lr, #-8] │ │ │ │ │ bl 0 │ │ │ │ │ R_ARM_CALL fftw_mktensor_1d │ │ │ │ │ ldr r3, [r4, #20] │ │ │ │ │ - str r3, [sp, #8] │ │ │ │ │ - mov r2, r8 │ │ │ │ │ - mov r3, r5 │ │ │ │ │ - stm sp, {r7, r9} │ │ │ │ │ mov r1, r0 │ │ │ │ │ - mov r0, sl │ │ │ │ │ + mov r2, r7 │ │ │ │ │ + mov r0, r9 │ │ │ │ │ + stm sp, {r6, r8} │ │ │ │ │ + str r3, [sp, #8] │ │ │ │ │ + ldr r3, [sp, #16] │ │ │ │ │ bl 0 │ │ │ │ │ R_ARM_CALL fftw_mkproblem_rdft2_d │ │ │ │ │ mov r1, r0 │ │ │ │ │ - mov r0, r6 │ │ │ │ │ + mov r0, r5 │ │ │ │ │ bl 0 │ │ │ │ │ R_ARM_CALL fftw_mkplan_d │ │ │ │ │ - ldr r1, [r4, #28] │ │ │ │ │ mov r6, r0 │ │ │ │ │ clz r0, r0 │ │ │ │ │ + ldr r1, [r4, #28] │ │ │ │ │ lsr r0, r0, #5 │ │ │ │ │ bl 0 │ │ │ │ │ R_ARM_CALL fftw_mpi_any_true │ │ │ │ │ cmp r0, #0 │ │ │ │ │ - bne b4 │ │ │ │ │ + bne dc │ │ │ │ │ ldr r3, [r4, #20] │ │ │ │ │ cmp r3, #0 │ │ │ │ │ - bne 2d8 │ │ │ │ │ - ldr r2, [pc, #172] @ 314 │ │ │ │ │ + bne 318 │ │ │ │ │ + ldr r2, [pc, #196] @ 354 │ │ │ │ │ add r2, pc, r2 │ │ │ │ │ - ldr r1, [pc, #168] @ 318 │ │ │ │ │ + ldr r1, [pc, #192] @ 358 │ │ │ │ │ mov r0, #72 @ 0x48 │ │ │ │ │ add r1, pc, r1 │ │ │ │ │ bl 0 │ │ │ │ │ R_ARM_CALL fftw_mkplan_rdft │ │ │ │ │ ldr r3, [r4, #8] │ │ │ │ │ mov r5, r0 │ │ │ │ │ add r1, r0, #8 │ │ │ │ │ str r6, [r0, #64] @ 0x40 │ │ │ │ │ str r3, [r0, #68] @ 0x44 │ │ │ │ │ add r0, r6, #8 │ │ │ │ │ bl 0 │ │ │ │ │ R_ARM_CALL fftw_ops_cpy │ │ │ │ │ mov r0, r5 │ │ │ │ │ - add sp, sp, #52 @ 0x34 │ │ │ │ │ - pop {r4, r5, r6, r7, r8, r9, sl, fp, pc} │ │ │ │ │ + b e0 │ │ │ │ │ bl 0 │ │ │ │ │ R_ARM_CALL fftw_mktensor_0d │ │ │ │ │ mov r2, #0 │ │ │ │ │ + mov r7, r0 │ │ │ │ │ mov r1, r2 │ │ │ │ │ - mov r5, r0 │ │ │ │ │ mov r0, r2 │ │ │ │ │ bl 0 │ │ │ │ │ R_ARM_CALL fftw_mktensor_1d │ │ │ │ │ mov r3, #4 │ │ │ │ │ - str r3, [sp, #8] │ │ │ │ │ - mov r2, r7 │ │ │ │ │ - mov r3, r9 │ │ │ │ │ - stm sp, {r7, r9} │ │ │ │ │ mov r1, r0 │ │ │ │ │ - mov r0, r5 │ │ │ │ │ - b 228 │ │ │ │ │ - ldr r2, [pc, #60] @ 31c │ │ │ │ │ + stm sp, {r6, r8} │ │ │ │ │ + mov r2, r6 │ │ │ │ │ + mov r0, r7 │ │ │ │ │ + str r3, [sp, #8] │ │ │ │ │ + mov r3, r8 │ │ │ │ │ + b 250 │ │ │ │ │ + add r3, r6, r3 │ │ │ │ │ + add r8, r7, #8 │ │ │ │ │ + str r3, [sp, #16] │ │ │ │ │ + mov r3, r7 │ │ │ │ │ + mov r7, r6 │ │ │ │ │ + mov r6, r3 │ │ │ │ │ + b 140 │ │ │ │ │ + ldr r2, [pc, #60] @ 35c │ │ │ │ │ add r2, pc, r2 │ │ │ │ │ - b 268 │ │ │ │ │ + b 290 │ │ │ │ │ mov r3, #2 │ │ │ │ │ str r3, [sp, #28] │ │ │ │ │ mov r3, #1 │ │ │ │ │ str r3, [sp, #24] │ │ │ │ │ - b 158 │ │ │ │ │ + b 18c │ │ │ │ │ ldr r0, [r4, #4] │ │ │ │ │ mov r1, #1 │ │ │ │ │ bl 0 │ │ │ │ │ R_ARM_CALL fftw_mpi_is_local │ │ │ │ │ cmp r0, #0 │ │ │ │ │ - beq d4 │ │ │ │ │ - ldr r5, [r4, #8] │ │ │ │ │ - b e0 │ │ │ │ │ - .word 0xfffffd94 │ │ │ │ │ - .word 0x000000a0 │ │ │ │ │ + beq 110 │ │ │ │ │ + ldr r3, [r4, #8] │ │ │ │ │ + b 11c │ │ │ │ │ + .word 0xfffffd6c │ │ │ │ │ + .word 0x000000b8 │ │ │ │ │ R_ARM_REL32 .data.rel.ro │ │ │ │ │ - .word 0xfffffd50 │ │ │ │ │ + .word 0xfffffd1c │ │ │ │ │ │ │ │ │ │ -00000320 : │ │ │ │ │ +00000360 : │ │ │ │ │ fftw_mpi_rdft2_serial_applicable(): │ │ │ │ │ ldr r1, [r0, #24] │ │ │ │ │ cmp r1, #0 │ │ │ │ │ - beq 334 │ │ │ │ │ + beq 374 │ │ │ │ │ mov r0, #0 │ │ │ │ │ bx lr │ │ │ │ │ - push {r4, lr} │ │ │ │ │ + str r4, [sp, #-8]! │ │ │ │ │ mov r4, r0 │ │ │ │ │ ldr r0, [r0, #4] │ │ │ │ │ + str lr, [sp, #4] │ │ │ │ │ bl 0 │ │ │ │ │ R_ARM_CALL fftw_mpi_is_local │ │ │ │ │ cmp r0, #0 │ │ │ │ │ - bne 35c │ │ │ │ │ + bne 3a8 │ │ │ │ │ ldr r0, [r4, #8] │ │ │ │ │ clz r0, r0 │ │ │ │ │ lsr r0, r0, #5 │ │ │ │ │ - pop {r4, pc} │ │ │ │ │ + ldr r4, [sp] │ │ │ │ │ + add sp, sp, #4 │ │ │ │ │ + pop {pc} @ (ldr pc, [sp], #4) │ │ │ │ │ ldr r0, [r4, #4] │ │ │ │ │ mov r1, #1 │ │ │ │ │ bl 0 │ │ │ │ │ R_ARM_CALL fftw_mpi_is_local │ │ │ │ │ cmp r0, #0 │ │ │ │ │ - beq 34c │ │ │ │ │ - mov r0, #1 │ │ │ │ │ - pop {r4, pc} │ │ │ │ │ + movne r0, #1 │ │ │ │ │ + bne 39c │ │ │ │ │ + b 390 │ │ │ │ │ │ │ │ │ │ -00000378 : │ │ │ │ │ +000003c4 : │ │ │ │ │ fftw_mpi_rdft2_serial_register(): │ │ │ │ │ - ldr r1, [pc, #32] @ 3a0 │ │ │ │ │ - push {r4, lr} │ │ │ │ │ - add r1, pc, r1 │ │ │ │ │ + ldr r1, [pc, #44] @ 3f8 │ │ │ │ │ + str r4, [sp, #-8]! │ │ │ │ │ mov r4, r0 │ │ │ │ │ mov r0, #8 │ │ │ │ │ + str lr, [sp, #4] │ │ │ │ │ + add r1, pc, r1 │ │ │ │ │ bl 0 │ │ │ │ │ R_ARM_CALL fftw_mksolver │ │ │ │ │ + ldr lr, [sp, #4] │ │ │ │ │ mov r1, r0 │ │ │ │ │ mov r0, r4 │ │ │ │ │ - pop {r4, lr} │ │ │ │ │ + ldr r4, [sp] │ │ │ │ │ + add sp, sp, #8 │ │ │ │ │ b 0 │ │ │ │ │ R_ARM_JUMP24 fftw_solver_register │ │ │ │ │ .word 0x00000018 │ │ │ │ │ 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: 3412 (bytes into file) │ │ │ │ │ + Start of section headers: 3552 (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 0xd54: │ │ │ │ │ +There are 15 section headers, starting at offset 0xde0: │ │ │ │ │ │ │ │ │ │ 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 000b9c 000108 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 00002c 01 AMS 0 0 4 │ │ │ │ │ - [ 6] .data.rel.ro PROGBITS 00000000 0006ac 000010 00 WA 0 0 4 │ │ │ │ │ - [ 7] .rel.data.rel.ro REL 00000000 000ca4 000020 08 I 12 6 4 │ │ │ │ │ - [ 8] .data.rel.ro.local PROGBITS 00000000 0006bc 00000c 00 WA 0 0 4 │ │ │ │ │ - [ 9] .rel.data.rel.ro.local REL 00000000 000cc4 000008 08 I 12 8 4 │ │ │ │ │ - [10] .note.GNU-stack PROGBITS 00000000 0006c8 000000 00 0 0 1 │ │ │ │ │ - [11] .ARM.attributes ARM_ATTRIBUTES 00000000 0006c8 00002b 00 0 0 1 │ │ │ │ │ - [12] .symtab SYMTAB 00000000 0006f4 0002c0 10 13 23 4 │ │ │ │ │ - [13] .strtab STRTAB 00000000 0009b4 0001e5 00 0 0 1 │ │ │ │ │ - [14] .shstrtab STRTAB 00000000 000ccc 000087 00 0 0 1 │ │ │ │ │ + [ 1] .text PROGBITS 00000000 000034 0006d8 00 AX 0 0 4 │ │ │ │ │ + [ 2] .rel.text REL 00000000 000c28 000108 08 I 12 1 4 │ │ │ │ │ + [ 3] .data PROGBITS 00000000 00070c 000000 00 WA 0 0 1 │ │ │ │ │ + [ 4] .bss NOBITS 00000000 00070c 000000 00 WA 0 0 1 │ │ │ │ │ + [ 5] .rodata.str1.4 PROGBITS 00000000 00070c 00002c 01 AMS 0 0 4 │ │ │ │ │ + [ 6] .data.rel.ro PROGBITS 00000000 000738 000010 00 WA 0 0 4 │ │ │ │ │ + [ 7] .rel.data.rel.ro REL 00000000 000d30 000020 08 I 12 6 4 │ │ │ │ │ + [ 8] .data.rel.ro.local PROGBITS 00000000 000748 00000c 00 WA 0 0 4 │ │ │ │ │ + [ 9] .rel.data.rel.ro.local REL 00000000 000d50 000008 08 I 12 8 4 │ │ │ │ │ + [10] .note.GNU-stack PROGBITS 00000000 000754 000000 00 0 0 1 │ │ │ │ │ + [11] .ARM.attributes ARM_ATTRIBUTES 00000000 000754 00002b 00 0 0 1 │ │ │ │ │ + [12] .symtab SYMTAB 00000000 000780 0002c0 10 13 23 4 │ │ │ │ │ + [13] .strtab STRTAB 00000000 000a40 0001e5 00 0 0 1 │ │ │ │ │ + [14] .shstrtab STRTAB 00000000 000d58 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: 00000000 0 NOTYPE LOCAL DEFAULT 1 $a │ │ │ │ │ - 2: 00000000 116 FUNC LOCAL DEFAULT 1 apply_r2c │ │ │ │ │ - 3: 00000074 72 FUNC LOCAL DEFAULT 1 apply_c2r │ │ │ │ │ + 2: 00000000 136 FUNC LOCAL DEFAULT 1 apply_r2c │ │ │ │ │ + 3: 00000088 84 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: 000000bc 96 FUNC LOCAL DEFAULT 1 print │ │ │ │ │ - 9: 00000110 0 NOTYPE LOCAL DEFAULT 1 $d │ │ │ │ │ - 10: 0000011c 0 NOTYPE LOCAL DEFAULT 1 $a │ │ │ │ │ - 11: 0000011c 28 FUNC LOCAL DEFAULT 1 destroy │ │ │ │ │ - 12: 00000138 1176 FUNC LOCAL DEFAULT 1 mkplan │ │ │ │ │ - 13: 000005c4 0 NOTYPE LOCAL DEFAULT 1 $d │ │ │ │ │ - 14: 000005d0 0 NOTYPE LOCAL DEFAULT 1 $a │ │ │ │ │ - 15: 000005d0 36 FUNC LOCAL DEFAULT 1 awake │ │ │ │ │ - 16: 00000648 0 NOTYPE LOCAL DEFAULT 1 $d │ │ │ │ │ + 8: 000000dc 108 FUNC LOCAL DEFAULT 1 print │ │ │ │ │ + 9: 0000013c 0 NOTYPE LOCAL DEFAULT 1 $d │ │ │ │ │ + 10: 00000148 0 NOTYPE LOCAL DEFAULT 1 $a │ │ │ │ │ + 11: 00000148 40 FUNC LOCAL DEFAULT 1 destroy │ │ │ │ │ + 12: 00000170 1220 FUNC LOCAL DEFAULT 1 mkplan │ │ │ │ │ + 13: 00000628 0 NOTYPE LOCAL DEFAULT 1 $d │ │ │ │ │ + 14: 00000634 0 NOTYPE LOCAL DEFAULT 1 $a │ │ │ │ │ + 15: 00000634 56 FUNC LOCAL DEFAULT 1 awake │ │ │ │ │ + 16: 000006d4 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: 000005f4 88 FUNC GLOBAL DEFAULT 1 fftw_mpi_rdft2_rank_geq2_register │ │ │ │ │ + 40: 0000066c 108 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,47 +1,47 @@ │ │ │ │ │ │ │ │ │ │ -Relocation section '.rel.text' at offset 0xb9c contains 33 entries: │ │ │ │ │ +Relocation section '.rel.text' at offset 0xc28 contains 33 entries: │ │ │ │ │ Offset Info Type Sym. Value Symbol's Name │ │ │ │ │ -00000110 00000603 R_ARM_REL32 00000004 .LC1 │ │ │ │ │ -00000114 00000703 R_ARM_REL32 00000008 .LC2 │ │ │ │ │ -00000118 00000503 R_ARM_REL32 00000000 .LC0 │ │ │ │ │ -00000128 0000171c R_ARM_CALL 00000000 fftw_plan_destroy_internal │ │ │ │ │ -00000134 0000171d R_ARM_JUMP24 00000000 fftw_plan_destroy_internal │ │ │ │ │ -000001b8 0000181c R_ARM_CALL 00000000 fftw_mpi_is_local_after │ │ │ │ │ -000001d4 0000181c R_ARM_CALL 00000000 fftw_mpi_is_local_after │ │ │ │ │ -00000248 0000191c R_ARM_CALL 00000000 MPI_Comm_rank │ │ │ │ │ -00000254 00001a1c R_ARM_CALL 00000000 MPI_Comm_size │ │ │ │ │ -00000264 00001b1c R_ARM_CALL 00000000 fftw_mktensor │ │ │ │ │ -00000370 00001c1c R_ARM_CALL 00000000 fftw_tensor_sz │ │ │ │ │ -000003bc 00001d1c R_ARM_CALL 00000000 fftw_mpi_block │ │ │ │ │ -00000400 00001e1c R_ARM_CALL 00000000 fftw_mktensor_2d │ │ │ │ │ -00000428 00001f1c R_ARM_CALL 00000000 fftw_mkproblem_rdft2_d │ │ │ │ │ -00000434 0000201c R_ARM_CALL 00000000 fftw_mkplan_d │ │ │ │ │ -00000448 0000211c R_ARM_CALL 00000000 fftw_mpi_any_true │ │ │ │ │ -00000458 0000221c R_ARM_CALL 00000000 fftw_mpi_mkdtensor │ │ │ │ │ -000004a4 0000231c R_ARM_CALL 00000000 fftw_mpi_mkproblem_dft_d │ │ │ │ │ -000004b0 0000201c R_ARM_CALL 00000000 fftw_mkplan_d │ │ │ │ │ -000004c4 0000211c R_ARM_CALL 00000000 fftw_mpi_any_true │ │ │ │ │ -000004f0 0000241c R_ARM_CALL 00000000 fftw_mkplan_rdft │ │ │ │ │ -00000530 0000251c R_ARM_CALL 00000000 fftw_ops_add │ │ │ │ │ -00000564 0000171c R_ARM_CALL 00000000 fftw_plan_destroy_internal │ │ │ │ │ -0000056c 0000171c R_ARM_CALL 00000000 fftw_plan_destroy_internal │ │ │ │ │ -000005b4 0000261c R_ARM_CALL 00000000 fftw_mpi_rdft2_serial_applicable │ │ │ │ │ -000005c8 00001103 R_ARM_REL32 00000000 .data.rel.ro │ │ │ │ │ -000005e0 0000271c R_ARM_CALL 00000000 fftw_plan_awake │ │ │ │ │ -000005f0 0000271d R_ARM_JUMP24 00000000 fftw_plan_awake │ │ │ │ │ -0000060c 0000291c R_ARM_CALL 00000000 fftw_mksolver │ │ │ │ │ -00000620 00002a1c R_ARM_CALL 00000000 fftw_solver_register │ │ │ │ │ -0000062c 0000291c R_ARM_CALL 00000000 fftw_mksolver │ │ │ │ │ -00000644 00002a1d R_ARM_JUMP24 00000000 fftw_solver_register │ │ │ │ │ -00000648 00001403 R_ARM_REL32 00000000 .data.rel.ro.local │ │ │ │ │ +0000013c 00000603 R_ARM_REL32 00000004 .LC1 │ │ │ │ │ +00000140 00000703 R_ARM_REL32 00000008 .LC2 │ │ │ │ │ +00000144 00000503 R_ARM_REL32 00000000 .LC0 │ │ │ │ │ +00000158 0000171c R_ARM_CALL 00000000 fftw_plan_destroy_internal │ │ │ │ │ +0000016c 0000171d R_ARM_JUMP24 00000000 fftw_plan_destroy_internal │ │ │ │ │ +00000214 0000181c R_ARM_CALL 00000000 fftw_mpi_is_local_after │ │ │ │ │ +00000230 0000181c R_ARM_CALL 00000000 fftw_mpi_is_local_after │ │ │ │ │ +000002a4 0000191c R_ARM_CALL 00000000 MPI_Comm_rank │ │ │ │ │ +000002b0 00001a1c R_ARM_CALL 00000000 MPI_Comm_size │ │ │ │ │ +000002c0 00001b1c R_ARM_CALL 00000000 fftw_mktensor │ │ │ │ │ +000003d0 00001c1c R_ARM_CALL 00000000 fftw_tensor_sz │ │ │ │ │ +00000420 00001d1c R_ARM_CALL 00000000 fftw_mpi_block │ │ │ │ │ +0000045c 00001e1c R_ARM_CALL 00000000 fftw_mktensor_2d │ │ │ │ │ +00000484 00001f1c R_ARM_CALL 00000000 fftw_mkproblem_rdft2_d │ │ │ │ │ +00000490 0000201c R_ARM_CALL 00000000 fftw_mkplan_d │ │ │ │ │ +000004a4 0000211c R_ARM_CALL 00000000 fftw_mpi_any_true │ │ │ │ │ +000004b4 0000221c R_ARM_CALL 00000000 fftw_mpi_mkdtensor │ │ │ │ │ +0000050c 0000231c R_ARM_CALL 00000000 fftw_mpi_mkproblem_dft_d │ │ │ │ │ +00000518 0000201c R_ARM_CALL 00000000 fftw_mkplan_d │ │ │ │ │ +0000052c 0000211c R_ARM_CALL 00000000 fftw_mpi_any_true │ │ │ │ │ +00000558 0000241c R_ARM_CALL 00000000 fftw_mkplan_rdft │ │ │ │ │ +00000598 0000251c R_ARM_CALL 00000000 fftw_ops_add │ │ │ │ │ +000005c8 0000171c R_ARM_CALL 00000000 fftw_plan_destroy_internal │ │ │ │ │ +000005d0 0000171c R_ARM_CALL 00000000 fftw_plan_destroy_internal │ │ │ │ │ +00000618 0000261c R_ARM_CALL 00000000 fftw_mpi_rdft2_serial_applicable │ │ │ │ │ +0000062c 00001103 R_ARM_REL32 00000000 .data.rel.ro │ │ │ │ │ +0000064c 0000271c R_ARM_CALL 00000000 fftw_plan_awake │ │ │ │ │ +00000668 0000271d R_ARM_JUMP24 00000000 fftw_plan_awake │ │ │ │ │ +0000068c 0000291c R_ARM_CALL 00000000 fftw_mksolver │ │ │ │ │ +000006a0 00002a1c R_ARM_CALL 00000000 fftw_solver_register │ │ │ │ │ +000006ac 0000291c R_ARM_CALL 00000000 fftw_mksolver │ │ │ │ │ +000006d0 00002a1d R_ARM_JUMP24 00000000 fftw_solver_register │ │ │ │ │ +000006d4 00001403 R_ARM_REL32 00000000 .data.rel.ro.local │ │ │ │ │ │ │ │ │ │ -Relocation section '.rel.data.rel.ro' at offset 0xca4 contains 4 entries: │ │ │ │ │ +Relocation section '.rel.data.rel.ro' at offset 0xd30 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 000005d0 awake │ │ │ │ │ -00000008 00000802 R_ARM_ABS32 000000bc print │ │ │ │ │ -0000000c 00000b02 R_ARM_ABS32 0000011c destroy │ │ │ │ │ +00000004 00000f02 R_ARM_ABS32 00000634 awake │ │ │ │ │ +00000008 00000802 R_ARM_ABS32 000000dc print │ │ │ │ │ +0000000c 00000b02 R_ARM_ABS32 00000148 destroy │ │ │ │ │ │ │ │ │ │ -Relocation section '.rel.data.rel.ro.local' at offset 0xcc4 contains 1 entry: │ │ │ │ │ +Relocation section '.rel.data.rel.ro.local' at offset 0xd50 contains 1 entry: │ │ │ │ │ Offset Info Type Sym. Value Symbol's Name │ │ │ │ │ -00000004 00000c02 R_ARM_ABS32 00000138 mkplan │ │ │ │ │ +00000004 00000c02 R_ARM_ABS32 00000170 mkplan │ │ │ │ ├── objdump --line-numbers --disassemble --demangle --reloc --no-show-raw-insn --section=.text {} │ │ │ │ │ @@ -1,461 +1,496 @@ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ Disassembly of section .text: │ │ │ │ │ │ │ │ │ │ 00000000 : │ │ │ │ │ apply_r2c(): │ │ │ │ │ - push {r4, r5, r6, r7, lr} │ │ │ │ │ + strd r4, [sp, #-20]! @ 0xffffffec │ │ │ │ │ mov r4, r0 │ │ │ │ │ ldr r3, [r4, #76] @ 0x4c │ │ │ │ │ - ldr r0, [r0, #64] @ 0x40 │ │ │ │ │ + strd r6, [sp, #8] │ │ │ │ │ mov r6, r2 │ │ │ │ │ + ldr r0, [r0, #64] @ 0x40 │ │ │ │ │ + str lr, [sp, #16] │ │ │ │ │ + sub sp, sp, #12 │ │ │ │ │ ldr r2, [r4, #72] @ 0x48 │ │ │ │ │ cmp r3, #0 │ │ │ │ │ ldr r7, [r0, #56] @ 0x38 │ │ │ │ │ - sub sp, sp, #12 │ │ │ │ │ add r2, r1, r2, lsl #3 │ │ │ │ │ - beq 5c │ │ │ │ │ + beq 70 │ │ │ │ │ add r3, r6, #8 │ │ │ │ │ + mov r5, r6 │ │ │ │ │ str r3, [sp] │ │ │ │ │ mov r3, r6 │ │ │ │ │ blx r7 │ │ │ │ │ - mov r5, r6 │ │ │ │ │ ldr r0, [r4, #68] @ 0x44 │ │ │ │ │ mov r2, r6 │ │ │ │ │ mov r1, r5 │ │ │ │ │ ldr r3, [r0, #56] @ 0x38 │ │ │ │ │ add sp, sp, #12 │ │ │ │ │ - pop {r4, r5, r6, r7, lr} │ │ │ │ │ + ldrd r4, [sp] │ │ │ │ │ + ldrd r6, [sp, #8] │ │ │ │ │ + ldr lr, [sp, #16] │ │ │ │ │ + add sp, sp, #20 │ │ │ │ │ bx r3 │ │ │ │ │ add r3, r1, #8 │ │ │ │ │ + mov r5, r1 │ │ │ │ │ str r3, [sp] │ │ │ │ │ mov r3, r1 │ │ │ │ │ - mov r5, r1 │ │ │ │ │ blx r7 │ │ │ │ │ - b 40 │ │ │ │ │ + b 48 │ │ │ │ │ │ │ │ │ │ -00000074 : │ │ │ │ │ +00000088 : │ │ │ │ │ apply_c2r(): │ │ │ │ │ - push {r4, r5, lr} │ │ │ │ │ + strd r4, [sp, #-12]! │ │ │ │ │ mov r4, r0 │ │ │ │ │ + mov r5, r2 │ │ │ │ │ ldr r0, [r0, #68] @ 0x44 │ │ │ │ │ + str lr, [sp, #8] │ │ │ │ │ sub sp, sp, #12 │ │ │ │ │ ldr r3, [r0, #56] @ 0x38 │ │ │ │ │ - mov r5, r2 │ │ │ │ │ blx r3 │ │ │ │ │ ldr r0, [r4, #64] @ 0x40 │ │ │ │ │ - ldr r2, [r4, #72] @ 0x48 │ │ │ │ │ add r3, r5, #8 │ │ │ │ │ + mov r1, r5 │ │ │ │ │ + ldr r2, [r4, #72] @ 0x48 │ │ │ │ │ str r3, [sp] │ │ │ │ │ - add r2, r5, r2, lsl #3 │ │ │ │ │ - ldr r4, [r0, #56] @ 0x38 │ │ │ │ │ mov r3, r5 │ │ │ │ │ - mov r1, r5 │ │ │ │ │ + ldr r4, [r0, #56] @ 0x38 │ │ │ │ │ + add r2, r5, r2, lsl #3 │ │ │ │ │ blx r4 │ │ │ │ │ add sp, sp, #12 │ │ │ │ │ - pop {r4, r5, pc} │ │ │ │ │ + ldrd r4, [sp] │ │ │ │ │ + add sp, sp, #8 │ │ │ │ │ + pop {pc} @ (ldr pc, [sp], #4) │ │ │ │ │ │ │ │ │ │ -000000bc : │ │ │ │ │ +000000dc : │ │ │ │ │ print(): │ │ │ │ │ mov r3, r0 │ │ │ │ │ + mov r0, r1 │ │ │ │ │ + str r4, [sp, #-8]! │ │ │ │ │ ldr r2, [r3, #76] @ 0x4c │ │ │ │ │ - push {r4, lr} │ │ │ │ │ - cmp r2, #2 │ │ │ │ │ - ldr r4, [r1] │ │ │ │ │ + str lr, [sp, #4] │ │ │ │ │ sub sp, sp, #8 │ │ │ │ │ - mov r0, r1 │ │ │ │ │ - beq 104 │ │ │ │ │ - ldr r2, [pc, #44] @ 110 │ │ │ │ │ + ldr r4, [r1] │ │ │ │ │ + cmp r2, #2 │ │ │ │ │ + beq 130 │ │ │ │ │ + ldr r2, [pc, #52] @ 13c │ │ │ │ │ add r2, pc, r2 │ │ │ │ │ ldr r1, [r3, #68] @ 0x44 │ │ │ │ │ str r1, [sp] │ │ │ │ │ - ldr r1, [pc, #32] @ 114 │ │ │ │ │ + ldr r1, [pc, #40] @ 140 │ │ │ │ │ ldr r3, [r3, #64] @ 0x40 │ │ │ │ │ add r1, pc, r1 │ │ │ │ │ blx r4 │ │ │ │ │ add sp, sp, #8 │ │ │ │ │ - pop {r4, pc} │ │ │ │ │ - ldr r2, [pc, #12] @ 118 │ │ │ │ │ + ldr r4, [sp] │ │ │ │ │ + add sp, sp, #4 │ │ │ │ │ + pop {pc} @ (ldr pc, [sp], #4) │ │ │ │ │ + ldr r2, [pc, #12] @ 144 │ │ │ │ │ add r2, pc, r2 │ │ │ │ │ - b e4 │ │ │ │ │ - .word 0x00000028 │ │ │ │ │ + b 108 │ │ │ │ │ + .word 0x00000030 │ │ │ │ │ R_ARM_REL32 .LC1 │ │ │ │ │ - .word 0x00000018 │ │ │ │ │ + .word 0x00000020 │ │ │ │ │ R_ARM_REL32 .LC2 │ │ │ │ │ .word 0x00000008 │ │ │ │ │ R_ARM_REL32 .LC0 │ │ │ │ │ │ │ │ │ │ -0000011c : │ │ │ │ │ +00000148 : │ │ │ │ │ destroy(): │ │ │ │ │ - push {r4, lr} │ │ │ │ │ + str r4, [sp, #-8]! │ │ │ │ │ mov r4, r0 │ │ │ │ │ ldr r0, [r0, #68] @ 0x44 │ │ │ │ │ + str lr, [sp, #4] │ │ │ │ │ bl 0 │ │ │ │ │ R_ARM_CALL fftw_plan_destroy_internal │ │ │ │ │ + ldr lr, [sp, #4] │ │ │ │ │ ldr r0, [r4, #64] @ 0x40 │ │ │ │ │ - pop {r4, lr} │ │ │ │ │ + ldr r4, [sp] │ │ │ │ │ + add sp, sp, #8 │ │ │ │ │ b 0 │ │ │ │ │ R_ARM_JUMP24 fftw_plan_destroy_internal │ │ │ │ │ │ │ │ │ │ -00000138 : │ │ │ │ │ +00000170 : │ │ │ │ │ mkplan(): │ │ │ │ │ - push {r4, r5, r6, r7, r8, r9, sl, fp, lr} │ │ │ │ │ - sub sp, sp, #52 @ 0x34 │ │ │ │ │ + strd r4, [sp, #-36]! @ 0xffffffdc │ │ │ │ │ + strd r6, [sp, #8] │ │ │ │ │ mov r6, r2 │ │ │ │ │ - str r1, [sp, #16] │ │ │ │ │ mov r2, r1 │ │ │ │ │ + strd r8, [sp, #16] │ │ │ │ │ + strd sl, [sp, #24] │ │ │ │ │ + str lr, [sp, #32] │ │ │ │ │ + sub sp, sp, #60 @ 0x3c │ │ │ │ │ + str r1, [sp, #20] │ │ │ │ │ ldr r1, [r1, #4] │ │ │ │ │ ldr r3, [r1] │ │ │ │ │ cmp r3, #1 │ │ │ │ │ - ble 170 │ │ │ │ │ + ble 1b8 │ │ │ │ │ ldr r3, [r2, #24] │ │ │ │ │ mov r7, r0 │ │ │ │ │ - cmp r3, #0 │ │ │ │ │ mov r0, r2 │ │ │ │ │ - beq 17c │ │ │ │ │ + cmp r3, #0 │ │ │ │ │ + beq 1d8 │ │ │ │ │ mov r0, #0 │ │ │ │ │ - add sp, sp, #52 @ 0x34 │ │ │ │ │ - pop {r4, r5, r6, r7, r8, r9, sl, fp, pc} │ │ │ │ │ + add sp, sp, #60 @ 0x3c │ │ │ │ │ + ldrd r4, [sp] │ │ │ │ │ + ldrd r6, [sp, #8] │ │ │ │ │ + ldrd r8, [sp, #16] │ │ │ │ │ + ldrd sl, [sp, #24] │ │ │ │ │ + add sp, sp, #32 │ │ │ │ │ + pop {pc} @ (ldr pc, [sp], #4) │ │ │ │ │ ldr r3, [r7, #8] │ │ │ │ │ cmp r3, #0 │ │ │ │ │ - beq 1b0 │ │ │ │ │ + beq 20c │ │ │ │ │ ldr r3, [r6, #164] @ 0xa4 │ │ │ │ │ tst r3, #4096 @ 0x1000 │ │ │ │ │ - bne 170 │ │ │ │ │ + bne 1b8 │ │ │ │ │ ldr r2, [r2, #12] │ │ │ │ │ ldr r3, [r0, #16] │ │ │ │ │ cmp r2, r3 │ │ │ │ │ - beq 170 │ │ │ │ │ + beq 1b8 │ │ │ │ │ ldr r3, [r0, #20] │ │ │ │ │ cmp r3, #0 │ │ │ │ │ - bne 170 │ │ │ │ │ + bne 1b8 │ │ │ │ │ mov r2, #0 │ │ │ │ │ mov r0, #1 │ │ │ │ │ bl 0 │ │ │ │ │ R_ARM_CALL fftw_mpi_is_local_after │ │ │ │ │ cmp r0, #0 │ │ │ │ │ - beq 170 │ │ │ │ │ - ldr r3, [sp, #16] │ │ │ │ │ + beq 1b8 │ │ │ │ │ + ldr r3, [sp, #20] │ │ │ │ │ mov r2, #1 │ │ │ │ │ - ldr r1, [r3, #4] │ │ │ │ │ mov r0, r2 │ │ │ │ │ + ldr r1, [r3, #4] │ │ │ │ │ bl 0 │ │ │ │ │ R_ARM_CALL fftw_mpi_is_local_after │ │ │ │ │ cmp r0, #0 │ │ │ │ │ - beq 170 │ │ │ │ │ + beq 1b8 │ │ │ │ │ ldr r3, [r6, #164] @ 0xa4 │ │ │ │ │ tst r3, #8 │ │ │ │ │ - bne 5b0 │ │ │ │ │ - ldr r2, [sp, #16] │ │ │ │ │ + bne 614 │ │ │ │ │ + ldr r2, [sp, #20] │ │ │ │ │ ldr r3, [r2, #8] │ │ │ │ │ ldr fp, [r2, #12] │ │ │ │ │ ldr r8, [r2, #16] │ │ │ │ │ - ldr r2, [r2, #20] │ │ │ │ │ lsl r3, r3, #3 │ │ │ │ │ + ldr r2, [r2, #20] │ │ │ │ │ cmp r2, #0 │ │ │ │ │ - bne 540 │ │ │ │ │ + bne 5a4 │ │ │ │ │ add r3, fp, r3 │ │ │ │ │ - str r3, [sp, #20] │ │ │ │ │ + str r3, [sp, #24] │ │ │ │ │ ldr r3, [r7, #8] │ │ │ │ │ cmp r3, #0 │ │ │ │ │ - bne 574 │ │ │ │ │ + bne 5d8 │ │ │ │ │ ldr r3, [r6, #164] @ 0xa4 │ │ │ │ │ tst r3, #4096 @ 0x1000 │ │ │ │ │ - bne 574 │ │ │ │ │ + bne 5d8 │ │ │ │ │ add r3, fp, #8 │ │ │ │ │ mov r9, fp │ │ │ │ │ - str r3, [sp, #32] │ │ │ │ │ - str fp, [sp, #28] │ │ │ │ │ - ldr r4, [sp, #16] │ │ │ │ │ - add r1, sp, #40 @ 0x28 │ │ │ │ │ + str fp, [sp, #32] │ │ │ │ │ + str r3, [sp, #36] @ 0x24 │ │ │ │ │ + ldr r4, [sp, #20] │ │ │ │ │ + add r1, sp, #48 @ 0x30 │ │ │ │ │ ldr r0, [r4, #28] │ │ │ │ │ bl 0 │ │ │ │ │ R_ARM_CALL MPI_Comm_rank │ │ │ │ │ - add r1, sp, #44 @ 0x2c │ │ │ │ │ ldr r0, [r4, #28] │ │ │ │ │ + add r1, sp, #52 @ 0x34 │ │ │ │ │ bl 0 │ │ │ │ │ R_ARM_CALL MPI_Comm_size │ │ │ │ │ ldr r3, [r4, #4] │ │ │ │ │ ldr r0, [r3] │ │ │ │ │ sub r0, r0, #1 │ │ │ │ │ bl 0 │ │ │ │ │ R_ARM_CALL fftw_mktensor │ │ │ │ │ ldr sl, [r4, #4] │ │ │ │ │ + mov r5, r0 │ │ │ │ │ ldr r2, [r4, #8] │ │ │ │ │ ldr lr, [sl] │ │ │ │ │ lsl r2, r2, #1 │ │ │ │ │ add r3, lr, lr, lsl #1 │ │ │ │ │ + add r1, lr, lr, lsl #1 │ │ │ │ │ add r3, r0, r3, lsl #2 │ │ │ │ │ + lsl r1, r1, #2 │ │ │ │ │ str r2, [r3, #-12] │ │ │ │ │ - add r3, lr, lr, lsl #1 │ │ │ │ │ - lsl r1, r3, #2 │ │ │ │ │ - add r3, r0, r3, lsl #2 │ │ │ │ │ + add r3, r0, r1 │ │ │ │ │ + subs r0, lr, #3 │ │ │ │ │ str r2, [r3, #-16] │ │ │ │ │ add r2, lr, lr, lsl #1 │ │ │ │ │ add r2, sl, r2, lsl #2 │ │ │ │ │ ldr r2, [r2, #-8] │ │ │ │ │ - mov r5, r0 │ │ │ │ │ add r2, r2, r2, lsr #31 │ │ │ │ │ asr r2, r2, #1 │ │ │ │ │ add r2, r2, #1 │ │ │ │ │ - subs r0, lr, #3 │ │ │ │ │ str r2, [r3, #-20] @ 0xffffffec │ │ │ │ │ - bmi 36c │ │ │ │ │ + bmi 3cc │ │ │ │ │ cmp lr, #4 │ │ │ │ │ sub r2, r1, #16 │ │ │ │ │ sub ip, r1, #20 │ │ │ │ │ - ble 5a8 │ │ │ │ │ - sub lr, lr, #5 │ │ │ │ │ + ble 60c │ │ │ │ │ ldr r2, [r5, r2] │ │ │ │ │ - ldr ip, [r5, ip] │ │ │ │ │ + sub lr, lr, #5 │ │ │ │ │ add r1, sl, r1 │ │ │ │ │ and lr, lr, #1 │ │ │ │ │ + ldr ip, [r5, ip] │ │ │ │ │ mul r2, ip, r2 │ │ │ │ │ - ldr r4, [r1, #-20] @ 0xffffffec │ │ │ │ │ - str r2, [r3, #-24] @ 0xffffffe8 │ │ │ │ │ - str r2, [r3, #-28] @ 0xffffffe4 │ │ │ │ │ - mul r2, r4, r2 │ │ │ │ │ sub r0, r0, #2 │ │ │ │ │ - str r4, [r3, #-32] @ 0xffffffe0 │ │ │ │ │ - cmp r0, lr │ │ │ │ │ - ldr ip, [r1, #-32] @ 0xffffffe0 │ │ │ │ │ - str ip, [r3, #-44] @ 0xffffffd4 │ │ │ │ │ - str r2, [r3, #-36] @ 0xffffffdc │ │ │ │ │ - str r2, [r3, #-40] @ 0xffffffd8 │ │ │ │ │ sub r1, r1, #24 │ │ │ │ │ + ldr r4, [r1, #4] │ │ │ │ │ + cmp r0, lr │ │ │ │ │ sub r3, r3, #24 │ │ │ │ │ - bne 2e0 │ │ │ │ │ + str r4, [r3, #-8] │ │ │ │ │ + str r2, [r3, #-4] │ │ │ │ │ + str r2, [r3] │ │ │ │ │ + mul r2, r4, r2 │ │ │ │ │ + ldr ip, [r1, #-8] │ │ │ │ │ + str ip, [r3, #-20] @ 0xffffffec │ │ │ │ │ + str r2, [r3, #-16] │ │ │ │ │ + str r2, [r3, #-12] │ │ │ │ │ + bne 33c │ │ │ │ │ add r3, lr, lr, lsl #1 │ │ │ │ │ - add sl, sl, r3, lsl #2 │ │ │ │ │ - add r3, r5, r3, lsl #2 │ │ │ │ │ - ldr r1, [r3, #20] │ │ │ │ │ + cmp lr, #0 │ │ │ │ │ + lsl r3, r3, #2 │ │ │ │ │ + add sl, sl, r3 │ │ │ │ │ + add r3, r5, r3 │ │ │ │ │ ldr r2, [r3, #16] │ │ │ │ │ + ldr r1, [r3, #20] │ │ │ │ │ ldr r0, [sl, #16] │ │ │ │ │ mul r2, r1, r2 │ │ │ │ │ - cmp lr, #0 │ │ │ │ │ sub r1, lr, #1 │ │ │ │ │ str r0, [r3, #4] │ │ │ │ │ - str r2, [r3, #12] │ │ │ │ │ str r2, [r3, #8] │ │ │ │ │ - beq 36c │ │ │ │ │ - mul r2, r0, r2 │ │ │ │ │ - add r1, r1, r1, lsl #1 │ │ │ │ │ + str r2, [r3, #12] │ │ │ │ │ + beq 3cc │ │ │ │ │ ldr ip, [sl, #4] │ │ │ │ │ + add r1, r1, r1, lsl #1 │ │ │ │ │ + mul r2, r0, r2 │ │ │ │ │ add r1, r5, r1, lsl #2 │ │ │ │ │ str ip, [r3, #-8] │ │ │ │ │ str r2, [r1, #12] │ │ │ │ │ str r2, [r3, #-4] │ │ │ │ │ mov r0, r5 │ │ │ │ │ bl 0 │ │ │ │ │ R_ARM_CALL fftw_tensor_sz │ │ │ │ │ - ldr r3, [sp, #16] │ │ │ │ │ + ldr r3, [sp, #20] │ │ │ │ │ + str r0, [sp, #44] @ 0x2c │ │ │ │ │ ldr r3, [r3, #20] │ │ │ │ │ cmp r3, #4 │ │ │ │ │ - mov r4, r0 │ │ │ │ │ - beq 58c │ │ │ │ │ + beq 5f0 │ │ │ │ │ mov sl, #1 │ │ │ │ │ cmp r3, #0 │ │ │ │ │ - strne sl, [sp, #36] @ 0x24 │ │ │ │ │ - moveq r3, #2 │ │ │ │ │ - streq r3, [sp, #36] @ 0x24 │ │ │ │ │ + strne sl, [sp, #40] @ 0x28 │ │ │ │ │ + bne 400 │ │ │ │ │ + mov r3, #2 │ │ │ │ │ + str r3, [sp, #40] @ 0x28 │ │ │ │ │ + ldr r4, [sp, #20] │ │ │ │ │ ldr r3, [r5, #4] │ │ │ │ │ ldr r2, [r5, #8] │ │ │ │ │ + ldr r0, [r4, #4] │ │ │ │ │ mul r1, r2, r3 │ │ │ │ │ - ldr r3, [sp, #16] │ │ │ │ │ - ldr r2, [sp, #40] @ 0x28 │ │ │ │ │ - ldr r0, [r3, #4] │ │ │ │ │ - str r1, [sp, #24] │ │ │ │ │ + ldr r2, [sp, #48] @ 0x30 │ │ │ │ │ + str r1, [sp, #28] │ │ │ │ │ ldmib r0, {r0, r1} │ │ │ │ │ bl 0 │ │ │ │ │ R_ARM_CALL fftw_mpi_block │ │ │ │ │ - ldr r3, [sp, #16] │ │ │ │ │ - ldr ip, [r3, #4] │ │ │ │ │ + ldr ip, [r4, #4] │ │ │ │ │ ldr r2, [ip] │ │ │ │ │ sub r1, r2, #2 │ │ │ │ │ add r2, r2, r2, lsl #1 │ │ │ │ │ - add ip, ip, r2, lsl #2 │ │ │ │ │ add r1, r1, r1, lsl #1 │ │ │ │ │ - ldr r2, [ip, #-8] │ │ │ │ │ + add ip, ip, r2, lsl #2 │ │ │ │ │ add r1, r5, r1, lsl #2 │ │ │ │ │ - ldr ip, [sp, #36] @ 0x24 │ │ │ │ │ + ldr r2, [ip, #-8] │ │ │ │ │ + ldr ip, [sp, #40] @ 0x28 │ │ │ │ │ str r2, [r1, #4] │ │ │ │ │ - ldr r2, [sp, #24] │ │ │ │ │ + ldr r2, [sp, #28] │ │ │ │ │ stm sp, {sl, ip} │ │ │ │ │ + ldr r3, [r4, #8] │ │ │ │ │ mov r1, r2 │ │ │ │ │ - mov sl, r3 │ │ │ │ │ - ldr r3, [r3, #8] │ │ │ │ │ bl 0 │ │ │ │ │ R_ARM_CALL fftw_mktensor_2d │ │ │ │ │ - ldr r3, [sl, #20] │ │ │ │ │ - str r3, [sp, #8] │ │ │ │ │ - ldr r3, [sp, #32] │ │ │ │ │ - ldr r2, [sp, #28] │ │ │ │ │ - str r3, [sp, #4] │ │ │ │ │ - str r9, [sp] │ │ │ │ │ - ldr r3, [sp, #20] │ │ │ │ │ + ldr r3, [r4, #20] │ │ │ │ │ mov r1, r0 │ │ │ │ │ mov r0, r5 │ │ │ │ │ + str r9, [sp] │ │ │ │ │ + ldr r2, [sp, #32] │ │ │ │ │ + str r3, [sp, #8] │ │ │ │ │ + ldr r3, [sp, #36] @ 0x24 │ │ │ │ │ + str r3, [sp, #4] │ │ │ │ │ + ldr r3, [sp, #24] │ │ │ │ │ bl 0 │ │ │ │ │ R_ARM_CALL fftw_mkproblem_rdft2_d │ │ │ │ │ mov r1, r0 │ │ │ │ │ mov r0, r6 │ │ │ │ │ bl 0 │ │ │ │ │ R_ARM_CALL fftw_mkplan_d │ │ │ │ │ - ldr r1, [sl, #28] │ │ │ │ │ mov r9, r0 │ │ │ │ │ clz r0, r0 │ │ │ │ │ + ldr r1, [r4, #28] │ │ │ │ │ lsr r0, r0, #5 │ │ │ │ │ bl 0 │ │ │ │ │ R_ARM_CALL fftw_mpi_any_true │ │ │ │ │ cmp r0, #0 │ │ │ │ │ - bne 55c │ │ │ │ │ + bne 5c0 │ │ │ │ │ mov r0, #1 │ │ │ │ │ bl 0 │ │ │ │ │ R_ARM_CALL fftw_mpi_mkdtensor │ │ │ │ │ - ldr r3, [sl, #4] │ │ │ │ │ - mov ip, r0 │ │ │ │ │ - ldmib r3, {r0, r1, r2} │ │ │ │ │ - stmib ip, {r0, r1, r2} │ │ │ │ │ - ldr r2, [sl, #20] │ │ │ │ │ - ldr r1, [sl, #8] │ │ │ │ │ + ldr r2, [r4, #4] │ │ │ │ │ + mov r1, r4 │ │ │ │ │ + mov ip, #16 │ │ │ │ │ + ldrd r4, [r2, #4] │ │ │ │ │ + strd r4, [r0, #4] │ │ │ │ │ + mov r4, r1 │ │ │ │ │ + ldr r2, [r2, #12] │ │ │ │ │ + ldr r1, [r1, #8] │ │ │ │ │ + ldr r3, [r4, #28] │ │ │ │ │ + str r2, [r0, #12] │ │ │ │ │ + ldr r2, [r4, #20] │ │ │ │ │ + str r3, [sp] │ │ │ │ │ + mov r3, r8 │ │ │ │ │ cmp r2, #0 │ │ │ │ │ movne r2, #1 │ │ │ │ │ mvneq r2, #0 │ │ │ │ │ - ldr r3, [sl, #28] │ │ │ │ │ - mov r0, #16 │ │ │ │ │ - mul r1, r4, r1 │ │ │ │ │ - str r0, [sp, #8] │ │ │ │ │ - str r2, [sp, #4] │ │ │ │ │ - mov r0, ip │ │ │ │ │ + stmib sp, {r2, ip} │ │ │ │ │ mov r2, fp │ │ │ │ │ - str r3, [sp] │ │ │ │ │ - mov r3, r8 │ │ │ │ │ + ldr ip, [sp, #44] @ 0x2c │ │ │ │ │ + mul ip, r1, ip │ │ │ │ │ + mov r1, ip │ │ │ │ │ bl 0 │ │ │ │ │ R_ARM_CALL fftw_mpi_mkproblem_dft_d │ │ │ │ │ mov r1, r0 │ │ │ │ │ mov r0, r6 │ │ │ │ │ bl 0 │ │ │ │ │ R_ARM_CALL fftw_mkplan_d │ │ │ │ │ - ldr r1, [sl, #28] │ │ │ │ │ mov r8, r0 │ │ │ │ │ clz r0, r0 │ │ │ │ │ + ldr r1, [r4, #28] │ │ │ │ │ lsr r0, r0, #5 │ │ │ │ │ bl 0 │ │ │ │ │ R_ARM_CALL fftw_mpi_any_true │ │ │ │ │ cmp r0, #0 │ │ │ │ │ - bne 560 │ │ │ │ │ - ldr r3, [sl, #20] │ │ │ │ │ + bne 5c4 │ │ │ │ │ + ldr r3, [r4, #20] │ │ │ │ │ cmp r3, #0 │ │ │ │ │ - bne 59c │ │ │ │ │ - ldr r2, [pc, #224] @ 5c4 │ │ │ │ │ + bne 600 │ │ │ │ │ + ldr r2, [pc, #220] @ 628 │ │ │ │ │ add r2, pc, r2 │ │ │ │ │ - ldr r1, [pc, #220] @ 5c8 │ │ │ │ │ + ldr r1, [pc, #216] @ 62c │ │ │ │ │ mov r0, #80 @ 0x50 │ │ │ │ │ add r1, pc, r1 │ │ │ │ │ bl 0 │ │ │ │ │ R_ARM_CALL fftw_mkplan_rdft │ │ │ │ │ ldr r3, [r7, #8] │ │ │ │ │ + mov r5, r0 │ │ │ │ │ + add r2, r0, #8 │ │ │ │ │ add r1, r8, #8 │ │ │ │ │ + str r9, [r0, #64] @ 0x40 │ │ │ │ │ + str r8, [r0, #68] @ 0x44 │ │ │ │ │ cmp r3, #0 │ │ │ │ │ ldreq r3, [r6, #164] @ 0xa4 │ │ │ │ │ movne r3, #2 │ │ │ │ │ andeq r3, r3, #4096 @ 0x1000 │ │ │ │ │ str r3, [r0, #76] @ 0x4c │ │ │ │ │ - ldr r3, [sp, #16] │ │ │ │ │ - mov r5, r0 │ │ │ │ │ + ldr r3, [sp, #20] │ │ │ │ │ ldr r3, [r3, #8] │ │ │ │ │ - add r2, r0, #8 │ │ │ │ │ - str r9, [r0, #64] @ 0x40 │ │ │ │ │ - str r8, [r0, #68] @ 0x44 │ │ │ │ │ str r3, [r0, #72] @ 0x48 │ │ │ │ │ add r0, r9, #8 │ │ │ │ │ bl 0 │ │ │ │ │ R_ARM_CALL fftw_ops_add │ │ │ │ │ mov r0, r5 │ │ │ │ │ - add sp, sp, #52 @ 0x34 │ │ │ │ │ - pop {r4, r5, r6, r7, r8, r9, sl, fp, pc} │ │ │ │ │ + b 1bc │ │ │ │ │ add r3, r8, r3 │ │ │ │ │ - str r3, [sp, #20] │ │ │ │ │ - add r3, r8, #8 │ │ │ │ │ mov r9, r8 │ │ │ │ │ - str r3, [sp, #32] │ │ │ │ │ - str r8, [sp, #28] │ │ │ │ │ - b 23c │ │ │ │ │ + str r3, [sp, #24] │ │ │ │ │ + add r3, r8, #8 │ │ │ │ │ + str r8, [sp, #32] │ │ │ │ │ + str r3, [sp, #36] @ 0x24 │ │ │ │ │ + b 298 │ │ │ │ │ mov r8, #0 │ │ │ │ │ mov r0, r8 │ │ │ │ │ bl 0 │ │ │ │ │ R_ARM_CALL fftw_plan_destroy_internal │ │ │ │ │ mov r0, r9 │ │ │ │ │ bl 0 │ │ │ │ │ R_ARM_CALL fftw_plan_destroy_internal │ │ │ │ │ - b 170 │ │ │ │ │ + b 1b8 │ │ │ │ │ add r3, r8, #8 │ │ │ │ │ - str fp, [sp, #28] │ │ │ │ │ mov r9, r8 │ │ │ │ │ + str fp, [sp, #32] │ │ │ │ │ mov fp, r8 │ │ │ │ │ - str r3, [sp, #32] │ │ │ │ │ - b 23c │ │ │ │ │ + str r3, [sp, #36] @ 0x24 │ │ │ │ │ + b 298 │ │ │ │ │ mov r3, #1 │ │ │ │ │ mov sl, #2 │ │ │ │ │ - str r3, [sp, #36] @ 0x24 │ │ │ │ │ - b 39c │ │ │ │ │ - ldr r2, [pc, #40] @ 5cc │ │ │ │ │ + str r3, [sp, #40] @ 0x28 │ │ │ │ │ + b 400 │ │ │ │ │ + ldr r2, [pc, #40] @ 630 │ │ │ │ │ add r2, pc, r2 │ │ │ │ │ - b 4e4 │ │ │ │ │ + b 54c │ │ │ │ │ mov lr, r0 │ │ │ │ │ - b 31c │ │ │ │ │ - ldr r0, [sp, #16] │ │ │ │ │ + b 378 │ │ │ │ │ + ldr r0, [sp, #20] │ │ │ │ │ bl 0 │ │ │ │ │ R_ARM_CALL fftw_mpi_rdft2_serial_applicable │ │ │ │ │ cmp r0, #0 │ │ │ │ │ - beq 1ec │ │ │ │ │ - b 170 │ │ │ │ │ - .word 0xfffffb18 │ │ │ │ │ - .word 0x000000d4 │ │ │ │ │ + beq 248 │ │ │ │ │ + b 1b8 │ │ │ │ │ + .word 0xfffffab0 │ │ │ │ │ + .word 0x000000d0 │ │ │ │ │ R_ARM_REL32 .data.rel.ro │ │ │ │ │ - .word 0xfffffacc │ │ │ │ │ + .word 0xfffffa7c │ │ │ │ │ │ │ │ │ │ -000005d0 : │ │ │ │ │ +00000634 : │ │ │ │ │ awake(): │ │ │ │ │ - push {r4, r5, r6, lr} │ │ │ │ │ + strd r4, [sp, #-16]! │ │ │ │ │ mov r4, r0 │ │ │ │ │ mov r5, r1 │ │ │ │ │ ldr r0, [r0, #64] @ 0x40 │ │ │ │ │ + str r6, [sp, #8] │ │ │ │ │ + str lr, [sp, #12] │ │ │ │ │ bl 0 │ │ │ │ │ R_ARM_CALL fftw_plan_awake │ │ │ │ │ - ldr r0, [r4, #68] @ 0x44 │ │ │ │ │ + ldr r6, [sp, #8] │ │ │ │ │ mov r1, r5 │ │ │ │ │ - pop {r4, r5, r6, lr} │ │ │ │ │ + ldr lr, [sp, #12] │ │ │ │ │ + ldr r0, [r4, #68] @ 0x44 │ │ │ │ │ + ldrd r4, [sp] │ │ │ │ │ + add sp, sp, #16 │ │ │ │ │ b 0 │ │ │ │ │ R_ARM_JUMP24 fftw_plan_awake │ │ │ │ │ │ │ │ │ │ -000005f4 : │ │ │ │ │ +0000066c : │ │ │ │ │ fftw_mpi_rdft2_rank_geq2_register(): │ │ │ │ │ - push {r4, r5, r6, lr} │ │ │ │ │ - ldr r5, [pc, #72] @ 648 │ │ │ │ │ + strd r4, [sp, #-16]! │ │ │ │ │ mov r4, r0 │ │ │ │ │ + mov r0, #12 │ │ │ │ │ + ldr r5, [pc, #84] @ 6d4 │ │ │ │ │ + str r6, [sp, #8] │ │ │ │ │ + str lr, [sp, #12] │ │ │ │ │ add r5, pc, r5 │ │ │ │ │ mov r1, r5 │ │ │ │ │ - mov r0, #12 │ │ │ │ │ bl 0 │ │ │ │ │ R_ARM_CALL fftw_mksolver │ │ │ │ │ mov r3, #0 │ │ │ │ │ - str r3, [r0, #8] │ │ │ │ │ mov r1, r0 │ │ │ │ │ + str r3, [r0, #8] │ │ │ │ │ mov r0, r4 │ │ │ │ │ bl 0 │ │ │ │ │ R_ARM_CALL fftw_solver_register │ │ │ │ │ mov r1, r5 │ │ │ │ │ mov r0, #12 │ │ │ │ │ bl 0 │ │ │ │ │ R_ARM_CALL fftw_mksolver │ │ │ │ │ mov r3, #1 │ │ │ │ │ + ldr r6, [sp, #8] │ │ │ │ │ mov r1, r0 │ │ │ │ │ + ldr lr, [sp, #12] │ │ │ │ │ str r3, [r0, #8] │ │ │ │ │ mov r0, r4 │ │ │ │ │ - pop {r4, r5, r6, lr} │ │ │ │ │ + ldrd r4, [sp] │ │ │ │ │ + add sp, sp, #16 │ │ │ │ │ b 0 │ │ │ │ │ R_ARM_JUMP24 fftw_solver_register │ │ │ │ │ - .word 0x00000040 │ │ │ │ │ + .word 0x00000048 │ │ │ │ │ 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: 4360 (bytes into file) │ │ │ │ │ + Start of section headers: 4520 (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 0x1108: │ │ │ │ │ +There are 15 section headers, starting at offset 0x11a8: │ │ │ │ │ │ │ │ │ │ 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 00093c 00 AX 0 0 4 │ │ │ │ │ - [ 2] .rel.text REL 00000000 000ef0 000168 08 I 12 1 4 │ │ │ │ │ - [ 3] .data PROGBITS 00000000 000970 000000 00 WA 0 0 1 │ │ │ │ │ - [ 4] .bss NOBITS 00000000 000970 000000 00 WA 0 0 1 │ │ │ │ │ - [ 5] .rodata.str1.4 PROGBITS 00000000 000970 00003d 01 AMS 0 0 4 │ │ │ │ │ - [ 6] .data.rel.ro PROGBITS 00000000 0009ad 000010 00 WA 0 0 4 │ │ │ │ │ - [ 7] .rel.data.rel.ro REL 00000000 001058 000020 08 I 12 6 4 │ │ │ │ │ - [ 8] .data.rel.ro.local PROGBITS 00000000 0009bd 00000c 00 WA 0 0 4 │ │ │ │ │ - [ 9] .rel.data.rel.ro.local REL 00000000 001078 000008 08 I 12 8 4 │ │ │ │ │ - [10] .note.GNU-stack PROGBITS 00000000 0009c9 000000 00 0 0 1 │ │ │ │ │ - [11] .ARM.attributes ARM_ATTRIBUTES 00000000 0009c9 00002b 00 0 0 1 │ │ │ │ │ - [12] .symtab SYMTAB 00000000 0009f4 0002e0 10 13 23 4 │ │ │ │ │ - [13] .strtab STRTAB 00000000 000cd4 00021a 00 0 0 1 │ │ │ │ │ - [14] .shstrtab STRTAB 00000000 001080 000087 00 0 0 1 │ │ │ │ │ + [ 1] .text PROGBITS 00000000 000034 0009dc 00 AX 0 0 4 │ │ │ │ │ + [ 2] .rel.text REL 00000000 000f90 000168 08 I 12 1 4 │ │ │ │ │ + [ 3] .data PROGBITS 00000000 000a10 000000 00 WA 0 0 1 │ │ │ │ │ + [ 4] .bss NOBITS 00000000 000a10 000000 00 WA 0 0 1 │ │ │ │ │ + [ 5] .rodata.str1.4 PROGBITS 00000000 000a10 00003d 01 AMS 0 0 4 │ │ │ │ │ + [ 6] .data.rel.ro PROGBITS 00000000 000a4d 000010 00 WA 0 0 4 │ │ │ │ │ + [ 7] .rel.data.rel.ro REL 00000000 0010f8 000020 08 I 12 6 4 │ │ │ │ │ + [ 8] .data.rel.ro.local PROGBITS 00000000 000a5d 00000c 00 WA 0 0 4 │ │ │ │ │ + [ 9] .rel.data.rel.ro.local REL 00000000 001118 000008 08 I 12 8 4 │ │ │ │ │ + [10] .note.GNU-stack PROGBITS 00000000 000a69 000000 00 0 0 1 │ │ │ │ │ + [11] .ARM.attributes ARM_ATTRIBUTES 00000000 000a69 00002b 00 0 0 1 │ │ │ │ │ + [12] .symtab SYMTAB 00000000 000a94 0002e0 10 13 23 4 │ │ │ │ │ + [13] .strtab STRTAB 00000000 000d74 00021a 00 0 0 1 │ │ │ │ │ + [14] .shstrtab STRTAB 00000000 001120 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: 00000000 0 NOTYPE LOCAL DEFAULT 1 $a │ │ │ │ │ - 2: 00000000 144 FUNC LOCAL DEFAULT 1 apply_r2c │ │ │ │ │ - 3: 00000090 148 FUNC LOCAL DEFAULT 1 apply_c2r │ │ │ │ │ + 2: 00000000 172 FUNC LOCAL DEFAULT 1 apply_r2c │ │ │ │ │ + 3: 000000ac 176 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: 00000124 104 FUNC LOCAL DEFAULT 1 print │ │ │ │ │ - 9: 00000180 0 NOTYPE LOCAL DEFAULT 1 $d │ │ │ │ │ - 10: 0000018c 0 NOTYPE LOCAL DEFAULT 1 $a │ │ │ │ │ - 11: 0000018c 36 FUNC LOCAL DEFAULT 1 destroy │ │ │ │ │ - 12: 000001b0 1796 FUNC LOCAL DEFAULT 1 mkplan │ │ │ │ │ - 13: 000008a8 0 NOTYPE LOCAL DEFAULT 1 $d │ │ │ │ │ - 14: 000008b4 0 NOTYPE LOCAL DEFAULT 1 $a │ │ │ │ │ - 15: 000008b4 48 FUNC LOCAL DEFAULT 1 awake │ │ │ │ │ - 16: 00000938 0 NOTYPE LOCAL DEFAULT 1 $d │ │ │ │ │ + 8: 0000015c 116 FUNC LOCAL DEFAULT 1 print │ │ │ │ │ + 9: 000001c4 0 NOTYPE LOCAL DEFAULT 1 $d │ │ │ │ │ + 10: 000001d0 0 NOTYPE LOCAL DEFAULT 1 $a │ │ │ │ │ + 11: 000001d0 48 FUNC LOCAL DEFAULT 1 destroy │ │ │ │ │ + 12: 00000200 1836 FUNC LOCAL DEFAULT 1 mkplan │ │ │ │ │ + 13: 00000920 0 NOTYPE LOCAL DEFAULT 1 $d │ │ │ │ │ + 14: 0000092c 0 NOTYPE LOCAL DEFAULT 1 $a │ │ │ │ │ + 15: 0000092c 68 FUNC LOCAL DEFAULT 1 awake │ │ │ │ │ + 16: 000009d8 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: 000008e4 88 FUNC GLOBAL DEFAULT 1 fftw_mpi_rdft2_rank_geq2_transposed_register │ │ │ │ │ + 42: 00000970 108 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,59 +1,59 @@ │ │ │ │ │ │ │ │ │ │ -Relocation section '.rel.text' at offset 0xef0 contains 45 entries: │ │ │ │ │ +Relocation section '.rel.text' at offset 0xf90 contains 45 entries: │ │ │ │ │ Offset Info Type Sym. Value Symbol's Name │ │ │ │ │ -00000180 00000603 R_ARM_REL32 00000004 .LC1 │ │ │ │ │ -00000184 00000703 R_ARM_REL32 00000008 .LC2 │ │ │ │ │ -00000188 00000503 R_ARM_REL32 00000000 .LC0 │ │ │ │ │ -00000198 0000171c R_ARM_CALL 00000000 fftw_plan_destroy_internal │ │ │ │ │ -000001a0 0000171c R_ARM_CALL 00000000 fftw_plan_destroy_internal │ │ │ │ │ -000001ac 0000171d R_ARM_JUMP24 00000000 fftw_plan_destroy_internal │ │ │ │ │ -00000238 0000181c R_ARM_CALL 00000000 fftw_mpi_is_local_after │ │ │ │ │ -00000264 0000181c R_ARM_CALL 00000000 fftw_mpi_is_local_after │ │ │ │ │ -0000027c 0000181c R_ARM_CALL 00000000 fftw_mpi_is_local_after │ │ │ │ │ -00000290 0000191c R_ARM_CALL 00000000 fftw_mpi_num_blocks │ │ │ │ │ -00000334 00001a1c R_ARM_CALL 00000000 MPI_Comm_rank │ │ │ │ │ -00000340 00001b1c R_ARM_CALL 00000000 MPI_Comm_size │ │ │ │ │ -00000350 00001c1c R_ARM_CALL 00000000 fftw_mktensor │ │ │ │ │ -000004d0 00001d1c R_ARM_CALL 00000000 fftw_mpi_block │ │ │ │ │ -00000510 00001e1c R_ARM_CALL 00000000 fftw_mktensor_2d │ │ │ │ │ -00000534 00001f1c R_ARM_CALL 00000000 fftw_mkproblem_rdft2_d │ │ │ │ │ -00000540 0000201c R_ARM_CALL 00000000 fftw_mkplan_d │ │ │ │ │ -00000554 0000211c R_ARM_CALL 00000000 fftw_mpi_any_true │ │ │ │ │ -000005e4 0000221c R_ARM_CALL 00000000 fftw_mpi_mkproblem_transpose │ │ │ │ │ -000005f0 0000201c R_ARM_CALL 00000000 fftw_mkplan_d │ │ │ │ │ -00000604 0000211c R_ARM_CALL 00000000 fftw_mpi_any_true │ │ │ │ │ -00000624 00001d1c R_ARM_CALL 00000000 fftw_mpi_block │ │ │ │ │ -00000644 0000231c R_ARM_CALL 00000000 fftw_mktensor_1d │ │ │ │ │ -00000668 00001e1c R_ARM_CALL 00000000 fftw_mktensor_2d │ │ │ │ │ -0000068c 0000241c R_ARM_CALL 00000000 fftw_mkproblem_dft_d │ │ │ │ │ -00000698 0000201c R_ARM_CALL 00000000 fftw_mkplan_d │ │ │ │ │ -000006ac 0000211c R_ARM_CALL 00000000 fftw_mpi_any_true │ │ │ │ │ -000006d8 0000251c R_ARM_CALL 00000000 fftw_mkplan_rdft │ │ │ │ │ -00000720 0000261c R_ARM_CALL 00000000 fftw_ops_add │ │ │ │ │ -0000072c 0000271c R_ARM_CALL 00000000 fftw_ops_add2 │ │ │ │ │ -00000744 0000171c R_ARM_CALL 00000000 fftw_plan_destroy_internal │ │ │ │ │ -0000074c 0000171c R_ARM_CALL 00000000 fftw_plan_destroy_internal │ │ │ │ │ -00000754 0000171c R_ARM_CALL 00000000 fftw_plan_destroy_internal │ │ │ │ │ -0000086c 0000181c R_ARM_CALL 00000000 fftw_mpi_is_local_after │ │ │ │ │ -00000884 0000191c R_ARM_CALL 00000000 fftw_mpi_num_blocks │ │ │ │ │ -00000898 0000281c R_ARM_CALL 00000000 fftw_mpi_rdft2_serial_applicable │ │ │ │ │ -000008ac 00001103 R_ARM_REL32 00000000 .data.rel.ro │ │ │ │ │ -000008c4 0000291c R_ARM_CALL 00000000 fftw_plan_awake │ │ │ │ │ -000008d0 0000291c R_ARM_CALL 00000000 fftw_plan_awake │ │ │ │ │ -000008e0 0000291d R_ARM_JUMP24 00000000 fftw_plan_awake │ │ │ │ │ -000008fc 00002b1c R_ARM_CALL 00000000 fftw_mksolver │ │ │ │ │ -00000910 00002c1c R_ARM_CALL 00000000 fftw_solver_register │ │ │ │ │ -0000091c 00002b1c R_ARM_CALL 00000000 fftw_mksolver │ │ │ │ │ -00000934 00002c1d R_ARM_JUMP24 00000000 fftw_solver_register │ │ │ │ │ -00000938 00001403 R_ARM_REL32 00000000 .data.rel.ro.local │ │ │ │ │ +000001c4 00000603 R_ARM_REL32 00000004 .LC1 │ │ │ │ │ +000001c8 00000703 R_ARM_REL32 00000008 .LC2 │ │ │ │ │ +000001cc 00000503 R_ARM_REL32 00000000 .LC0 │ │ │ │ │ +000001e0 0000171c R_ARM_CALL 00000000 fftw_plan_destroy_internal │ │ │ │ │ +000001e8 0000171c R_ARM_CALL 00000000 fftw_plan_destroy_internal │ │ │ │ │ +000001fc 0000171d R_ARM_JUMP24 00000000 fftw_plan_destroy_internal │ │ │ │ │ +000002ac 0000181c R_ARM_CALL 00000000 fftw_mpi_is_local_after │ │ │ │ │ +000002d8 0000181c R_ARM_CALL 00000000 fftw_mpi_is_local_after │ │ │ │ │ +000002f0 0000181c R_ARM_CALL 00000000 fftw_mpi_is_local_after │ │ │ │ │ +00000304 0000191c R_ARM_CALL 00000000 fftw_mpi_num_blocks │ │ │ │ │ +000003a8 00001a1c R_ARM_CALL 00000000 MPI_Comm_rank │ │ │ │ │ +000003b4 00001b1c R_ARM_CALL 00000000 MPI_Comm_size │ │ │ │ │ +000003c4 00001c1c R_ARM_CALL 00000000 fftw_mktensor │ │ │ │ │ +0000054c 00001d1c R_ARM_CALL 00000000 fftw_mpi_block │ │ │ │ │ +0000058c 00001e1c R_ARM_CALL 00000000 fftw_mktensor_2d │ │ │ │ │ +000005b0 00001f1c R_ARM_CALL 00000000 fftw_mkproblem_rdft2_d │ │ │ │ │ +000005bc 0000201c R_ARM_CALL 00000000 fftw_mkplan_d │ │ │ │ │ +000005d0 0000211c R_ARM_CALL 00000000 fftw_mpi_any_true │ │ │ │ │ +00000660 0000221c R_ARM_CALL 00000000 fftw_mpi_mkproblem_transpose │ │ │ │ │ +0000066c 0000201c R_ARM_CALL 00000000 fftw_mkplan_d │ │ │ │ │ +00000680 0000211c R_ARM_CALL 00000000 fftw_mpi_any_true │ │ │ │ │ +000006a0 00001d1c R_ARM_CALL 00000000 fftw_mpi_block │ │ │ │ │ +000006c0 0000231c R_ARM_CALL 00000000 fftw_mktensor_1d │ │ │ │ │ +000006e4 00001e1c R_ARM_CALL 00000000 fftw_mktensor_2d │ │ │ │ │ +00000708 0000241c R_ARM_CALL 00000000 fftw_mkproblem_dft_d │ │ │ │ │ +00000714 0000201c R_ARM_CALL 00000000 fftw_mkplan_d │ │ │ │ │ +00000728 0000211c R_ARM_CALL 00000000 fftw_mpi_any_true │ │ │ │ │ +00000754 0000251c R_ARM_CALL 00000000 fftw_mkplan_rdft │ │ │ │ │ +0000079c 0000261c R_ARM_CALL 00000000 fftw_ops_add │ │ │ │ │ +000007a8 0000271c R_ARM_CALL 00000000 fftw_ops_add2 │ │ │ │ │ +000007bc 0000171c R_ARM_CALL 00000000 fftw_plan_destroy_internal │ │ │ │ │ +000007c4 0000171c R_ARM_CALL 00000000 fftw_plan_destroy_internal │ │ │ │ │ +000007cc 0000171c R_ARM_CALL 00000000 fftw_plan_destroy_internal │ │ │ │ │ +000008e4 0000181c R_ARM_CALL 00000000 fftw_mpi_is_local_after │ │ │ │ │ +000008fc 0000191c R_ARM_CALL 00000000 fftw_mpi_num_blocks │ │ │ │ │ +00000910 0000281c R_ARM_CALL 00000000 fftw_mpi_rdft2_serial_applicable │ │ │ │ │ +00000924 00001103 R_ARM_REL32 00000000 .data.rel.ro │ │ │ │ │ +00000944 0000291c R_ARM_CALL 00000000 fftw_plan_awake │ │ │ │ │ +00000950 0000291c R_ARM_CALL 00000000 fftw_plan_awake │ │ │ │ │ +0000096c 0000291d R_ARM_JUMP24 00000000 fftw_plan_awake │ │ │ │ │ +00000990 00002b1c R_ARM_CALL 00000000 fftw_mksolver │ │ │ │ │ +000009a4 00002c1c R_ARM_CALL 00000000 fftw_solver_register │ │ │ │ │ +000009b0 00002b1c R_ARM_CALL 00000000 fftw_mksolver │ │ │ │ │ +000009d4 00002c1d R_ARM_JUMP24 00000000 fftw_solver_register │ │ │ │ │ +000009d8 00001403 R_ARM_REL32 00000000 .data.rel.ro.local │ │ │ │ │ │ │ │ │ │ -Relocation section '.rel.data.rel.ro' at offset 0x1058 contains 4 entries: │ │ │ │ │ +Relocation section '.rel.data.rel.ro' at offset 0x10f8 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 000008b4 awake │ │ │ │ │ -00000008 00000802 R_ARM_ABS32 00000124 print │ │ │ │ │ -0000000c 00000b02 R_ARM_ABS32 0000018c destroy │ │ │ │ │ +00000004 00000f02 R_ARM_ABS32 0000092c awake │ │ │ │ │ +00000008 00000802 R_ARM_ABS32 0000015c print │ │ │ │ │ +0000000c 00000b02 R_ARM_ABS32 000001d0 destroy │ │ │ │ │ │ │ │ │ │ -Relocation section '.rel.data.rel.ro.local' at offset 0x1078 contains 1 entry: │ │ │ │ │ +Relocation section '.rel.data.rel.ro.local' at offset 0x1118 contains 1 entry: │ │ │ │ │ Offset Info Type Sym. Value Symbol's Name │ │ │ │ │ -00000004 00000c02 R_ARM_ABS32 000001b0 mkplan │ │ │ │ │ +00000004 00000c02 R_ARM_ABS32 00000200 mkplan │ │ │ │ ├── objdump --line-numbers --disassemble --demangle --reloc --no-show-raw-insn --section=.text {} │ │ │ │ │ @@ -1,661 +1,701 @@ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ Disassembly of section .text: │ │ │ │ │ │ │ │ │ │ 00000000 : │ │ │ │ │ apply_r2c(): │ │ │ │ │ - push {r4, r5, r6, r7, r8, lr} │ │ │ │ │ + strd r4, [sp, #-24]! @ 0xffffffe8 │ │ │ │ │ mov r4, r0 │ │ │ │ │ - ldr r3, [r4, #80] @ 0x50 │ │ │ │ │ - ldr r0, [r0, #64] @ 0x40 │ │ │ │ │ mov r5, r2 │ │ │ │ │ + ldr r3, [r4, #80] @ 0x50 │ │ │ │ │ + strd r6, [sp, #8] │ │ │ │ │ add r7, r2, #8 │ │ │ │ │ + ldr r0, [r0, #64] @ 0x40 │ │ │ │ │ + str r8, [sp, #16] │ │ │ │ │ ldr r2, [r4, #76] @ 0x4c │ │ │ │ │ cmp r3, #0 │ │ │ │ │ - ldr r8, [r0, #56] @ 0x38 │ │ │ │ │ + str lr, [sp, #20] │ │ │ │ │ sub sp, sp, #8 │ │ │ │ │ + ldr r8, [r0, #56] @ 0x38 │ │ │ │ │ add r2, r1, r2, lsl #3 │ │ │ │ │ - beq 78 │ │ │ │ │ + beq 94 │ │ │ │ │ mov r3, r5 │ │ │ │ │ + mov r6, r5 │ │ │ │ │ str r7, [sp] │ │ │ │ │ blx r8 │ │ │ │ │ - mov r6, r5 │ │ │ │ │ ldr r0, [r4, #68] @ 0x44 │ │ │ │ │ mov r2, r5 │ │ │ │ │ - ldr r3, [r0, #56] @ 0x38 │ │ │ │ │ mov r1, r6 │ │ │ │ │ + ldr r3, [r0, #56] @ 0x38 │ │ │ │ │ blx r3 │ │ │ │ │ ldr r0, [r4, #72] @ 0x48 │ │ │ │ │ mov r3, r5 │ │ │ │ │ - str r7, [sp] │ │ │ │ │ mov r2, r7 │ │ │ │ │ - ldr r4, [r0, #56] @ 0x38 │ │ │ │ │ + str r7, [sp] │ │ │ │ │ mov r1, r5 │ │ │ │ │ + ldr r4, [r0, #56] @ 0x38 │ │ │ │ │ blx r4 │ │ │ │ │ add sp, sp, #8 │ │ │ │ │ - pop {r4, r5, r6, r7, r8, pc} │ │ │ │ │ + ldrd r4, [sp] │ │ │ │ │ + ldrd r6, [sp, #8] │ │ │ │ │ + ldr r8, [sp, #16] │ │ │ │ │ + add sp, sp, #20 │ │ │ │ │ + pop {pc} @ (ldr pc, [sp], #4) │ │ │ │ │ add r3, r1, #8 │ │ │ │ │ + mov r6, r1 │ │ │ │ │ str r3, [sp] │ │ │ │ │ mov r3, r1 │ │ │ │ │ - mov r6, r1 │ │ │ │ │ blx r8 │ │ │ │ │ - b 40 │ │ │ │ │ + b 4c │ │ │ │ │ │ │ │ │ │ -00000090 : │ │ │ │ │ +000000ac : │ │ │ │ │ apply_c2r(): │ │ │ │ │ - push {r4, r5, r6, r7, r8, lr} │ │ │ │ │ + strd r4, [sp, #-24]! @ 0xffffffe8 │ │ │ │ │ mov r4, r0 │ │ │ │ │ + mov r5, r2 │ │ │ │ │ ldr r3, [r4, #80] @ 0x50 │ │ │ │ │ - ldr r0, [r0, #72] @ 0x48 │ │ │ │ │ - cmp r3, #0 │ │ │ │ │ + strd r6, [sp, #8] │ │ │ │ │ mov r6, r1 │ │ │ │ │ - ldr r8, [r0, #56] @ 0x38 │ │ │ │ │ - sub sp, sp, #8 │ │ │ │ │ - mov r5, r2 │ │ │ │ │ add r7, r2, #8 │ │ │ │ │ + ldr r0, [r0, #72] @ 0x48 │ │ │ │ │ add r1, r1, #8 │ │ │ │ │ - beq 110 │ │ │ │ │ - str r2, [sp] │ │ │ │ │ + str r8, [sp, #16] │ │ │ │ │ + str lr, [sp, #20] │ │ │ │ │ + sub sp, sp, #8 │ │ │ │ │ + cmp r3, #0 │ │ │ │ │ + ldr r8, [r0, #56] @ 0x38 │ │ │ │ │ + beq 148 │ │ │ │ │ mov r3, r7 │ │ │ │ │ + str r2, [sp] │ │ │ │ │ mov r2, r6 │ │ │ │ │ - blx r8 │ │ │ │ │ mov r6, r5 │ │ │ │ │ + blx r8 │ │ │ │ │ ldr r0, [r4, #68] @ 0x44 │ │ │ │ │ mov r2, r5 │ │ │ │ │ - ldr r3, [r0, #56] @ 0x38 │ │ │ │ │ mov r1, r6 │ │ │ │ │ + ldr r3, [r0, #56] @ 0x38 │ │ │ │ │ blx r3 │ │ │ │ │ ldr r0, [r4, #64] @ 0x40 │ │ │ │ │ - ldr r2, [r4, #76] @ 0x4c │ │ │ │ │ mov r3, r5 │ │ │ │ │ + mov r1, r5 │ │ │ │ │ + ldr r2, [r4, #76] @ 0x4c │ │ │ │ │ str r7, [sp] │ │ │ │ │ - add r2, r5, r2, lsl #3 │ │ │ │ │ ldr r4, [r0, #56] @ 0x38 │ │ │ │ │ - mov r1, r5 │ │ │ │ │ + add r2, r5, r2, lsl #3 │ │ │ │ │ blx r4 │ │ │ │ │ add sp, sp, #8 │ │ │ │ │ - pop {r4, r5, r6, r7, r8, pc} │ │ │ │ │ + ldrd r4, [sp] │ │ │ │ │ + ldrd r6, [sp, #8] │ │ │ │ │ + ldr r8, [sp, #16] │ │ │ │ │ + add sp, sp, #20 │ │ │ │ │ + pop {pc} @ (ldr pc, [sp], #4) │ │ │ │ │ mov r3, r1 │ │ │ │ │ mov r2, r6 │ │ │ │ │ str r6, [sp] │ │ │ │ │ blx r8 │ │ │ │ │ - b d4 │ │ │ │ │ + b fc │ │ │ │ │ │ │ │ │ │ -00000124 : │ │ │ │ │ +0000015c : │ │ │ │ │ print(): │ │ │ │ │ mov r3, r0 │ │ │ │ │ + mov r0, r1 │ │ │ │ │ + str r4, [sp, #-8]! │ │ │ │ │ ldr r2, [r3, #80] @ 0x50 │ │ │ │ │ - push {r4, lr} │ │ │ │ │ - cmp r2, #2 │ │ │ │ │ - ldr r4, [r1] │ │ │ │ │ + str lr, [sp, #4] │ │ │ │ │ sub sp, sp, #8 │ │ │ │ │ - mov r0, r1 │ │ │ │ │ - beq 174 │ │ │ │ │ - ldr r2, [pc, #52] @ 180 │ │ │ │ │ + ldr r4, [r1] │ │ │ │ │ + cmp r2, #2 │ │ │ │ │ + beq 1b8 │ │ │ │ │ + ldr r2, [pc, #60] @ 1c4 │ │ │ │ │ add r2, pc, r2 │ │ │ │ │ ldr r1, [r3, #72] @ 0x48 │ │ │ │ │ str r1, [sp, #4] │ │ │ │ │ ldr r1, [r3, #68] @ 0x44 │ │ │ │ │ str r1, [sp] │ │ │ │ │ - ldr r1, [pc, #32] @ 184 │ │ │ │ │ + ldr r1, [pc, #40] @ 1c8 │ │ │ │ │ ldr r3, [r3, #64] @ 0x40 │ │ │ │ │ add r1, pc, r1 │ │ │ │ │ blx r4 │ │ │ │ │ add sp, sp, #8 │ │ │ │ │ - pop {r4, pc} │ │ │ │ │ - ldr r2, [pc, #12] @ 188 │ │ │ │ │ + ldr r4, [sp] │ │ │ │ │ + add sp, sp, #4 │ │ │ │ │ + pop {pc} @ (ldr pc, [sp], #4) │ │ │ │ │ + ldr r2, [pc, #12] @ 1cc │ │ │ │ │ add r2, pc, r2 │ │ │ │ │ - b 14c │ │ │ │ │ - .word 0x00000030 │ │ │ │ │ + b 188 │ │ │ │ │ + .word 0x00000038 │ │ │ │ │ R_ARM_REL32 .LC1 │ │ │ │ │ - .word 0x00000018 │ │ │ │ │ + .word 0x00000020 │ │ │ │ │ R_ARM_REL32 .LC2 │ │ │ │ │ .word 0x00000008 │ │ │ │ │ R_ARM_REL32 .LC0 │ │ │ │ │ │ │ │ │ │ -0000018c : │ │ │ │ │ +000001d0 : │ │ │ │ │ destroy(): │ │ │ │ │ - push {r4, lr} │ │ │ │ │ + str r4, [sp, #-8]! │ │ │ │ │ mov r4, r0 │ │ │ │ │ ldr r0, [r0, #72] @ 0x48 │ │ │ │ │ + str lr, [sp, #4] │ │ │ │ │ bl 0 │ │ │ │ │ R_ARM_CALL fftw_plan_destroy_internal │ │ │ │ │ ldr r0, [r4, #68] @ 0x44 │ │ │ │ │ bl 0 │ │ │ │ │ R_ARM_CALL fftw_plan_destroy_internal │ │ │ │ │ + ldr lr, [sp, #4] │ │ │ │ │ ldr r0, [r4, #64] @ 0x40 │ │ │ │ │ - pop {r4, lr} │ │ │ │ │ + ldr r4, [sp] │ │ │ │ │ + add sp, sp, #8 │ │ │ │ │ b 0 │ │ │ │ │ R_ARM_JUMP24 fftw_plan_destroy_internal │ │ │ │ │ │ │ │ │ │ -000001b0 : │ │ │ │ │ +00000200 : │ │ │ │ │ mkplan(): │ │ │ │ │ - push {r4, r5, r6, r7, r8, r9, sl, fp, lr} │ │ │ │ │ + strd r4, [sp, #-36]! @ 0xffffffdc │ │ │ │ │ mov r4, r1 │ │ │ │ │ ldr r1, [r1, #4] │ │ │ │ │ + strd r6, [sp, #8] │ │ │ │ │ + strd r8, [sp, #16] │ │ │ │ │ + strd sl, [sp, #24] │ │ │ │ │ + str lr, [sp, #32] │ │ │ │ │ sub sp, sp, #84 @ 0x54 │ │ │ │ │ ldr r3, [r1] │ │ │ │ │ str r0, [sp, #28] │ │ │ │ │ cmp r3, #1 │ │ │ │ │ - ble 1f4 │ │ │ │ │ + ble 254 │ │ │ │ │ ldr r3, [r0, #8] │ │ │ │ │ mov fp, r2 │ │ │ │ │ cmp r3, #0 │ │ │ │ │ - bne 200 │ │ │ │ │ + bne 274 │ │ │ │ │ ldr r3, [r4, #24] │ │ │ │ │ cmp r3, #8 │ │ │ │ │ - beq 228 │ │ │ │ │ + beq 29c │ │ │ │ │ cmp r3, #4 │ │ │ │ │ - beq 24c │ │ │ │ │ + beq 2c0 │ │ │ │ │ mov r0, #0 │ │ │ │ │ add sp, sp, #84 @ 0x54 │ │ │ │ │ - pop {r4, r5, r6, r7, r8, r9, sl, fp, pc} │ │ │ │ │ + ldrd r4, [sp] │ │ │ │ │ + ldrd r6, [sp, #8] │ │ │ │ │ + ldrd r8, [sp, #16] │ │ │ │ │ + ldrd sl, [sp, #24] │ │ │ │ │ + add sp, sp, #32 │ │ │ │ │ + pop {pc} @ (ldr pc, [sp], #4) │ │ │ │ │ ldr r3, [r2, #164] @ 0xa4 │ │ │ │ │ tst r3, #4096 @ 0x1000 │ │ │ │ │ - bne 1f4 │ │ │ │ │ + bne 254 │ │ │ │ │ ldr r2, [r4, #12] │ │ │ │ │ ldr r3, [r4, #16] │ │ │ │ │ cmp r2, r3 │ │ │ │ │ - beq 1f4 │ │ │ │ │ + beq 254 │ │ │ │ │ ldr r3, [r4, #24] │ │ │ │ │ cmp r3, #8 │ │ │ │ │ - bne 1ec │ │ │ │ │ + bne 24c │ │ │ │ │ ldr r2, [r4, #20] │ │ │ │ │ cmp r2, #0 │ │ │ │ │ - bne 1f4 │ │ │ │ │ + bne 254 │ │ │ │ │ mov r0, #1 │ │ │ │ │ bl 0 │ │ │ │ │ R_ARM_CALL fftw_mpi_is_local_after │ │ │ │ │ cmp r0, #0 │ │ │ │ │ - bne 860 │ │ │ │ │ + bne 8d8 │ │ │ │ │ ldr r3, [r4, #24] │ │ │ │ │ - b 1ec │ │ │ │ │ + b 24c │ │ │ │ │ ldr r3, [r4, #20] │ │ │ │ │ cmp r3, #4 │ │ │ │ │ - bne 1f4 │ │ │ │ │ + bne 254 │ │ │ │ │ mov r2, #1 │ │ │ │ │ ldr r1, [r4, #4] │ │ │ │ │ mov r0, r2 │ │ │ │ │ bl 0 │ │ │ │ │ R_ARM_CALL fftw_mpi_is_local_after │ │ │ │ │ cmp r0, #0 │ │ │ │ │ - beq 1f4 │ │ │ │ │ + beq 254 │ │ │ │ │ ldr r1, [r4, #4] │ │ │ │ │ mov r2, #0 │ │ │ │ │ mov r0, #2 │ │ │ │ │ bl 0 │ │ │ │ │ R_ARM_CALL fftw_mpi_is_local_after │ │ │ │ │ cmp r0, #0 │ │ │ │ │ - beq 1f4 │ │ │ │ │ + beq 254 │ │ │ │ │ ldr r3, [r4, #4] │ │ │ │ │ ldmib r3, {r0, r1} │ │ │ │ │ bl 0 │ │ │ │ │ R_ARM_CALL fftw_mpi_num_blocks │ │ │ │ │ cmp r0, #1 │ │ │ │ │ - bne 1f4 │ │ │ │ │ + bne 254 │ │ │ │ │ ldr r3, [fp, #164] @ 0xa4 │ │ │ │ │ tst r3, #8 │ │ │ │ │ - bne 894 │ │ │ │ │ + bne 90c │ │ │ │ │ + ldr r2, [r4, #8] │ │ │ │ │ ldr r3, [r4, #12] │ │ │ │ │ - str r3, [sp, #24] │ │ │ │ │ - ldr r3, [r4, #20] │ │ │ │ │ ldr r6, [r4, #16] │ │ │ │ │ - ldr r2, [r4, #8] │ │ │ │ │ - ldr r1, [sp, #28] │ │ │ │ │ - cmp r3, #0 │ │ │ │ │ - ldr r1, [r1, #8] │ │ │ │ │ lsl r2, r2, #3 │ │ │ │ │ + ldr r1, [sp, #28] │ │ │ │ │ + str r3, [sp, #24] │ │ │ │ │ + ldr r3, [r4, #20] │ │ │ │ │ add r9, r6, #8 │ │ │ │ │ + ldr r1, [r1, #8] │ │ │ │ │ + cmp r3, #0 │ │ │ │ │ str r3, [sp, #32] │ │ │ │ │ - bne 75c │ │ │ │ │ + bne 7d4 │ │ │ │ │ ldr r3, [sp, #24] │ │ │ │ │ cmp r1, #0 │ │ │ │ │ add r2, r3, r2 │ │ │ │ │ str r2, [sp, #36] @ 0x24 │ │ │ │ │ - bne 300 │ │ │ │ │ + bne 374 │ │ │ │ │ ldr r2, [fp, #164] @ 0xa4 │ │ │ │ │ tst r2, #4096 @ 0x1000 │ │ │ │ │ addeq r2, r3, #8 │ │ │ │ │ moveq sl, r3 │ │ │ │ │ - beq 308 │ │ │ │ │ + beq 37c │ │ │ │ │ mov r2, r9 │ │ │ │ │ mov sl, r6 │ │ │ │ │ - str r9, [sp, #68] @ 0x44 │ │ │ │ │ - str r3, [sp, #48] @ 0x30 │ │ │ │ │ str r9, [sp, #24] │ │ │ │ │ + str r3, [sp, #48] @ 0x30 │ │ │ │ │ mov r3, #1 │ │ │ │ │ - mov r9, r2 │ │ │ │ │ str sl, [sp, #52] @ 0x34 │ │ │ │ │ - str r6, [sp, #64] @ 0x40 │ │ │ │ │ - str r6, [sp, #60] @ 0x3c │ │ │ │ │ + str r9, [sp, #68] @ 0x44 │ │ │ │ │ + mov r9, r2 │ │ │ │ │ str r3, [sp, #56] @ 0x38 │ │ │ │ │ - add r1, sp, #72 @ 0x48 │ │ │ │ │ + str r6, [sp, #60] @ 0x3c │ │ │ │ │ + str r6, [sp, #64] @ 0x40 │ │ │ │ │ ldr r0, [r4, #28] │ │ │ │ │ + add r1, sp, #72 @ 0x48 │ │ │ │ │ bl 0 │ │ │ │ │ R_ARM_CALL MPI_Comm_rank │ │ │ │ │ - add r1, sp, #76 @ 0x4c │ │ │ │ │ ldr r0, [r4, #28] │ │ │ │ │ + add r1, sp, #76 @ 0x4c │ │ │ │ │ bl 0 │ │ │ │ │ R_ARM_CALL MPI_Comm_size │ │ │ │ │ ldr r2, [r4, #4] │ │ │ │ │ ldr r0, [r2] │ │ │ │ │ sub r0, r0, #1 │ │ │ │ │ bl 0 │ │ │ │ │ R_ARM_CALL fftw_mktensor │ │ │ │ │ - ldr lr, [r4, #8] │ │ │ │ │ - lsl lr, lr, #1 │ │ │ │ │ mov r7, r0 │ │ │ │ │ ldr r0, [r4, #4] │ │ │ │ │ + ldr lr, [r4, #8] │ │ │ │ │ ldr r8, [r0] │ │ │ │ │ + lsl lr, lr, #1 │ │ │ │ │ add r1, r8, r8, lsl #1 │ │ │ │ │ + add ip, r8, r8, lsl #1 │ │ │ │ │ add r1, r0, r1, lsl #2 │ │ │ │ │ + lsl ip, ip, #2 │ │ │ │ │ ldr r1, [r1, #-8] │ │ │ │ │ - add r2, r8, r8, lsl #1 │ │ │ │ │ + add r2, r7, ip │ │ │ │ │ add r1, r1, r1, lsr #31 │ │ │ │ │ asr r1, r1, #1 │ │ │ │ │ add r1, r1, #1 │ │ │ │ │ - lsl ip, r2, #2 │ │ │ │ │ - add r2, r7, r2, lsl #2 │ │ │ │ │ str r1, [r2, #-20] @ 0xffffffec │ │ │ │ │ add r1, r8, r8, lsl #1 │ │ │ │ │ add r1, r7, r1, lsl #2 │ │ │ │ │ str lr, [r1, #-12] │ │ │ │ │ str lr, [r2, #-16] │ │ │ │ │ subs lr, r8, #3 │ │ │ │ │ - bmi 458 │ │ │ │ │ + bmi 4d0 │ │ │ │ │ cmp r8, #4 │ │ │ │ │ sub r1, ip, #16 │ │ │ │ │ sub r5, ip, #20 │ │ │ │ │ - ble 858 │ │ │ │ │ - sub r8, r8, #5 │ │ │ │ │ + ble 8d0 │ │ │ │ │ ldr r1, [r7, r1] │ │ │ │ │ - ldr r5, [r7, r5] │ │ │ │ │ + sub r8, r8, #5 │ │ │ │ │ add ip, r0, ip │ │ │ │ │ and r8, r8, #1 │ │ │ │ │ + ldr r5, [r7, r5] │ │ │ │ │ mul r1, r5, r1 │ │ │ │ │ - ldr r3, [ip, #-20] @ 0xffffffec │ │ │ │ │ - str r1, [r2, #-24] @ 0xffffffe8 │ │ │ │ │ - str r1, [r2, #-28] @ 0xffffffe4 │ │ │ │ │ - mul r1, r3, r1 │ │ │ │ │ sub lr, lr, #2 │ │ │ │ │ - str r3, [r2, #-32] @ 0xffffffe0 │ │ │ │ │ - cmp lr, r8 │ │ │ │ │ - ldr r5, [ip, #-32] @ 0xffffffe0 │ │ │ │ │ - str r5, [r2, #-44] @ 0xffffffd4 │ │ │ │ │ - str r1, [r2, #-36] @ 0xffffffdc │ │ │ │ │ - str r1, [r2, #-40] @ 0xffffffd8 │ │ │ │ │ sub ip, ip, #24 │ │ │ │ │ + ldr r3, [ip, #4] │ │ │ │ │ + cmp lr, r8 │ │ │ │ │ sub r2, r2, #24 │ │ │ │ │ - bne 3cc │ │ │ │ │ + str r3, [r2, #-8] │ │ │ │ │ + str r1, [r2, #-4] │ │ │ │ │ + str r1, [r2] │ │ │ │ │ + mul r1, r3, r1 │ │ │ │ │ + ldr r5, [ip, #-8] │ │ │ │ │ + str r5, [r2, #-20] @ 0xffffffec │ │ │ │ │ + str r1, [r2, #-16] │ │ │ │ │ + str r1, [r2, #-12] │ │ │ │ │ + bne 440 │ │ │ │ │ add r2, r8, r8, lsl #1 │ │ │ │ │ - add lr, r0, r2, lsl #2 │ │ │ │ │ - add r2, r7, r2, lsl #2 │ │ │ │ │ - ldr r5, [r2, #20] │ │ │ │ │ + cmp r8, #0 │ │ │ │ │ + lsl r2, r2, #2 │ │ │ │ │ + add lr, r0, r2 │ │ │ │ │ + add r2, r7, r2 │ │ │ │ │ ldr r1, [r2, #16] │ │ │ │ │ + ldr r5, [r2, #20] │ │ │ │ │ ldr ip, [lr, #16] │ │ │ │ │ mul r1, r5, r1 │ │ │ │ │ - cmp r8, #0 │ │ │ │ │ sub r5, r8, #1 │ │ │ │ │ str ip, [r2, #4] │ │ │ │ │ - str r1, [r2, #12] │ │ │ │ │ str r1, [r2, #8] │ │ │ │ │ - beq 458 │ │ │ │ │ - mul r1, ip, r1 │ │ │ │ │ - add r5, r5, r5, lsl #1 │ │ │ │ │ + str r1, [r2, #12] │ │ │ │ │ + beq 4d0 │ │ │ │ │ ldr lr, [lr, #4] │ │ │ │ │ + add r5, r5, r5, lsl #1 │ │ │ │ │ + mul r1, ip, r1 │ │ │ │ │ add r5, r7, r5, lsl #2 │ │ │ │ │ str lr, [r2, #-8] │ │ │ │ │ str r1, [r5, #12] │ │ │ │ │ str r1, [r2, #-4] │ │ │ │ │ ldr ip, [r7] │ │ │ │ │ cmp ip, #1 │ │ │ │ │ - ble 850 │ │ │ │ │ + ble 8c8 │ │ │ │ │ add ip, ip, ip, lsl #1 │ │ │ │ │ - sub ip, ip, #3 │ │ │ │ │ mov r2, #0 │ │ │ │ │ mov r5, #1 │ │ │ │ │ add lr, r7, #16 │ │ │ │ │ + sub ip, ip, #3 │ │ │ │ │ ldr r3, [lr, r2, lsl #2] │ │ │ │ │ add r2, r2, #3 │ │ │ │ │ cmp ip, r2 │ │ │ │ │ mul r5, r3, r5 │ │ │ │ │ - bne 478 │ │ │ │ │ + bne 4f0 │ │ │ │ │ ldr r2, [r4, #20] │ │ │ │ │ cmp r2, #4 │ │ │ │ │ - beq 7d4 │ │ │ │ │ + beq 84c │ │ │ │ │ mov r8, #1 │ │ │ │ │ cmp r2, #0 │ │ │ │ │ strne r8, [sp, #44] @ 0x2c │ │ │ │ │ - moveq r3, #2 │ │ │ │ │ - streq r3, [sp, #44] @ 0x2c │ │ │ │ │ + bne 528 │ │ │ │ │ + mov r3, #2 │ │ │ │ │ + str r3, [sp, #44] @ 0x2c │ │ │ │ │ ldr r3, [r7, #4] │ │ │ │ │ ldr r2, [r7, #8] │ │ │ │ │ mul r1, r2, r3 │ │ │ │ │ ldr r3, [sp, #32] │ │ │ │ │ ldr r2, [sp, #72] @ 0x48 │ │ │ │ │ - add r3, r0, r3, lsl #2 │ │ │ │ │ str r1, [sp, #40] @ 0x28 │ │ │ │ │ + add r3, r0, r3, lsl #2 │ │ │ │ │ ldr r0, [r0, #4] │ │ │ │ │ ldr r1, [r3, #8] │ │ │ │ │ bl 0 │ │ │ │ │ R_ARM_CALL fftw_mpi_block │ │ │ │ │ ldr r1, [r4, #4] │ │ │ │ │ ldr r3, [r1] │ │ │ │ │ sub r2, r3, #2 │ │ │ │ │ add r3, r3, r3, lsl #1 │ │ │ │ │ - add r1, r1, r3, lsl #2 │ │ │ │ │ add r2, r2, r2, lsl #1 │ │ │ │ │ - ldr r3, [r1, #-8] │ │ │ │ │ + add r1, r1, r3, lsl #2 │ │ │ │ │ add r2, r7, r2, lsl #2 │ │ │ │ │ + ldr r3, [r1, #-8] │ │ │ │ │ str r3, [r2, #4] │ │ │ │ │ ldr r2, [sp, #40] @ 0x28 │ │ │ │ │ + str r8, [sp] │ │ │ │ │ ldr r3, [sp, #44] @ 0x2c │ │ │ │ │ mov r1, r2 │ │ │ │ │ str r3, [sp, #4] │ │ │ │ │ - str r8, [sp] │ │ │ │ │ ldr r3, [r4, #8] │ │ │ │ │ bl 0 │ │ │ │ │ R_ARM_CALL fftw_mktensor_2d │ │ │ │ │ ldr r3, [r4, #20] │ │ │ │ │ + mov r1, r0 │ │ │ │ │ + mov r0, r7 │ │ │ │ │ + str sl, [sp] │ │ │ │ │ ldr r2, [sp, #48] @ 0x30 │ │ │ │ │ + str r9, [sp, #4] │ │ │ │ │ str r3, [sp, #8] │ │ │ │ │ - str sl, [sp] │ │ │ │ │ ldr r3, [sp, #36] @ 0x24 │ │ │ │ │ - str r9, [sp, #4] │ │ │ │ │ - mov r1, r0 │ │ │ │ │ - mov r0, r7 │ │ │ │ │ bl 0 │ │ │ │ │ R_ARM_CALL fftw_mkproblem_rdft2_d │ │ │ │ │ mov r1, r0 │ │ │ │ │ mov r0, fp │ │ │ │ │ bl 0 │ │ │ │ │ R_ARM_CALL fftw_mkplan_d │ │ │ │ │ - ldr r1, [r4, #28] │ │ │ │ │ mov sl, r0 │ │ │ │ │ clz r0, r0 │ │ │ │ │ + ldr r1, [r4, #28] │ │ │ │ │ lsr r0, r0, #5 │ │ │ │ │ bl 0 │ │ │ │ │ R_ARM_CALL fftw_mpi_any_true │ │ │ │ │ cmp r0, #0 │ │ │ │ │ - bne 818 │ │ │ │ │ + bne 890 │ │ │ │ │ ldr r3, [r4, #8] │ │ │ │ │ ldr r2, [sp, #56] @ 0x38 │ │ │ │ │ mul r5, r3, r5 │ │ │ │ │ ldr r3, [r4, #4] │ │ │ │ │ add r2, r3, r2, lsl #2 │ │ │ │ │ + ldr r8, [r3, #16] │ │ │ │ │ ldr r9, [r2, #20] │ │ │ │ │ ldr r2, [r3] │ │ │ │ │ - ldr r8, [r3, #16] │ │ │ │ │ cmp r2, #2 │ │ │ │ │ - bne 5a4 │ │ │ │ │ + bne 620 │ │ │ │ │ add r2, r8, r8, lsr #31 │ │ │ │ │ - asr r2, r2, #1 │ │ │ │ │ cmp r8, r9 │ │ │ │ │ + asr r2, r2, #1 │ │ │ │ │ add r2, r2, #1 │ │ │ │ │ moveq r9, r2 │ │ │ │ │ - moveq r8, r9 │ │ │ │ │ movne r8, r2 │ │ │ │ │ + moveq r8, r9 │ │ │ │ │ ldr r2, [r4, #20] │ │ │ │ │ lsl ip, r5, #1 │ │ │ │ │ - cmp r2, #0 │ │ │ │ │ ldr r0, [r3, #4] │ │ │ │ │ - ldr r1, [r4, #28] │ │ │ │ │ str ip, [sp, #32] │ │ │ │ │ - bne 7a8 │ │ │ │ │ - str r2, [sp, #16] │ │ │ │ │ - str r1, [sp, #12] │ │ │ │ │ + ldr r1, [r4, #28] │ │ │ │ │ + cmp r2, #0 │ │ │ │ │ + bne 820 │ │ │ │ │ str r9, [sp, #8] │ │ │ │ │ + str r1, [sp, #12] │ │ │ │ │ + mov r1, r8 │ │ │ │ │ + str r2, [sp, #16] │ │ │ │ │ + mov r2, ip │ │ │ │ │ ldr r3, [r3, #8] │ │ │ │ │ + str r6, [sp] │ │ │ │ │ str r3, [sp, #4] │ │ │ │ │ ldr r3, [sp, #52] @ 0x34 │ │ │ │ │ - mov r2, ip │ │ │ │ │ - mov r1, r8 │ │ │ │ │ - str r6, [sp] │ │ │ │ │ bl 0 │ │ │ │ │ R_ARM_CALL fftw_mpi_mkproblem_transpose │ │ │ │ │ mov r1, r0 │ │ │ │ │ mov r0, fp │ │ │ │ │ bl 0 │ │ │ │ │ R_ARM_CALL fftw_mkplan_d │ │ │ │ │ - ldr r1, [r4, #28] │ │ │ │ │ mov r6, r0 │ │ │ │ │ clz r0, r0 │ │ │ │ │ + ldr r1, [r4, #28] │ │ │ │ │ lsr r0, r0, #5 │ │ │ │ │ bl 0 │ │ │ │ │ R_ARM_CALL fftw_mpi_any_true │ │ │ │ │ cmp r0, #0 │ │ │ │ │ - bne 73c │ │ │ │ │ + bne 7b4 │ │ │ │ │ ldr r3, [r4, #4] │ │ │ │ │ mov r1, r9 │ │ │ │ │ - ldr r2, [sp, #72] @ 0x48 │ │ │ │ │ mov r0, r8 │ │ │ │ │ + ldr r2, [sp, #72] @ 0x48 │ │ │ │ │ ldr r7, [r3, #4] │ │ │ │ │ bl 0 │ │ │ │ │ R_ARM_CALL fftw_mpi_block │ │ │ │ │ ldr r3, [r4, #4] │ │ │ │ │ + mov r8, r0 │ │ │ │ │ ldr r2, [sp, #32] │ │ │ │ │ mul r7, r5, r7 │ │ │ │ │ - mov r1, r2 │ │ │ │ │ - lsl r7, r7, #1 │ │ │ │ │ - mov r8, r0 │ │ │ │ │ ldr r0, [r3, #4] │ │ │ │ │ + lsl r7, r7, #1 │ │ │ │ │ + mov r1, r2 │ │ │ │ │ bl 0 │ │ │ │ │ R_ARM_CALL fftw_mktensor_1d │ │ │ │ │ mov r3, #2 │ │ │ │ │ mov r2, r7 │ │ │ │ │ mov r1, r7 │ │ │ │ │ - str r3, [sp, #4] │ │ │ │ │ - str r3, [sp] │ │ │ │ │ - mov r3, r5 │ │ │ │ │ mov r9, r0 │ │ │ │ │ mov r0, r8 │ │ │ │ │ + str r3, [sp] │ │ │ │ │ + str r3, [sp, #4] │ │ │ │ │ + mov r3, r5 │ │ │ │ │ bl 0 │ │ │ │ │ R_ARM_CALL fftw_mktensor_2d │ │ │ │ │ + ldr r2, [sp, #60] @ 0x3c │ │ │ │ │ + mov r1, r0 │ │ │ │ │ + mov r0, r9 │ │ │ │ │ ldr r3, [sp, #68] @ 0x44 │ │ │ │ │ str r3, [sp, #4] │ │ │ │ │ ldr r3, [sp, #64] @ 0x40 │ │ │ │ │ - ldr r2, [sp, #60] @ 0x3c │ │ │ │ │ str r3, [sp] │ │ │ │ │ ldr r3, [sp, #24] │ │ │ │ │ - mov r1, r0 │ │ │ │ │ - mov r0, r9 │ │ │ │ │ bl 0 │ │ │ │ │ R_ARM_CALL fftw_mkproblem_dft_d │ │ │ │ │ mov r1, r0 │ │ │ │ │ mov r0, fp │ │ │ │ │ bl 0 │ │ │ │ │ R_ARM_CALL fftw_mkplan_d │ │ │ │ │ - ldr r1, [r4, #28] │ │ │ │ │ mov r7, r0 │ │ │ │ │ clz r0, r0 │ │ │ │ │ + ldr r1, [r4, #28] │ │ │ │ │ lsr r0, r0, #5 │ │ │ │ │ bl 0 │ │ │ │ │ R_ARM_CALL fftw_mpi_any_true │ │ │ │ │ cmp r0, #0 │ │ │ │ │ - bne 740 │ │ │ │ │ + bne 7b8 │ │ │ │ │ ldr r3, [r4, #20] │ │ │ │ │ cmp r3, #0 │ │ │ │ │ - bne 80c │ │ │ │ │ - ldr r2, [pc, #476] @ 8a8 │ │ │ │ │ + bne 884 │ │ │ │ │ + ldr r2, [pc, #472] @ 920 │ │ │ │ │ add r2, pc, r2 │ │ │ │ │ - ldr r1, [pc, #472] @ 8ac │ │ │ │ │ + ldr r1, [pc, #468] @ 924 │ │ │ │ │ mov r0, #88 @ 0x58 │ │ │ │ │ add r1, pc, r1 │ │ │ │ │ bl 0 │ │ │ │ │ R_ARM_CALL fftw_mkplan_rdft │ │ │ │ │ ldr r3, [sp, #28] │ │ │ │ │ + mov r5, r0 │ │ │ │ │ add r1, r7, #8 │ │ │ │ │ + str sl, [r0, #64] @ 0x40 │ │ │ │ │ + str r6, [r0, #68] @ 0x44 │ │ │ │ │ + str r7, [r0, #72] @ 0x48 │ │ │ │ │ ldr r3, [r3, #8] │ │ │ │ │ cmp r3, #0 │ │ │ │ │ ldreq r3, [fp, #164] @ 0xa4 │ │ │ │ │ movne r3, #2 │ │ │ │ │ andeq r3, r3, #4096 @ 0x1000 │ │ │ │ │ str r3, [r0, #80] @ 0x50 │ │ │ │ │ ldr r3, [r4, #8] │ │ │ │ │ add r4, r0, #8 │ │ │ │ │ - str r3, [r0, #76] @ 0x4c │ │ │ │ │ - mov r5, r0 │ │ │ │ │ mov r2, r4 │ │ │ │ │ - str sl, [r0, #64] @ 0x40 │ │ │ │ │ - str r6, [r0, #68] @ 0x44 │ │ │ │ │ - str r7, [r0, #72] @ 0x48 │ │ │ │ │ + str r3, [r0, #76] @ 0x4c │ │ │ │ │ add r0, sl, #8 │ │ │ │ │ bl 0 │ │ │ │ │ R_ARM_CALL fftw_ops_add │ │ │ │ │ add r0, r6, #8 │ │ │ │ │ mov r1, r4 │ │ │ │ │ bl 0 │ │ │ │ │ R_ARM_CALL fftw_ops_add2 │ │ │ │ │ mov r0, r5 │ │ │ │ │ - add sp, sp, #84 @ 0x54 │ │ │ │ │ - pop {r4, r5, r6, r7, r8, r9, sl, fp, pc} │ │ │ │ │ + b 258 │ │ │ │ │ mov r7, #0 │ │ │ │ │ mov r0, r7 │ │ │ │ │ bl 0 │ │ │ │ │ R_ARM_CALL fftw_plan_destroy_internal │ │ │ │ │ mov r0, r6 │ │ │ │ │ bl 0 │ │ │ │ │ R_ARM_CALL fftw_plan_destroy_internal │ │ │ │ │ mov r0, sl │ │ │ │ │ bl 0 │ │ │ │ │ R_ARM_CALL fftw_plan_destroy_internal │ │ │ │ │ - b 1f4 │ │ │ │ │ + b 254 │ │ │ │ │ add r3, r6, r2 │ │ │ │ │ + cmp r1, #0 │ │ │ │ │ str r3, [sp, #36] @ 0x24 │ │ │ │ │ ldr r3, [sp, #24] │ │ │ │ │ - cmp r1, #0 │ │ │ │ │ add r3, r3, #8 │ │ │ │ │ str r3, [sp, #60] @ 0x3c │ │ │ │ │ - bne 7e4 │ │ │ │ │ + bne 85c │ │ │ │ │ ldr r3, [fp, #164] @ 0xa4 │ │ │ │ │ ands r3, r3, #4096 @ 0x1000 │ │ │ │ │ - beq 824 │ │ │ │ │ + beq 89c │ │ │ │ │ mov r3, #1 │ │ │ │ │ mov sl, r6 │ │ │ │ │ - str r6, [sp, #52] @ 0x34 │ │ │ │ │ - str r6, [sp, #68] @ 0x44 │ │ │ │ │ - str r9, [sp, #64] @ 0x40 │ │ │ │ │ + str r3, [sp, #32] │ │ │ │ │ str r6, [sp, #48] @ 0x30 │ │ │ │ │ + str r6, [sp, #52] @ 0x34 │ │ │ │ │ str r1, [sp, #56] @ 0x38 │ │ │ │ │ - str r3, [sp, #32] │ │ │ │ │ - b 32c │ │ │ │ │ + str r9, [sp, #64] @ 0x40 │ │ │ │ │ + str r6, [sp, #68] @ 0x44 │ │ │ │ │ + b 3a0 │ │ │ │ │ mov r2, #0 │ │ │ │ │ - str r2, [sp, #16] │ │ │ │ │ str r1, [sp, #12] │ │ │ │ │ - ldr r3, [r3, #12] │ │ │ │ │ mov r1, r0 │ │ │ │ │ - str r3, [sp, #8] │ │ │ │ │ - ldr r2, [sp, #32] │ │ │ │ │ - ldr r3, [sp, #52] @ 0x34 │ │ │ │ │ mov r0, r8 │ │ │ │ │ + str r2, [sp, #16] │ │ │ │ │ + ldr r3, [r3, #12] │ │ │ │ │ stm sp, {r6, r9} │ │ │ │ │ - b 5e4 │ │ │ │ │ + ldr r2, [sp, #32] │ │ │ │ │ + str r3, [sp, #8] │ │ │ │ │ + ldr r3, [sp, #52] @ 0x34 │ │ │ │ │ + b 660 │ │ │ │ │ mov r3, #1 │ │ │ │ │ mov r8, #2 │ │ │ │ │ str r3, [sp, #44] @ 0x2c │ │ │ │ │ - b 4ac │ │ │ │ │ + b 528 │ │ │ │ │ mov r3, #0 │ │ │ │ │ - str r3, [sp, #56] @ 0x38 │ │ │ │ │ - mov r3, #1 │ │ │ │ │ mov sl, r6 │ │ │ │ │ - str r6, [sp, #52] @ 0x34 │ │ │ │ │ - str r6, [sp, #68] @ 0x44 │ │ │ │ │ - str r9, [sp, #64] @ 0x40 │ │ │ │ │ str r6, [sp, #48] @ 0x30 │ │ │ │ │ + str r6, [sp, #52] @ 0x34 │ │ │ │ │ + str r3, [sp, #56] @ 0x38 │ │ │ │ │ + mov r3, #1 │ │ │ │ │ str r3, [sp, #32] │ │ │ │ │ - b 32c │ │ │ │ │ - ldr r2, [pc, #156] @ 8b0 │ │ │ │ │ + str r9, [sp, #64] @ 0x40 │ │ │ │ │ + str r6, [sp, #68] @ 0x44 │ │ │ │ │ + b 3a0 │ │ │ │ │ + ldr r2, [pc, #156] @ 928 │ │ │ │ │ add r2, pc, r2 │ │ │ │ │ - b 6cc │ │ │ │ │ + b 748 │ │ │ │ │ mov r7, #0 │ │ │ │ │ mov r6, r7 │ │ │ │ │ - b 740 │ │ │ │ │ + b 7b8 │ │ │ │ │ ldr r2, [sp, #24] │ │ │ │ │ + mov sl, r6 │ │ │ │ │ + str r6, [sp, #48] @ 0x30 │ │ │ │ │ + str r3, [sp, #56] @ 0x38 │ │ │ │ │ + mov r3, #1 │ │ │ │ │ + str r3, [sp, #32] │ │ │ │ │ str r2, [sp, #52] @ 0x34 │ │ │ │ │ str r2, [sp, #68] @ 0x44 │ │ │ │ │ - str r3, [sp, #56] @ 0x38 │ │ │ │ │ ldr r2, [sp, #60] @ 0x3c │ │ │ │ │ - mov r3, #1 │ │ │ │ │ - mov sl, r6 │ │ │ │ │ str r2, [sp, #64] @ 0x40 │ │ │ │ │ - str r6, [sp, #48] @ 0x30 │ │ │ │ │ - str r3, [sp, #32] │ │ │ │ │ - b 32c │ │ │ │ │ + b 3a0 │ │ │ │ │ mov r5, #1 │ │ │ │ │ - b 48c │ │ │ │ │ + b 504 │ │ │ │ │ mov r8, lr │ │ │ │ │ - b 408 │ │ │ │ │ + b 47c │ │ │ │ │ ldr r1, [r4, #4] │ │ │ │ │ mov r2, #1 │ │ │ │ │ mov r0, #2 │ │ │ │ │ bl 0 │ │ │ │ │ R_ARM_CALL fftw_mpi_is_local_after │ │ │ │ │ cmp r0, #0 │ │ │ │ │ - beq 244 │ │ │ │ │ + beq 2b8 │ │ │ │ │ ldr r3, [r4, #4] │ │ │ │ │ - ldr r1, [r3, #12] │ │ │ │ │ ldr r0, [r3, #4] │ │ │ │ │ + ldr r1, [r3, #12] │ │ │ │ │ bl 0 │ │ │ │ │ R_ARM_CALL fftw_mpi_num_blocks │ │ │ │ │ cmp r0, #1 │ │ │ │ │ - bne 244 │ │ │ │ │ - b 29c │ │ │ │ │ + bne 2b8 │ │ │ │ │ + b 310 │ │ │ │ │ mov r0, r4 │ │ │ │ │ bl 0 │ │ │ │ │ R_ARM_CALL fftw_mpi_rdft2_serial_applicable │ │ │ │ │ cmp r0, #0 │ │ │ │ │ - beq 2a8 │ │ │ │ │ - b 1f4 │ │ │ │ │ - .word 0xfffff930 │ │ │ │ │ - .word 0x000001d0 │ │ │ │ │ + beq 31c │ │ │ │ │ + b 254 │ │ │ │ │ + .word 0xfffff8b4 │ │ │ │ │ + .word 0x000001cc │ │ │ │ │ R_ARM_REL32 .data.rel.ro │ │ │ │ │ - .word 0xfffff878 │ │ │ │ │ + .word 0xfffff81c │ │ │ │ │ │ │ │ │ │ -000008b4 : │ │ │ │ │ +0000092c : │ │ │ │ │ awake(): │ │ │ │ │ - push {r4, r5, r6, lr} │ │ │ │ │ + strd r4, [sp, #-16]! │ │ │ │ │ mov r4, r0 │ │ │ │ │ mov r5, r1 │ │ │ │ │ ldr r0, [r0, #64] @ 0x40 │ │ │ │ │ + str r6, [sp, #8] │ │ │ │ │ + str lr, [sp, #12] │ │ │ │ │ bl 0 │ │ │ │ │ R_ARM_CALL fftw_plan_awake │ │ │ │ │ ldr r0, [r4, #68] @ 0x44 │ │ │ │ │ mov r1, r5 │ │ │ │ │ bl 0 │ │ │ │ │ R_ARM_CALL fftw_plan_awake │ │ │ │ │ - ldr r0, [r4, #72] @ 0x48 │ │ │ │ │ + ldr r6, [sp, #8] │ │ │ │ │ mov r1, r5 │ │ │ │ │ - pop {r4, r5, r6, lr} │ │ │ │ │ + ldr lr, [sp, #12] │ │ │ │ │ + ldr r0, [r4, #72] @ 0x48 │ │ │ │ │ + ldrd r4, [sp] │ │ │ │ │ + add sp, sp, #16 │ │ │ │ │ b 0 │ │ │ │ │ R_ARM_JUMP24 fftw_plan_awake │ │ │ │ │ │ │ │ │ │ -000008e4 : │ │ │ │ │ +00000970 : │ │ │ │ │ fftw_mpi_rdft2_rank_geq2_transposed_register(): │ │ │ │ │ - push {r4, r5, r6, lr} │ │ │ │ │ - ldr r5, [pc, #72] @ 938 │ │ │ │ │ + strd r4, [sp, #-16]! │ │ │ │ │ mov r4, r0 │ │ │ │ │ + mov r0, #12 │ │ │ │ │ + ldr r5, [pc, #84] @ 9d8 │ │ │ │ │ + str r6, [sp, #8] │ │ │ │ │ + str lr, [sp, #12] │ │ │ │ │ add r5, pc, r5 │ │ │ │ │ mov r1, r5 │ │ │ │ │ - mov r0, #12 │ │ │ │ │ bl 0 │ │ │ │ │ R_ARM_CALL fftw_mksolver │ │ │ │ │ mov r3, #0 │ │ │ │ │ - str r3, [r0, #8] │ │ │ │ │ mov r1, r0 │ │ │ │ │ + str r3, [r0, #8] │ │ │ │ │ mov r0, r4 │ │ │ │ │ bl 0 │ │ │ │ │ R_ARM_CALL fftw_solver_register │ │ │ │ │ mov r1, r5 │ │ │ │ │ mov r0, #12 │ │ │ │ │ bl 0 │ │ │ │ │ R_ARM_CALL fftw_mksolver │ │ │ │ │ mov r3, #1 │ │ │ │ │ + ldr r6, [sp, #8] │ │ │ │ │ mov r1, r0 │ │ │ │ │ + ldr lr, [sp, #12] │ │ │ │ │ str r3, [r0, #8] │ │ │ │ │ mov r0, r4 │ │ │ │ │ - pop {r4, r5, r6, lr} │ │ │ │ │ + ldrd r4, [sp] │ │ │ │ │ + add sp, sp, #16 │ │ │ │ │ b 0 │ │ │ │ │ R_ARM_JUMP24 fftw_solver_register │ │ │ │ │ - .word 0x00000040 │ │ │ │ │ + .word 0x00000048 │ │ │ │ │ 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: 2392 (bytes into file) │ │ │ │ │ + Start of section headers: 2520 (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 0x958: │ │ │ │ │ +There are 13 section headers, starting at offset 0x9d8: │ │ │ │ │ │ │ │ │ │ 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 000300 00 AX 0 0 4 │ │ │ │ │ - [ 2] .rel.text REL 00000000 0007a8 000118 08 I 10 1 4 │ │ │ │ │ - [ 3] .data PROGBITS 00000000 000334 000000 00 WA 0 0 1 │ │ │ │ │ - [ 4] .bss NOBITS 00000000 000334 000000 00 WA 0 0 1 │ │ │ │ │ - [ 5] .rodata.str1.4 PROGBITS 00000000 000334 000036 01 AMS 0 0 4 │ │ │ │ │ - [ 6] .data.rel.ro.local PROGBITS 00000000 00036a 000014 00 WA 0 0 4 │ │ │ │ │ - [ 7] .rel.data.rel.ro.local REL 00000000 0008c0 000020 08 I 10 6 4 │ │ │ │ │ - [ 8] .note.GNU-stack PROGBITS 00000000 00037e 000000 00 0 0 1 │ │ │ │ │ - [ 9] .ARM.attributes ARM_ATTRIBUTES 00000000 00037e 00002b 00 0 0 1 │ │ │ │ │ - [10] .symtab SYMTAB 00000000 0003ac 000280 10 11 21 4 │ │ │ │ │ - [11] .strtab STRTAB 00000000 00062c 000179 00 0 0 1 │ │ │ │ │ - [12] .shstrtab STRTAB 00000000 0008e0 000076 00 0 0 1 │ │ │ │ │ + [ 1] .text PROGBITS 00000000 000034 000380 00 AX 0 0 4 │ │ │ │ │ + [ 2] .rel.text REL 00000000 000828 000118 08 I 10 1 4 │ │ │ │ │ + [ 3] .data PROGBITS 00000000 0003b4 000000 00 WA 0 0 1 │ │ │ │ │ + [ 4] .bss NOBITS 00000000 0003b4 000000 00 WA 0 0 1 │ │ │ │ │ + [ 5] .rodata.str1.4 PROGBITS 00000000 0003b4 000036 01 AMS 0 0 4 │ │ │ │ │ + [ 6] .data.rel.ro.local PROGBITS 00000000 0003ea 000014 00 WA 0 0 4 │ │ │ │ │ + [ 7] .rel.data.rel.ro.local REL 00000000 000940 000020 08 I 10 6 4 │ │ │ │ │ + [ 8] .note.GNU-stack PROGBITS 00000000 0003fe 000000 00 0 0 1 │ │ │ │ │ + [ 9] .ARM.attributes ARM_ATTRIBUTES 00000000 0003fe 00002b 00 0 0 1 │ │ │ │ │ + [10] .symtab SYMTAB 00000000 00042c 000280 10 11 21 4 │ │ │ │ │ + [11] .strtab STRTAB 00000000 0006ac 000179 00 0 0 1 │ │ │ │ │ + [12] .shstrtab STRTAB 00000000 000960 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: 00000000 0 NOTYPE LOCAL DEFAULT 1 $a │ │ │ │ │ - 2: 00000000 36 FUNC LOCAL DEFAULT 1 destroy │ │ │ │ │ + 2: 00000000 48 FUNC LOCAL DEFAULT 1 destroy │ │ │ │ │ 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: 00000024 188 FUNC LOCAL DEFAULT 1 print │ │ │ │ │ - 8: 000000d4 0 NOTYPE LOCAL DEFAULT 1 $d │ │ │ │ │ - 9: 000000e0 0 NOTYPE LOCAL DEFAULT 1 $a │ │ │ │ │ - 10: 000000e0 136 FUNC LOCAL DEFAULT 1 zero │ │ │ │ │ + 7: 00000030 216 FUNC LOCAL DEFAULT 1 print │ │ │ │ │ + 8: 000000fc 0 NOTYPE LOCAL DEFAULT 1 $d │ │ │ │ │ + 9: 00000108 0 NOTYPE LOCAL DEFAULT 1 $a │ │ │ │ │ + 10: 00000108 156 FUNC LOCAL DEFAULT 1 zero │ │ │ │ │ 11: 0000002c 0 NOTYPE LOCAL DEFAULT 5 .LC3 │ │ │ │ │ - 12: 00000168 144 FUNC LOCAL DEFAULT 1 hash │ │ │ │ │ - 13: 000001f4 0 NOTYPE LOCAL DEFAULT 1 $d │ │ │ │ │ - 14: 000001f8 0 NOTYPE LOCAL DEFAULT 1 $a │ │ │ │ │ - 15: 00000274 0 NOTYPE LOCAL DEFAULT 1 $d │ │ │ │ │ - 16: 00000278 0 NOTYPE LOCAL DEFAULT 1 $a │ │ │ │ │ - 17: 000002fc 0 NOTYPE LOCAL DEFAULT 1 $d │ │ │ │ │ + 12: 000001a4 156 FUNC LOCAL DEFAULT 1 hash │ │ │ │ │ + 13: 0000023c 0 NOTYPE LOCAL DEFAULT 1 $d │ │ │ │ │ + 14: 00000240 0 NOTYPE LOCAL DEFAULT 1 $a │ │ │ │ │ + 15: 000002d8 0 NOTYPE LOCAL DEFAULT 1 $d │ │ │ │ │ + 16: 000002dc 0 NOTYPE LOCAL DEFAULT 1 $a │ │ │ │ │ + 17: 0000037c 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: 000001f8 128 FUNC GLOBAL DEFAULT 1 fftw_mpi_mkproblem_rdft2 │ │ │ │ │ + 35: 00000240 156 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: 00000278 136 FUNC GLOBAL DEFAULT 1 fftw_mpi_mkproblem_rdft2_d │ │ │ │ │ + 39: 000002dc 164 FUNC GLOBAL DEFAULT 1 fftw_mpi_mkproblem_rdft2_d │ │ │ │ ├── readelf --wide --relocs {} │ │ │ │ │ @@ -1,45 +1,45 @@ │ │ │ │ │ │ │ │ │ │ -Relocation section '.rel.text' at offset 0x7a8 contains 35 entries: │ │ │ │ │ +Relocation section '.rel.text' at offset 0x828 contains 35 entries: │ │ │ │ │ Offset Info Type Sym. Value Symbol's Name │ │ │ │ │ -0000000c 0000151c R_ARM_CALL 00000000 fftw_mpi_dtensor_destroy │ │ │ │ │ -00000014 0000161c R_ARM_CALL 00000000 MPI_Comm_free │ │ │ │ │ -00000020 0000171d R_ARM_JUMP24 00000000 fftw_ifree │ │ │ │ │ -00000044 0000181c R_ARM_CALL 00000000 fftw_ialignment_of │ │ │ │ │ -00000058 0000181c R_ARM_CALL 00000000 fftw_ialignment_of │ │ │ │ │ -00000080 0000191c R_ARM_CALL 00000000 fftw_mpi_dtensor_print │ │ │ │ │ -000000b0 00001a1c R_ARM_CALL 00000000 MPI_Comm_size │ │ │ │ │ -000000d4 00000403 R_ARM_REL32 00000000 .LC0 │ │ │ │ │ -000000d8 00000503 R_ARM_REL32 00000018 .LC1 │ │ │ │ │ -000000dc 00000603 R_ARM_REL32 00000024 .LC2 │ │ │ │ │ -000000f4 00001b1c R_ARM_CALL 00000000 fftw_mpi_dtensor_copy │ │ │ │ │ -00000124 00001c1c R_ARM_CALL 00000000 MPI_Comm_rank │ │ │ │ │ -00000138 00001d1c R_ARM_CALL 00000000 fftw_mpi_total_block │ │ │ │ │ -00000144 0000151c R_ARM_CALL 00000000 fftw_mpi_dtensor_destroy │ │ │ │ │ -0000015c 00001e1c R_ARM_CALL 00000000 memset │ │ │ │ │ -00000184 00001f1c R_ARM_CALL 00000000 fftw_md5puts │ │ │ │ │ -000001a0 0000201c R_ARM_CALL 00000000 fftw_md5int │ │ │ │ │ -000001ac 0000211c R_ARM_CALL 00000000 fftw_mpi_dtensor_md5 │ │ │ │ │ -000001b8 0000221c R_ARM_CALL 00000000 fftw_md5INT │ │ │ │ │ -000001c4 0000201c R_ARM_CALL 00000000 fftw_md5int │ │ │ │ │ -000001d0 0000201c R_ARM_CALL 00000000 fftw_md5int │ │ │ │ │ -000001dc 00001a1c R_ARM_CALL 00000000 MPI_Comm_size │ │ │ │ │ -000001e8 0000201c R_ARM_CALL 00000000 fftw_md5int │ │ │ │ │ -000001f4 00000b03 R_ARM_REL32 0000002c .LC3 │ │ │ │ │ -00000220 0000241c R_ARM_CALL 00000000 fftw_mkproblem │ │ │ │ │ -00000230 00001a1c R_ARM_CALL 00000000 MPI_Comm_size │ │ │ │ │ -0000023c 0000251c R_ARM_CALL 00000000 fftw_mpi_dtensor_canonical │ │ │ │ │ -00000264 0000261c R_ARM_CALL 00000000 MPI_Comm_dup │ │ │ │ │ -00000274 00001203 R_ARM_REL32 00000000 .data.rel.ro.local │ │ │ │ │ -000002a0 0000241c R_ARM_CALL 00000000 fftw_mkproblem │ │ │ │ │ -000002b0 00001a1c R_ARM_CALL 00000000 MPI_Comm_size │ │ │ │ │ -000002bc 0000251c R_ARM_CALL 00000000 fftw_mpi_dtensor_canonical │ │ │ │ │ -000002e4 0000261c R_ARM_CALL 00000000 MPI_Comm_dup │ │ │ │ │ -000002ec 0000151c R_ARM_CALL 00000000 fftw_mpi_dtensor_destroy │ │ │ │ │ -000002fc 00001203 R_ARM_REL32 00000000 .data.rel.ro.local │ │ │ │ │ +00000010 0000151c R_ARM_CALL 00000000 fftw_mpi_dtensor_destroy │ │ │ │ │ +00000018 0000161c R_ARM_CALL 00000000 MPI_Comm_free │ │ │ │ │ +0000002c 0000171d R_ARM_JUMP24 00000000 fftw_ifree │ │ │ │ │ +0000005c 0000181c R_ARM_CALL 00000000 fftw_ialignment_of │ │ │ │ │ +0000006c 0000181c R_ARM_CALL 00000000 fftw_ialignment_of │ │ │ │ │ +00000098 0000191c R_ARM_CALL 00000000 fftw_mpi_dtensor_print │ │ │ │ │ +000000c8 00001a1c R_ARM_CALL 00000000 MPI_Comm_size │ │ │ │ │ +000000fc 00000403 R_ARM_REL32 00000000 .LC0 │ │ │ │ │ +00000100 00000503 R_ARM_REL32 00000018 .LC1 │ │ │ │ │ +00000104 00000603 R_ARM_REL32 00000024 .LC2 │ │ │ │ │ +00000124 00001b1c R_ARM_CALL 00000000 fftw_mpi_dtensor_copy │ │ │ │ │ +00000154 00001c1c R_ARM_CALL 00000000 MPI_Comm_rank │ │ │ │ │ +00000168 00001d1c R_ARM_CALL 00000000 fftw_mpi_total_block │ │ │ │ │ +00000174 0000151c R_ARM_CALL 00000000 fftw_mpi_dtensor_destroy │ │ │ │ │ +0000018c 00001e1c R_ARM_CALL 00000000 memset │ │ │ │ │ +000001c4 00001f1c R_ARM_CALL 00000000 fftw_md5puts │ │ │ │ │ +000001e0 0000201c R_ARM_CALL 00000000 fftw_md5int │ │ │ │ │ +000001ec 0000211c R_ARM_CALL 00000000 fftw_mpi_dtensor_md5 │ │ │ │ │ +000001f8 0000221c R_ARM_CALL 00000000 fftw_md5INT │ │ │ │ │ +00000204 0000201c R_ARM_CALL 00000000 fftw_md5int │ │ │ │ │ +00000210 0000201c R_ARM_CALL 00000000 fftw_md5int │ │ │ │ │ +0000021c 00001a1c R_ARM_CALL 00000000 MPI_Comm_size │ │ │ │ │ +00000228 0000201c R_ARM_CALL 00000000 fftw_md5int │ │ │ │ │ +0000023c 00000b03 R_ARM_REL32 0000002c .LC3 │ │ │ │ │ +00000274 0000241c R_ARM_CALL 00000000 fftw_mkproblem │ │ │ │ │ +00000284 00001a1c R_ARM_CALL 00000000 MPI_Comm_size │ │ │ │ │ +00000290 0000251c R_ARM_CALL 00000000 fftw_mpi_dtensor_canonical │ │ │ │ │ +000002b8 0000261c R_ARM_CALL 00000000 MPI_Comm_dup │ │ │ │ │ +000002d8 00001203 R_ARM_REL32 00000000 .data.rel.ro.local │ │ │ │ │ +00000310 0000241c R_ARM_CALL 00000000 fftw_mkproblem │ │ │ │ │ +00000320 00001a1c R_ARM_CALL 00000000 MPI_Comm_size │ │ │ │ │ +0000032c 0000251c R_ARM_CALL 00000000 fftw_mpi_dtensor_canonical │ │ │ │ │ +00000354 0000261c R_ARM_CALL 00000000 MPI_Comm_dup │ │ │ │ │ +0000035c 0000151c R_ARM_CALL 00000000 fftw_mpi_dtensor_destroy │ │ │ │ │ +0000037c 00001203 R_ARM_REL32 00000000 .data.rel.ro.local │ │ │ │ │ │ │ │ │ │ -Relocation section '.rel.data.rel.ro.local' at offset 0x8c0 contains 4 entries: │ │ │ │ │ +Relocation section '.rel.data.rel.ro.local' at offset 0x940 contains 4 entries: │ │ │ │ │ Offset Info Type Sym. Value Symbol's Name │ │ │ │ │ -00000004 00000c02 R_ARM_ABS32 00000168 hash │ │ │ │ │ -00000008 00000a02 R_ARM_ABS32 000000e0 zero │ │ │ │ │ -0000000c 00000702 R_ARM_ABS32 00000024 print │ │ │ │ │ +00000004 00000c02 R_ARM_ABS32 000001a4 hash │ │ │ │ │ +00000008 00000a02 R_ARM_ABS32 00000108 zero │ │ │ │ │ +0000000c 00000702 R_ARM_ABS32 00000030 print │ │ │ │ │ 00000010 00000202 R_ARM_ABS32 00000000 destroy │ │ │ │ ├── objdump --line-numbers --disassemble --demangle --reloc --no-show-raw-insn --section=.text {} │ │ │ │ │ @@ -1,140 +1,156 @@ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ Disassembly of section .text: │ │ │ │ │ │ │ │ │ │ 00000000 : │ │ │ │ │ destroy(): │ │ │ │ │ - push {r4, lr} │ │ │ │ │ + str r4, [sp, #-8]! │ │ │ │ │ mov r4, r0 │ │ │ │ │ ldr r0, [r0, #4] │ │ │ │ │ + str lr, [sp, #4] │ │ │ │ │ bl 0 │ │ │ │ │ R_ARM_CALL fftw_mpi_dtensor_destroy │ │ │ │ │ add r0, r4, #28 │ │ │ │ │ bl 0 │ │ │ │ │ R_ARM_CALL MPI_Comm_free │ │ │ │ │ + ldr lr, [sp, #4] │ │ │ │ │ mov r0, r4 │ │ │ │ │ - pop {r4, lr} │ │ │ │ │ + ldr r4, [sp] │ │ │ │ │ + add sp, sp, #8 │ │ │ │ │ b 0 │ │ │ │ │ R_ARM_JUMP24 fftw_ifree │ │ │ │ │ │ │ │ │ │ -00000024 : │ │ │ │ │ +00000030 : │ │ │ │ │ print(): │ │ │ │ │ - push {r4, r5, r6, r7, r8, lr} │ │ │ │ │ + strd r4, [sp, #-24]! @ 0xffffffe8 │ │ │ │ │ mov r4, r0 │ │ │ │ │ - ldr r6, [r4, #16] │ │ │ │ │ + mov r5, r1 │ │ │ │ │ ldr r0, [r0, #12] │ │ │ │ │ + strd r6, [sp, #8] │ │ │ │ │ + ldr r6, [r4, #16] │ │ │ │ │ + str r8, [sp, #16] │ │ │ │ │ + str lr, [sp, #20] │ │ │ │ │ sub sp, sp, #16 │ │ │ │ │ - mov r5, r1 │ │ │ │ │ ldr r8, [r1] │ │ │ │ │ sub r6, r6, r0 │ │ │ │ │ bl 0 │ │ │ │ │ R_ARM_CALL fftw_ialignment_of │ │ │ │ │ - clz r6, r6 │ │ │ │ │ - lsr r6, r6, #5 │ │ │ │ │ mov r7, r0 │ │ │ │ │ ldr r0, [r4, #16] │ │ │ │ │ + clz r6, r6 │ │ │ │ │ bl 0 │ │ │ │ │ R_ARM_CALL fftw_ialignment_of │ │ │ │ │ - ldr r1, [pc, #112] @ d4 │ │ │ │ │ + ldr r1, [pc, #132] @ fc │ │ │ │ │ + lsr r6, r6, #5 │ │ │ │ │ mov r3, r7 │ │ │ │ │ - mov r2, r6 │ │ │ │ │ - add r1, pc, r1 │ │ │ │ │ str r0, [sp] │ │ │ │ │ mov r0, r5 │ │ │ │ │ + mov r2, r6 │ │ │ │ │ + add r1, pc, r1 │ │ │ │ │ blx r8 │ │ │ │ │ ldr r0, [r4, #4] │ │ │ │ │ mov r1, r5 │ │ │ │ │ bl 0 │ │ │ │ │ R_ARM_CALL fftw_mpi_dtensor_print │ │ │ │ │ - ldr r1, [pc, #76] @ d8 │ │ │ │ │ ldr r3, [r4, #24] │ │ │ │ │ - str r3, [sp] │ │ │ │ │ mov r0, r5 │ │ │ │ │ - ldr r3, [r4, #20] │ │ │ │ │ - ldr r2, [r4, #8] │ │ │ │ │ + ldr r1, [pc, #84] @ 100 │ │ │ │ │ + str r3, [sp] │ │ │ │ │ ldr r6, [r5] │ │ │ │ │ add r1, pc, r1 │ │ │ │ │ + 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_CALL MPI_Comm_size │ │ │ │ │ - ldr r1, [pc, #32] @ dc │ │ │ │ │ + ldr r1, [pc, #48] @ 104 │ │ │ │ │ + mov r0, r5 │ │ │ │ │ ldr r3, [r5] │ │ │ │ │ ldr r2, [sp, #12] │ │ │ │ │ add r1, pc, r1 │ │ │ │ │ - mov r0, r5 │ │ │ │ │ blx r3 │ │ │ │ │ add sp, sp, #16 │ │ │ │ │ - pop {r4, r5, r6, r7, r8, pc} │ │ │ │ │ - .word 0x00000064 │ │ │ │ │ + ldrd r4, [sp] │ │ │ │ │ + ldrd r6, [sp, #8] │ │ │ │ │ + ldr r8, [sp, #16] │ │ │ │ │ + add sp, sp, #20 │ │ │ │ │ + pop {pc} @ (ldr pc, [sp], #4) │ │ │ │ │ + .word 0x0000006c │ │ │ │ │ R_ARM_REL32 .LC0 │ │ │ │ │ - .word 0x00000030 │ │ │ │ │ + .word 0x00000048 │ │ │ │ │ R_ARM_REL32 .LC1 │ │ │ │ │ - .word 0x00000014 │ │ │ │ │ + .word 0x00000020 │ │ │ │ │ R_ARM_REL32 .LC2 │ │ │ │ │ │ │ │ │ │ -000000e0 : │ │ │ │ │ +00000108 : │ │ │ │ │ zero(): │ │ │ │ │ - push {r4, r5, r6, lr} │ │ │ │ │ - mov r6, r0 │ │ │ │ │ - sub sp, sp, #8 │ │ │ │ │ + strd r4, [sp, #-16]! │ │ │ │ │ ldr r4, [r0, #12] │ │ │ │ │ + str r6, [sp, #8] │ │ │ │ │ + mov r6, r0 │ │ │ │ │ ldr r0, [r0, #4] │ │ │ │ │ + str lr, [sp, #12] │ │ │ │ │ + sub sp, sp, #8 │ │ │ │ │ bl 0 │ │ │ │ │ R_ARM_CALL fftw_mpi_dtensor_copy │ │ │ │ │ - add r1, sp, #4 │ │ │ │ │ ldr r2, [r0] │ │ │ │ │ mov r5, r0 │ │ │ │ │ + add r1, sp, #4 │ │ │ │ │ add r2, r2, r2, lsl #1 │ │ │ │ │ add r2, r0, r2, lsl #2 │ │ │ │ │ - ldr r3, [r2, #-8] │ │ │ │ │ ldr r0, [r6, #28] │ │ │ │ │ + ldr r3, [r2, #-8] │ │ │ │ │ add r3, r3, r3, lsr #31 │ │ │ │ │ asr r3, r3, #1 │ │ │ │ │ add r3, r3, #1 │ │ │ │ │ str r3, [r2, #-8] │ │ │ │ │ bl 0 │ │ │ │ │ R_ARM_CALL MPI_Comm_rank │ │ │ │ │ - ldr r2, [sp, #4] │ │ │ │ │ + ldr r6, [r6, #8] │ │ │ │ │ mov r1, #0 │ │ │ │ │ mov r0, r5 │ │ │ │ │ - ldr r6, [r6, #8] │ │ │ │ │ + ldr r2, [sp, #4] │ │ │ │ │ bl 0 │ │ │ │ │ R_ARM_CALL fftw_mpi_total_block │ │ │ │ │ mul r6, r0, r6 │ │ │ │ │ mov r0, r5 │ │ │ │ │ bl 0 │ │ │ │ │ R_ARM_CALL fftw_mpi_dtensor_destroy │ │ │ │ │ cmp r6, #0 │ │ │ │ │ - ble 160 │ │ │ │ │ + ble 190 │ │ │ │ │ lsl r2, r6, #4 │ │ │ │ │ mov r1, #0 │ │ │ │ │ mov r0, r4 │ │ │ │ │ bl 0 │ │ │ │ │ R_ARM_CALL memset │ │ │ │ │ add sp, sp, #8 │ │ │ │ │ - pop {r4, r5, r6, pc} │ │ │ │ │ + ldrd r4, [sp] │ │ │ │ │ + ldr r6, [sp, #8] │ │ │ │ │ + add sp, sp, #12 │ │ │ │ │ + pop {pc} @ (ldr pc, [sp], #4) │ │ │ │ │ │ │ │ │ │ -00000168 : │ │ │ │ │ +000001a4 : │ │ │ │ │ hash(): │ │ │ │ │ - push {r4, r5, lr} │ │ │ │ │ + strd r4, [sp, #-12]! │ │ │ │ │ mov r4, r1 │ │ │ │ │ - ldr r1, [pc, #124] @ 1f4 │ │ │ │ │ - sub sp, sp, #12 │ │ │ │ │ mov r5, r0 │ │ │ │ │ - add r1, pc, r1 │ │ │ │ │ + ldr r1, [pc, #132] @ 23c │ │ │ │ │ mov r0, r4 │ │ │ │ │ + str lr, [sp, #8] │ │ │ │ │ + sub sp, sp, #12 │ │ │ │ │ + add r1, pc, r1 │ │ │ │ │ bl 0 │ │ │ │ │ R_ARM_CALL fftw_md5puts │ │ │ │ │ - ldr r3, [r5, #16] │ │ │ │ │ ldr r1, [r5, #12] │ │ │ │ │ mov r0, r4 │ │ │ │ │ + ldr r3, [r5, #16] │ │ │ │ │ sub r1, r1, r3 │ │ │ │ │ clz r1, r1 │ │ │ │ │ lsr r1, r1, #5 │ │ │ │ │ bl 0 │ │ │ │ │ R_ARM_CALL fftw_md5int │ │ │ │ │ ldr r1, [r5, #4] │ │ │ │ │ mov r0, r4 │ │ │ │ │ @@ -148,102 +164,118 @@ │ │ │ │ │ mov r0, r4 │ │ │ │ │ bl 0 │ │ │ │ │ R_ARM_CALL fftw_md5int │ │ │ │ │ ldr r1, [r5, #24] │ │ │ │ │ mov r0, r4 │ │ │ │ │ bl 0 │ │ │ │ │ R_ARM_CALL fftw_md5int │ │ │ │ │ - add r1, sp, #4 │ │ │ │ │ ldr r0, [r5, #28] │ │ │ │ │ + add r1, sp, #4 │ │ │ │ │ bl 0 │ │ │ │ │ R_ARM_CALL MPI_Comm_size │ │ │ │ │ ldr r1, [sp, #4] │ │ │ │ │ mov r0, r4 │ │ │ │ │ bl 0 │ │ │ │ │ R_ARM_CALL fftw_md5int │ │ │ │ │ add sp, sp, #12 │ │ │ │ │ - pop {r4, r5, pc} │ │ │ │ │ - .word 0x00000070 │ │ │ │ │ + ldrd r4, [sp] │ │ │ │ │ + add sp, sp, #8 │ │ │ │ │ + pop {pc} @ (ldr pc, [sp], #4) │ │ │ │ │ + .word 0x00000074 │ │ │ │ │ R_ARM_REL32 .LC3 │ │ │ │ │ │ │ │ │ │ -000001f8 : │ │ │ │ │ +00000240 : │ │ │ │ │ fftw_mpi_mkproblem_rdft2(): │ │ │ │ │ - push {r4, r5, r6, r7, r8, r9, lr} │ │ │ │ │ + strd r4, [sp, #-28]! @ 0xffffffe4 │ │ │ │ │ + mov r5, r3 │ │ │ │ │ + strd r6, [sp, #8] │ │ │ │ │ mov r7, r1 │ │ │ │ │ - ldr r1, [pc, #108] @ 274 │ │ │ │ │ - sub sp, sp, #12 │ │ │ │ │ + mov r6, r2 │ │ │ │ │ + ldr r1, [pc, #124] @ 2d8 │ │ │ │ │ + strd r8, [sp, #16] │ │ │ │ │ mov r8, r0 │ │ │ │ │ - add r1, pc, r1 │ │ │ │ │ mov r0, #32 │ │ │ │ │ - mov r6, r2 │ │ │ │ │ - mov r5, r3 │ │ │ │ │ + str lr, [sp, #24] │ │ │ │ │ + sub sp, sp, #12 │ │ │ │ │ ldr r9, [sp, #40] @ 0x28 │ │ │ │ │ + add r1, pc, r1 │ │ │ │ │ bl 0 │ │ │ │ │ R_ARM_CALL fftw_mkproblem │ │ │ │ │ - add r1, sp, #4 │ │ │ │ │ mov r4, r0 │ │ │ │ │ + add r1, sp, #4 │ │ │ │ │ mov r0, r9 │ │ │ │ │ bl 0 │ │ │ │ │ R_ARM_CALL MPI_Comm_size │ │ │ │ │ mov r1, #0 │ │ │ │ │ mov r0, r8 │ │ │ │ │ bl 0 │ │ │ │ │ R_ARM_CALL fftw_mpi_dtensor_canonical │ │ │ │ │ ldr r3, [sp, #44] @ 0x2c │ │ │ │ │ - str r3, [r4, #20] │ │ │ │ │ - ldr r3, [sp, #48] @ 0x30 │ │ │ │ │ add r1, r4, #28 │ │ │ │ │ + stmib r4, {r0, r7} │ │ │ │ │ + mov r0, r9 │ │ │ │ │ str r6, [r4, #12] │ │ │ │ │ str r5, [r4, #16] │ │ │ │ │ + str r3, [r4, #20] │ │ │ │ │ + ldr r3, [sp, #48] @ 0x30 │ │ │ │ │ str r3, [r4, #24] │ │ │ │ │ - stmib r4, {r0, r7} │ │ │ │ │ - mov r0, r9 │ │ │ │ │ bl 0 │ │ │ │ │ R_ARM_CALL MPI_Comm_dup │ │ │ │ │ mov r0, r4 │ │ │ │ │ add sp, sp, #12 │ │ │ │ │ - pop {r4, r5, r6, r7, r8, r9, pc} │ │ │ │ │ + ldrd r4, [sp] │ │ │ │ │ + ldrd r6, [sp, #8] │ │ │ │ │ + ldrd r8, [sp, #16] │ │ │ │ │ + add sp, sp, #24 │ │ │ │ │ + pop {pc} @ (ldr pc, [sp], #4) │ │ │ │ │ .word 0x00000060 │ │ │ │ │ R_ARM_REL32 .data.rel.ro.local │ │ │ │ │ │ │ │ │ │ -00000278 : │ │ │ │ │ +000002dc : │ │ │ │ │ fftw_mpi_mkproblem_rdft2_d(): │ │ │ │ │ - push {r4, r5, r6, r7, r8, r9, lr} │ │ │ │ │ - mov r8, r1 │ │ │ │ │ - ldr r1, [pc, #116] @ 2fc │ │ │ │ │ - sub sp, sp, #12 │ │ │ │ │ + strd r4, [sp, #-28]! @ 0xffffffe4 │ │ │ │ │ mov r5, r0 │ │ │ │ │ - add r1, pc, r1 │ │ │ │ │ mov r0, #32 │ │ │ │ │ + strd r6, [sp, #8] │ │ │ │ │ mov r7, r2 │ │ │ │ │ mov r6, r3 │ │ │ │ │ + strd r8, [sp, #16] │ │ │ │ │ + mov r8, r1 │ │ │ │ │ + ldr r1, [pc, #120] @ 37c │ │ │ │ │ + str lr, [sp, #24] │ │ │ │ │ + sub sp, sp, #12 │ │ │ │ │ ldr r9, [sp, #40] @ 0x28 │ │ │ │ │ + add r1, pc, r1 │ │ │ │ │ bl 0 │ │ │ │ │ R_ARM_CALL fftw_mkproblem │ │ │ │ │ - add r1, sp, #4 │ │ │ │ │ mov r4, r0 │ │ │ │ │ + add r1, sp, #4 │ │ │ │ │ mov r0, r9 │ │ │ │ │ bl 0 │ │ │ │ │ R_ARM_CALL MPI_Comm_size │ │ │ │ │ mov r1, #0 │ │ │ │ │ mov r0, r5 │ │ │ │ │ bl 0 │ │ │ │ │ R_ARM_CALL fftw_mpi_dtensor_canonical │ │ │ │ │ ldr r3, [sp, #44] @ 0x2c │ │ │ │ │ - str r3, [r4, #20] │ │ │ │ │ - ldr r3, [sp, #48] @ 0x30 │ │ │ │ │ add r1, r4, #28 │ │ │ │ │ - str r3, [r4, #24] │ │ │ │ │ - str r7, [r4, #12] │ │ │ │ │ - str r6, [r4, #16] │ │ │ │ │ stmib r4, {r0, r8} │ │ │ │ │ mov r0, r9 │ │ │ │ │ + str r7, [r4, #12] │ │ │ │ │ + str r6, [r4, #16] │ │ │ │ │ + str r3, [r4, #20] │ │ │ │ │ + ldr r3, [sp, #48] @ 0x30 │ │ │ │ │ + str r3, [r4, #24] │ │ │ │ │ bl 0 │ │ │ │ │ R_ARM_CALL MPI_Comm_dup │ │ │ │ │ mov r0, r5 │ │ │ │ │ bl 0 │ │ │ │ │ R_ARM_CALL fftw_mpi_dtensor_destroy │ │ │ │ │ mov r0, r4 │ │ │ │ │ add sp, sp, #12 │ │ │ │ │ - pop {r4, r5, r6, r7, r8, r9, pc} │ │ │ │ │ + ldrd r4, [sp] │ │ │ │ │ + ldrd r6, [sp, #8] │ │ │ │ │ + ldrd r8, [sp, #16] │ │ │ │ │ + add sp, sp, #24 │ │ │ │ │ + pop {pc} @ (ldr pc, [sp], #4) │ │ │ │ │ .word 0x00000068 │ │ │ │ │ R_ARM_REL32 .data.rel.ro.local │ │ │ ├── rdft2-solve.o │ │ │ │ ├── objdump --line-numbers --disassemble --demangle --reloc --no-show-raw-insn --section=.text {} │ │ │ │ │ @@ -2,10 +2,10 @@ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ Disassembly of section .text: │ │ │ │ │ │ │ │ │ │ 00000000 : │ │ │ │ │ fftw_mpi_rdft2_solve(): │ │ │ │ │ ldr r2, [r1, #16] │ │ │ │ │ - ldr r3, [r0, #56] @ 0x38 │ │ │ │ │ ldr r1, [r1, #12] │ │ │ │ │ + ldr r3, [r0, #56] @ 0x38 │ │ │ │ │ bx r3 │ │ ├── ./usr/lib/arm-linux-gnueabi/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 │ │ │ │ -00000234 t cost_hook │ │ │ │ -00001254 t default_sz │ │ │ │ -000003a8 t default_sz.constprop.0 │ │ │ │ -000009ec t default_sz.constprop.1 │ │ │ │ -00000f2c t default_sz.constprop.2 │ │ │ │ +00000258 t cost_hook │ │ │ │ +000013a8 t default_sz │ │ │ │ +000003f0 t default_sz.constprop.0 │ │ │ │ +00000a90 t default_sz.constprop.1 │ │ │ │ +0000102c 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 │ │ │ │ -00002244 T fftwf_mpi_cleanup │ │ │ │ +00002454 T fftwf_mpi_cleanup │ │ │ │ U fftwf_mpi_conf_standard │ │ │ │ U fftwf_mpi_default_block │ │ │ │ U fftwf_mpi_dtensor_canonical │ │ │ │ U fftwf_mpi_dtensor_destroy │ │ │ │ -00003e34 T fftwf_mpi_execute_dft │ │ │ │ -00003e3c T fftwf_mpi_execute_dft_c2r │ │ │ │ -00003e38 T fftwf_mpi_execute_dft_r2c │ │ │ │ -00003e40 T fftwf_mpi_execute_r2r │ │ │ │ -000021d4 T fftwf_mpi_init │ │ │ │ +000042e0 T fftwf_mpi_execute_dft │ │ │ │ +000042e8 T fftwf_mpi_execute_dft_c2r │ │ │ │ +000042e4 T fftwf_mpi_execute_dft_r2c │ │ │ │ +000042ec T fftwf_mpi_execute_r2r │ │ │ │ +000023cc T fftwf_mpi_init │ │ │ │ U fftwf_mpi_is_block1d │ │ │ │ -000023e4 T fftwf_mpi_local_size │ │ │ │ -000024a4 T fftwf_mpi_local_size_1d │ │ │ │ -00002530 T fftwf_mpi_local_size_2d │ │ │ │ -000024f8 T fftwf_mpi_local_size_2d_transposed │ │ │ │ -000025ac T fftwf_mpi_local_size_3d │ │ │ │ -00002564 T fftwf_mpi_local_size_3d_transposed │ │ │ │ -00002264 T fftwf_mpi_local_size_guru │ │ │ │ -000015a0 t fftwf_mpi_local_size_guru.part.0 │ │ │ │ -00001034 t fftwf_mpi_local_size_guru.part.0.constprop.0 │ │ │ │ -00002304 T fftwf_mpi_local_size_many │ │ │ │ -00002454 T fftwf_mpi_local_size_many_1d │ │ │ │ -000022a8 T fftwf_mpi_local_size_many_transposed │ │ │ │ -00001af4 t fftwf_mpi_local_size_many_transposed.part.0 │ │ │ │ -0000063c t fftwf_mpi_local_size_many_transposed.part.0.constprop.0 │ │ │ │ -00000b8c t fftwf_mpi_local_size_many_transposed.part.0.constprop.1 │ │ │ │ -0000237c T fftwf_mpi_local_size_transposed │ │ │ │ +00002658 T fftwf_mpi_local_size │ │ │ │ +00002718 T fftwf_mpi_local_size_1d │ │ │ │ +000027a4 T fftwf_mpi_local_size_2d │ │ │ │ +0000276c T fftwf_mpi_local_size_2d_transposed │ │ │ │ +00002820 T fftwf_mpi_local_size_3d │ │ │ │ +000027d8 T fftwf_mpi_local_size_3d_transposed │ │ │ │ +00002480 T fftwf_mpi_local_size_guru │ │ │ │ +00001724 t fftwf_mpi_local_size_guru.part.0 │ │ │ │ +0000115c t fftwf_mpi_local_size_guru.part.0.constprop.0 │ │ │ │ +00002578 T fftwf_mpi_local_size_many │ │ │ │ +000026c8 T fftwf_mpi_local_size_many_1d │ │ │ │ +000024f0 T fftwf_mpi_local_size_many_transposed │ │ │ │ +00001c70 t fftwf_mpi_local_size_many_transposed.part.0 │ │ │ │ +000006ac t fftwf_mpi_local_size_many_transposed.part.0.constprop.0 │ │ │ │ +00000c58 t fftwf_mpi_local_size_many_transposed.part.0.constprop.1 │ │ │ │ +000025f0 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 │ │ │ │ -00002af4 T fftwf_mpi_plan_dft │ │ │ │ -00002bd0 T fftwf_mpi_plan_dft_1d │ │ │ │ -00002d44 T fftwf_mpi_plan_dft_2d │ │ │ │ -00002f08 T fftwf_mpi_plan_dft_3d │ │ │ │ -00003c1c T fftwf_mpi_plan_dft_c2r │ │ │ │ -00003cf8 T fftwf_mpi_plan_dft_c2r_2d │ │ │ │ -00003d90 T fftwf_mpi_plan_dft_c2r_3d │ │ │ │ -00003a18 T fftwf_mpi_plan_dft_r2c │ │ │ │ -00003af4 T fftwf_mpi_plan_dft_r2c_2d │ │ │ │ -00003b84 T fftwf_mpi_plan_dft_r2c_3d │ │ │ │ -000028a0 T fftwf_mpi_plan_guru_dft │ │ │ │ -00003100 T fftwf_mpi_plan_guru_r2r │ │ │ │ -00002a18 T fftwf_mpi_plan_many_dft │ │ │ │ -0000393c T fftwf_mpi_plan_many_dft_c2r │ │ │ │ -00003860 T fftwf_mpi_plan_many_dft_r2c │ │ │ │ -0000329c T fftwf_mpi_plan_many_r2r │ │ │ │ -000025f0 T fftwf_mpi_plan_many_transpose │ │ │ │ -00003378 T fftwf_mpi_plan_r2r │ │ │ │ -00003454 T fftwf_mpi_plan_r2r_2d │ │ │ │ -0000363c T fftwf_mpi_plan_r2r_3d │ │ │ │ -00002764 T fftwf_mpi_plan_transpose │ │ │ │ +00002dc8 T fftwf_mpi_plan_dft │ │ │ │ +00002ec4 T fftwf_mpi_plan_dft_1d │ │ │ │ +00003054 T fftwf_mpi_plan_dft_2d │ │ │ │ +00003234 T fftwf_mpi_plan_dft_3d │ │ │ │ +00004070 T fftwf_mpi_plan_dft_c2r │ │ │ │ +0000416c T fftwf_mpi_plan_dft_c2r_2d │ │ │ │ +00004220 T fftwf_mpi_plan_dft_c2r_3d │ │ │ │ +00003e14 T fftwf_mpi_plan_dft_r2c │ │ │ │ +00003f10 T fftwf_mpi_plan_dft_r2c_2d │ │ │ │ +00003fbc T fftwf_mpi_plan_dft_r2c_3d │ │ │ │ +00002b44 T fftwf_mpi_plan_guru_dft │ │ │ │ +00003448 T fftwf_mpi_plan_guru_r2r │ │ │ │ +00002cd4 T fftwf_mpi_plan_many_dft │ │ │ │ +00003d20 T fftwf_mpi_plan_many_dft_c2r │ │ │ │ +00003c2c T fftwf_mpi_plan_many_dft_r2c │ │ │ │ +000035f8 T fftwf_mpi_plan_many_r2r │ │ │ │ +00002864 T fftwf_mpi_plan_many_transpose │ │ │ │ +000036ec T fftwf_mpi_plan_r2r │ │ │ │ +000037e8 T fftwf_mpi_plan_r2r_2d │ │ │ │ +000039ec T fftwf_mpi_plan_r2r_3d │ │ │ │ +000029f0 T fftwf_mpi_plan_transpose │ │ │ │ U fftwf_the_planner │ │ │ │ -000002d0 t local_size │ │ │ │ +000002f4 t local_size │ │ │ │ 00000000 b mpi_inited │ │ │ │ -00000078 t nowisdom_hook │ │ │ │ -00002008 t plan_guru_rdft2 │ │ │ │ -00001c94 t plan_guru_rdft2.constprop.0 │ │ │ │ -00001e60 t plan_guru_rdft2.constprop.1 │ │ │ │ +00000084 t nowisdom_hook │ │ │ │ +000021e8 t plan_guru_rdft2 │ │ │ │ +00001e3c t plan_guru_rdft2.constprop.0 │ │ │ │ +00002024 t plan_guru_rdft2.constprop.1 │ │ │ │ 000000dc t wisdom_ok_hook │ │ │ │ │ │ │ │ block.o: │ │ │ │ U MPI_Comm_size │ │ │ │ U __aeabi_idiv │ │ │ │ U __aeabi_idivmod │ │ │ │ -0000006c T fftwf_mpi_block │ │ │ │ -0000016c T fftwf_mpi_block_coords │ │ │ │ -00000058 T fftwf_mpi_default_block │ │ │ │ -000000f8 T fftwf_mpi_idle_process │ │ │ │ -00000418 T fftwf_mpi_is_block1d │ │ │ │ -000003b4 T fftwf_mpi_is_local │ │ │ │ -0000033c T fftwf_mpi_is_local_after │ │ │ │ +00000090 T fftwf_mpi_block │ │ │ │ +000001d0 T fftwf_mpi_block_coords │ │ │ │ +00000070 T fftwf_mpi_default_block │ │ │ │ +00000138 T fftwf_mpi_idle_process │ │ │ │ +000004ec T fftwf_mpi_is_block1d │ │ │ │ +0000046c T fftwf_mpi_is_local │ │ │ │ +000003d8 T fftwf_mpi_is_local_after │ │ │ │ 00000000 T fftwf_mpi_num_blocks │ │ │ │ -00000014 T fftwf_mpi_num_blocks_ok │ │ │ │ -00000090 T fftwf_mpi_num_blocks_total │ │ │ │ -000001d0 T fftwf_mpi_total_block │ │ │ │ +00000020 T fftwf_mpi_num_blocks_ok │ │ │ │ +000000b4 T fftwf_mpi_num_blocks_total │ │ │ │ +00000250 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 │ │ │ │ -000000f8 T fftwf_mpi_dtensor_canonical │ │ │ │ -00000098 T fftwf_mpi_dtensor_copy │ │ │ │ -00000030 T fftwf_mpi_dtensor_destroy │ │ │ │ -00000034 T fftwf_mpi_dtensor_md5 │ │ │ │ -000002e4 T fftwf_mpi_dtensor_print │ │ │ │ -00000280 T fftwf_mpi_dtensor_validp │ │ │ │ +0000015c T fftwf_mpi_dtensor_canonical │ │ │ │ +000000d8 T fftwf_mpi_dtensor_copy │ │ │ │ +00000054 T fftwf_mpi_dtensor_destroy │ │ │ │ +00000058 T fftwf_mpi_dtensor_md5 │ │ │ │ +0000036c T fftwf_mpi_dtensor_print │ │ │ │ +00000308 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 │ │ │ │ -0000012c T fftwf_mpi_rearrange_ny │ │ │ │ +00000130 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 │ │ │ │ -0000019c T fftwf_mpi_broadcast_wisdom │ │ │ │ +000001a4 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 │ │ │ │ -00000888 T fftwf_mpi_broadcast_wisdom_f03 │ │ │ │ +00000c60 T fftwf_mpi_broadcast_wisdom_f03 │ │ │ │ U fftwf_mpi_gather_wisdom │ │ │ │ -00000878 T fftwf_mpi_gather_wisdom_f03 │ │ │ │ +00000c44 T fftwf_mpi_gather_wisdom_f03 │ │ │ │ U fftwf_mpi_local_size │ │ │ │ U fftwf_mpi_local_size_1d │ │ │ │ -0000017c T fftwf_mpi_local_size_1d_f03 │ │ │ │ +00000228 T fftwf_mpi_local_size_1d_f03 │ │ │ │ U fftwf_mpi_local_size_2d │ │ │ │ -000001c4 T fftwf_mpi_local_size_2d_f03 │ │ │ │ +00000294 T fftwf_mpi_local_size_2d_f03 │ │ │ │ U fftwf_mpi_local_size_2d_transposed │ │ │ │ -000001fc T fftwf_mpi_local_size_2d_transposed_f03 │ │ │ │ +000002e8 T fftwf_mpi_local_size_2d_transposed_f03 │ │ │ │ U fftwf_mpi_local_size_3d │ │ │ │ -00000240 T fftwf_mpi_local_size_3d_f03 │ │ │ │ +00000350 T fftwf_mpi_local_size_3d_f03 │ │ │ │ U fftwf_mpi_local_size_3d_transposed │ │ │ │ -00000280 T fftwf_mpi_local_size_3d_transposed_f03 │ │ │ │ -000000ec T fftwf_mpi_local_size_f03 │ │ │ │ +000003ac T fftwf_mpi_local_size_3d_transposed_f03 │ │ │ │ +00000158 T fftwf_mpi_local_size_f03 │ │ │ │ U fftwf_mpi_local_size_many │ │ │ │ U fftwf_mpi_local_size_many_1d │ │ │ │ -00000124 T fftwf_mpi_local_size_many_1d_f03 │ │ │ │ -00000064 T fftwf_mpi_local_size_many_f03 │ │ │ │ +000001ac T fftwf_mpi_local_size_many_1d_f03 │ │ │ │ +00000088 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 │ │ │ │ -000000a8 T fftwf_mpi_local_size_transposed_f03 │ │ │ │ +000000f0 T fftwf_mpi_local_size_transposed_f03 │ │ │ │ U fftwf_mpi_plan_dft │ │ │ │ U fftwf_mpi_plan_dft_1d │ │ │ │ -0000040c T fftwf_mpi_plan_dft_1d_f03 │ │ │ │ +000005e4 T fftwf_mpi_plan_dft_1d_f03 │ │ │ │ U fftwf_mpi_plan_dft_2d │ │ │ │ -0000044c T fftwf_mpi_plan_dft_2d_f03 │ │ │ │ +00000640 T fftwf_mpi_plan_dft_2d_f03 │ │ │ │ U fftwf_mpi_plan_dft_3d │ │ │ │ -00000490 T fftwf_mpi_plan_dft_3d_f03 │ │ │ │ +000006a8 T fftwf_mpi_plan_dft_3d_f03 │ │ │ │ U fftwf_mpi_plan_dft_c2r │ │ │ │ U fftwf_mpi_plan_dft_c2r_2d │ │ │ │ -000007f0 T fftwf_mpi_plan_dft_c2r_2d_f03 │ │ │ │ +00000b7c T fftwf_mpi_plan_dft_c2r_2d_f03 │ │ │ │ U fftwf_mpi_plan_dft_c2r_3d │ │ │ │ -00000830 T fftwf_mpi_plan_dft_c2r_3d_f03 │ │ │ │ -000007b0 T fftwf_mpi_plan_dft_c2r_f03 │ │ │ │ -000003c8 T fftwf_mpi_plan_dft_f03 │ │ │ │ +00000bd8 T fftwf_mpi_plan_dft_c2r_3d_f03 │ │ │ │ +00000b20 T fftwf_mpi_plan_dft_c2r_f03 │ │ │ │ +0000057c T fftwf_mpi_plan_dft_f03 │ │ │ │ U fftwf_mpi_plan_dft_r2c │ │ │ │ U fftwf_mpi_plan_dft_r2c_2d │ │ │ │ -000006cc T fftwf_mpi_plan_dft_r2c_2d_f03 │ │ │ │ +000009d8 T fftwf_mpi_plan_dft_r2c_2d_f03 │ │ │ │ U fftwf_mpi_plan_dft_r2c_3d │ │ │ │ -0000070c T fftwf_mpi_plan_dft_r2c_3d_f03 │ │ │ │ -0000068c T fftwf_mpi_plan_dft_r2c_f03 │ │ │ │ +00000a34 T fftwf_mpi_plan_dft_r2c_3d_f03 │ │ │ │ +0000097c T fftwf_mpi_plan_dft_r2c_f03 │ │ │ │ U fftwf_mpi_plan_many_dft │ │ │ │ U fftwf_mpi_plan_many_dft_c2r │ │ │ │ -00000754 T fftwf_mpi_plan_many_dft_c2r_f03 │ │ │ │ -00000364 T fftwf_mpi_plan_many_dft_f03 │ │ │ │ +00000aa0 T fftwf_mpi_plan_many_dft_c2r_f03 │ │ │ │ +000004f4 T fftwf_mpi_plan_many_dft_f03 │ │ │ │ U fftwf_mpi_plan_many_dft_r2c │ │ │ │ -00000630 T fftwf_mpi_plan_many_dft_r2c_f03 │ │ │ │ +000008fc T fftwf_mpi_plan_many_dft_r2c_f03 │ │ │ │ U fftwf_mpi_plan_many_r2r │ │ │ │ -000004dc T fftwf_mpi_plan_many_r2r_f03 │ │ │ │ +00000718 T fftwf_mpi_plan_many_r2r_f03 │ │ │ │ U fftwf_mpi_plan_many_transpose │ │ │ │ -000002c8 T fftwf_mpi_plan_many_transpose_f03 │ │ │ │ +00000418 T fftwf_mpi_plan_many_transpose_f03 │ │ │ │ U fftwf_mpi_plan_r2r │ │ │ │ U fftwf_mpi_plan_r2r_2d │ │ │ │ -00000584 T fftwf_mpi_plan_r2r_2d_f03 │ │ │ │ +00000808 T fftwf_mpi_plan_r2r_2d_f03 │ │ │ │ U fftwf_mpi_plan_r2r_3d │ │ │ │ -000005cc T fftwf_mpi_plan_r2r_3d_f03 │ │ │ │ -00000540 T fftwf_mpi_plan_r2r_f03 │ │ │ │ +00000874 T fftwf_mpi_plan_r2r_3d_f03 │ │ │ │ +000007a0 T fftwf_mpi_plan_r2r_f03 │ │ │ │ U fftwf_mpi_plan_transpose │ │ │ │ -00000324 T fftwf_mpi_plan_transpose_f03 │ │ │ │ +00000498 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 │ │ │ │ -000004c4 t apply │ │ │ │ -00000668 t awake │ │ │ │ -0000062c t destroy │ │ │ │ +000004f8 t apply │ │ │ │ +000006c8 t awake │ │ │ │ +00000680 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 │ │ │ │ -000006a4 T fftwf_mpi_transpose_alltoall_register │ │ │ │ +00000718 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 │ │ │ │ -00000070 t mkplan │ │ │ │ +0000007c 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 │ │ │ │ -000004c0 t apply │ │ │ │ -00000638 t awake │ │ │ │ -000005f4 t destroy │ │ │ │ +00000514 t apply │ │ │ │ +000006c4 t awake │ │ │ │ +00000674 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 │ │ │ │ -00000674 T fftwf_mpi_mkplans_posttranspose │ │ │ │ +00000714 T fftwf_mpi_mkplans_posttranspose │ │ │ │ U fftwf_mpi_num_blocks │ │ │ │ -00000fd0 T fftwf_mpi_transpose_pairwise_register │ │ │ │ +000010ac 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 │ │ │ │ -00000070 t fill1_comm_sched │ │ │ │ +0000007c t fill1_comm_sched │ │ │ │ U memcpy │ │ │ │ U memmove │ │ │ │ -000009d8 t mkplan │ │ │ │ +00000a98 t mkplan │ │ │ │ 00000000 d padt.0 │ │ │ │ 00000000 t print │ │ │ │ 00000000 d sadt.1 │ │ │ │ -00000250 t transpose_chunks │ │ │ │ +00000280 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 │ │ │ │ -00000170 t awake │ │ │ │ -0000014c t destroy │ │ │ │ +000001d4 t awake │ │ │ │ +000001a4 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 │ │ │ │ -000008e4 T fftwf_mpi_transpose_recurse_register │ │ │ │ +00000984 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 │ │ │ │ -000001a0 t mkplan │ │ │ │ +00000218 t mkplan │ │ │ │ 00000000 d padt.0 │ │ │ │ -0000006c t print │ │ │ │ -000000e0 t radix_first │ │ │ │ -00000108 t radix_sqrt │ │ │ │ +00000090 t print │ │ │ │ +00000110 t radix_first │ │ │ │ +0000014c 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,119 +509,119 @@ │ │ │ │ U fftwf_ialignment_of │ │ │ │ U fftwf_ifree │ │ │ │ U fftwf_md5INT │ │ │ │ U fftwf_md5int │ │ │ │ U fftwf_md5puts │ │ │ │ U fftwf_mkproblem │ │ │ │ U fftwf_mpi_block │ │ │ │ -000001ac T fftwf_mpi_mkproblem_transpose │ │ │ │ -00000110 t hash │ │ │ │ +000001f4 T fftwf_mpi_mkproblem_transpose │ │ │ │ +0000014c t hash │ │ │ │ U memset │ │ │ │ 00000000 d padt │ │ │ │ -0000001c t print │ │ │ │ -000000b4 t zero │ │ │ │ +00000028 t print │ │ │ │ +000000dc t zero │ │ │ │ │ │ │ │ transpose-solve.o: │ │ │ │ 00000000 T fftwf_mpi_transpose_solve │ │ │ │ │ │ │ │ dft-serial.o: │ │ │ │ 00000000 r .LC0 │ │ │ │ U MPI_Comm_rank │ │ │ │ 00000000 t apply │ │ │ │ -00000064 t awake │ │ │ │ -0000005c t destroy │ │ │ │ +00000078 t awake │ │ │ │ +00000070 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_0d │ │ │ │ U fftwf_mktensor_1d │ │ │ │ U fftwf_mpi_any_true │ │ │ │ -00000280 T fftwf_mpi_dft_serial_applicable │ │ │ │ -000002d8 T fftwf_mpi_dft_serial_register │ │ │ │ +00000288 T fftwf_mpi_dft_serial_applicable │ │ │ │ +000002ec 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 │ │ │ │ -0000006c t mkplan │ │ │ │ +00000080 t mkplan │ │ │ │ 00000000 d padt.0 │ │ │ │ -0000003c t print │ │ │ │ +00000050 t print │ │ │ │ 00000000 d sadt.1 │ │ │ │ │ │ │ │ dft-rank-geq2.o: │ │ │ │ 00000000 r .LC0 │ │ │ │ 00000004 r .LC1 │ │ │ │ 00000008 r .LC2 │ │ │ │ U MPI_Comm_rank │ │ │ │ U MPI_Comm_size │ │ │ │ 00000000 t apply │ │ │ │ -000004d0 t awake │ │ │ │ -000000e0 t destroy │ │ │ │ +00000524 t awake │ │ │ │ +00000100 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 │ │ │ │ -000004f4 T fftwf_mpi_dft_rank_geq2_register │ │ │ │ +0000055c 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 │ │ │ │ -000000fc t mkplan │ │ │ │ +00000128 t mkplan │ │ │ │ 00000000 d padt.0 │ │ │ │ -00000080 t print │ │ │ │ +00000094 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 │ │ │ │ -0000060c t awake │ │ │ │ -00000100 t destroy │ │ │ │ +0000066c t awake │ │ │ │ +00000130 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 │ │ │ │ -0000063c T fftwf_mpi_dft_rank_geq2_transposed_register │ │ │ │ +000006b0 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 │ │ │ │ -00000124 t mkplan │ │ │ │ +00000160 t mkplan │ │ │ │ 00000000 d padt.0 │ │ │ │ -00000098 t print │ │ │ │ +000000bc t print │ │ │ │ 00000000 d sadt.1 │ │ │ │ │ │ │ │ dft-rank1.o: │ │ │ │ 00000000 r .LC1 │ │ │ │ 00000008 r .LC2 │ │ │ │ 00000010 r .LC3 │ │ │ │ 00000014 r .LC4 │ │ │ │ @@ -629,79 +629,79 @@ │ │ │ │ U MPI_Comm_rank │ │ │ │ U MPI_Comm_size │ │ │ │ U __aeabi_dadd │ │ │ │ U __aeabi_dmul │ │ │ │ U __aeabi_i2d │ │ │ │ U __aeabi_idiv │ │ │ │ 00000000 t apply_ddft_first │ │ │ │ -00000918 t apply_ddft_last │ │ │ │ -000008b4 t awake │ │ │ │ -00000278 t destroy │ │ │ │ +0000099c t apply_ddft_last │ │ │ │ +00000928 t awake │ │ │ │ +000002c0 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 │ │ │ │ -00000ad4 T fftwf_mpi_dft_rank1_register │ │ │ │ +00000b80 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 │ │ │ │ -0000029c t mkplan │ │ │ │ +000002f0 t mkplan │ │ │ │ 00000000 d padt.0 │ │ │ │ -000001d4 t print │ │ │ │ +00000210 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 │ │ │ │ -000004d4 t awake │ │ │ │ -00000104 t destroy │ │ │ │ +00000538 t awake │ │ │ │ +0000013c 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 │ │ │ │ -00000504 T fftwf_mpi_dft_rank1_bigvec_register │ │ │ │ +0000057c 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 │ │ │ │ -00000128 t mkplan │ │ │ │ +0000016c t mkplan │ │ │ │ 00000000 d padt.0 │ │ │ │ -00000070 t print │ │ │ │ +00000094 t print │ │ │ │ 00000000 d sadt.1 │ │ │ │ │ │ │ │ dft-problem.o: │ │ │ │ 00000000 r .LC0 │ │ │ │ 00000014 r .LC1 │ │ │ │ 00000020 r .LC2 │ │ │ │ 00000028 r .LC3 │ │ │ │ @@ -716,22 +716,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 │ │ │ │ -000001c4 T fftwf_mpi_mkproblem_dft │ │ │ │ -00000284 T fftwf_mpi_mkproblem_dft_d │ │ │ │ +0000020c T fftwf_mpi_mkproblem_dft │ │ │ │ +000002f4 T fftwf_mpi_mkproblem_dft_d │ │ │ │ U fftwf_mpi_total_block │ │ │ │ -00000134 t hash │ │ │ │ +00000170 t hash │ │ │ │ U memset │ │ │ │ 00000000 d padt │ │ │ │ -00000024 t print │ │ │ │ -000000e0 t zero │ │ │ │ +00000030 t print │ │ │ │ +00000108 t zero │ │ │ │ │ │ │ │ dft-solve.o: │ │ │ │ 00000000 T fftwf_mpi_dft_solve │ │ │ │ │ │ │ │ rdft-serial.o: │ │ │ │ 00000000 r .LC0 │ │ │ │ U MPI_Comm_rank │ │ │ │ @@ -745,16 +745,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 │ │ │ │ -0000029c T fftwf_mpi_rdft_serial_applicable │ │ │ │ -000002f4 T fftwf_mpi_rdft_serial_register │ │ │ │ +000002c4 T fftwf_mpi_rdft_serial_applicable │ │ │ │ +00000328 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 │ │ │ │ 0000003c t mkplan │ │ │ │ 00000000 d padt.0 │ │ │ │ @@ -764,109 +764,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 │ │ │ │ -00000444 t awake │ │ │ │ -000000b0 t destroy │ │ │ │ +0000049c t awake │ │ │ │ +000000d0 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 │ │ │ │ -00000468 T fftwf_mpi_rdft_rank_geq2_register │ │ │ │ +000004d4 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 │ │ │ │ -000000cc t mkplan │ │ │ │ +000000f8 t mkplan │ │ │ │ 00000000 d padt.0 │ │ │ │ -00000050 t print │ │ │ │ +00000064 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 │ │ │ │ -00000564 t awake │ │ │ │ -000000cc t destroy │ │ │ │ +000005b4 t awake │ │ │ │ +000000ec 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 │ │ │ │ -00000594 T fftwf_mpi_rdft_rank_geq2_transposed_register │ │ │ │ +000005f8 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 │ │ │ │ -000000f0 t mkplan │ │ │ │ +0000011c t mkplan │ │ │ │ 00000000 d padt.0 │ │ │ │ -00000064 t print │ │ │ │ +00000078 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 │ │ │ │ -00000454 t awake │ │ │ │ -000000e8 t destroy │ │ │ │ +000004a8 t awake │ │ │ │ +00000110 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 │ │ │ │ -00000484 T fftwf_mpi_rdft_rank1_bigvec_register │ │ │ │ +000004ec 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 │ │ │ │ -0000010c t mkplan │ │ │ │ +00000140 t mkplan │ │ │ │ 00000000 d padt.0 │ │ │ │ -00000054 t print │ │ │ │ +00000068 t print │ │ │ │ 00000000 d sadt.1 │ │ │ │ │ │ │ │ rdft-problem.o: │ │ │ │ 00000000 r .LC0 │ │ │ │ 00000014 r .LC1 │ │ │ │ 00000018 r .LC2 │ │ │ │ 00000020 r .LC3 │ │ │ │ @@ -882,122 +882,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 │ │ │ │ -0000024c T fftwf_mpi_mkproblem_rdft │ │ │ │ -000003d0 T fftwf_mpi_mkproblem_rdft_d │ │ │ │ +00000294 T fftwf_mpi_mkproblem_rdft │ │ │ │ +00000430 T fftwf_mpi_mkproblem_rdft_d │ │ │ │ U fftwf_mpi_total_block │ │ │ │ -00000184 t hash │ │ │ │ +000001c0 t hash │ │ │ │ U memset │ │ │ │ 00000000 d padt │ │ │ │ -00000024 t print │ │ │ │ -00000130 t zero │ │ │ │ +00000030 t print │ │ │ │ +00000158 t zero │ │ │ │ │ │ │ │ rdft-solve.o: │ │ │ │ 00000000 T fftwf_mpi_rdft_solve │ │ │ │ │ │ │ │ rdft2-serial.o: │ │ │ │ 00000000 r .LC0 │ │ │ │ U MPI_Comm_rank │ │ │ │ -00000034 t apply_c2r │ │ │ │ +00000040 t apply_c2r │ │ │ │ 00000000 t apply_r2c │ │ │ │ -00000094 t awake │ │ │ │ -0000008c t destroy │ │ │ │ +000000ac t awake │ │ │ │ +000000a4 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 │ │ │ │ -00000320 T fftwf_mpi_rdft2_serial_applicable │ │ │ │ -00000378 T fftwf_mpi_rdft2_serial_register │ │ │ │ +00000360 T fftwf_mpi_rdft2_serial_applicable │ │ │ │ +000003c4 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 │ │ │ │ -0000009c t mkplan │ │ │ │ +000000b4 t mkplan │ │ │ │ 00000000 d padt.0 │ │ │ │ -0000006c t print │ │ │ │ +00000084 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 │ │ │ │ -00000074 t apply_c2r │ │ │ │ +00000088 t apply_c2r │ │ │ │ 00000000 t apply_r2c │ │ │ │ -000005d0 t awake │ │ │ │ -0000011c t destroy │ │ │ │ +00000634 t awake │ │ │ │ +00000148 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 │ │ │ │ -000005f4 T fftwf_mpi_rdft2_rank_geq2_register │ │ │ │ +0000066c 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 │ │ │ │ -00000138 t mkplan │ │ │ │ +00000170 t mkplan │ │ │ │ 00000000 d padt.0 │ │ │ │ -000000bc t print │ │ │ │ +000000dc 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 │ │ │ │ -00000090 t apply_c2r │ │ │ │ +000000ac t apply_c2r │ │ │ │ 00000000 t apply_r2c │ │ │ │ -000008b4 t awake │ │ │ │ -0000018c t destroy │ │ │ │ +0000092c t awake │ │ │ │ +000001d0 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 │ │ │ │ -000008e4 T fftwf_mpi_rdft2_rank_geq2_transposed_register │ │ │ │ +00000970 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 │ │ │ │ -000001b0 t mkplan │ │ │ │ +00000200 t mkplan │ │ │ │ 00000000 d padt.0 │ │ │ │ -00000124 t print │ │ │ │ +0000015c t print │ │ │ │ 00000000 d sadt.1 │ │ │ │ │ │ │ │ rdft2-problem.o: │ │ │ │ 00000000 r .LC0 │ │ │ │ 00000018 r .LC1 │ │ │ │ 00000024 r .LC2 │ │ │ │ 0000002c r .LC3 │ │ │ │ @@ -1013,18 +1013,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 │ │ │ │ -000001f8 T fftwf_mpi_mkproblem_rdft2 │ │ │ │ -00000278 T fftwf_mpi_mkproblem_rdft2_d │ │ │ │ +00000240 T fftwf_mpi_mkproblem_rdft2 │ │ │ │ +000002dc T fftwf_mpi_mkproblem_rdft2_d │ │ │ │ U fftwf_mpi_total_block │ │ │ │ -00000168 t hash │ │ │ │ +000001a4 t hash │ │ │ │ U memset │ │ │ │ 00000000 d padt │ │ │ │ -00000024 t print │ │ │ │ -000000e0 t zero │ │ │ │ +00000030 t print │ │ │ │ +00000108 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 768 1970-01-01 00:00:00.000000 any-true.o │ │ │ │ -?rw-r--r-- 0 0 0 23460 1970-01-01 00:00:00.000000 api.o │ │ │ │ -?rw-r--r-- 0 0 0 2536 1970-01-01 00:00:00.000000 block.o │ │ │ │ -?rw-r--r-- 0 0 0 1032 1970-01-01 00:00:00.000000 choose-radix.o │ │ │ │ +?rw-r--r-- 0 0 0 24656 1970-01-01 00:00:00.000000 api.o │ │ │ │ +?rw-r--r-- 0 0 0 2776 1970-01-01 00:00:00.000000 block.o │ │ │ │ +?rw-r--r-- 0 0 0 1060 1970-01-01 00:00:00.000000 choose-radix.o │ │ │ │ ?rw-r--r-- 0 0 0 2704 1970-01-01 00:00:00.000000 conf.o │ │ │ │ -?rw-r--r-- 0 0 0 2512 1970-01-01 00:00:00.000000 dtensor.o │ │ │ │ -?rw-r--r-- 0 0 0 1296 1970-01-01 00:00:00.000000 rearrange.o │ │ │ │ +?rw-r--r-- 0 0 0 2680 1970-01-01 00:00:00.000000 dtensor.o │ │ │ │ +?rw-r--r-- 0 0 0 1300 1970-01-01 00:00:00.000000 rearrange.o │ │ │ │ ?rw-r--r-- 0 0 0 2180 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 4432 1970-01-01 00:00:00.000000 transpose-alltoall.o │ │ │ │ -?rw-r--r-- 0 0 0 7312 1970-01-01 00:00:00.000000 transpose-pairwise.o │ │ │ │ -?rw-r--r-- 0 0 0 5456 1970-01-01 00:00:00.000000 transpose-recurse.o │ │ │ │ -?rw-r--r-- 0 0 0 2320 1970-01-01 00:00:00.000000 transpose-problem.o │ │ │ │ +?rw-r--r-- 0 0 0 7040 1970-01-01 00:00:00.000000 f03-wrap.o │ │ │ │ +?rw-r--r-- 0 0 0 4568 1970-01-01 00:00:00.000000 transpose-alltoall.o │ │ │ │ +?rw-r--r-- 0 0 0 7552 1970-01-01 00:00:00.000000 transpose-pairwise.o │ │ │ │ +?rw-r--r-- 0 0 0 5644 1970-01-01 00:00:00.000000 transpose-recurse.o │ │ │ │ +?rw-r--r-- 0 0 0 2436 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 2896 1970-01-01 00:00:00.000000 dft-serial.o │ │ │ │ -?rw-r--r-- 0 0 0 3788 1970-01-01 00:00:00.000000 dft-rank-geq2.o │ │ │ │ -?rw-r--r-- 0 0 0 4260 1970-01-01 00:00:00.000000 dft-rank-geq2-transposed.o │ │ │ │ -?rw-r--r-- 0 0 0 5832 1970-01-01 00:00:00.000000 dft-rank1.o │ │ │ │ -?rw-r--r-- 0 0 0 4188 1970-01-01 00:00:00.000000 dft-rank1-bigvec.o │ │ │ │ -?rw-r--r-- 0 0 0 2932 1970-01-01 00:00:00.000000 dft-problem.o │ │ │ │ +?rw-r--r-- 0 0 0 2920 1970-01-01 00:00:00.000000 dft-serial.o │ │ │ │ +?rw-r--r-- 0 0 0 3912 1970-01-01 00:00:00.000000 dft-rank-geq2.o │ │ │ │ +?rw-r--r-- 0 0 0 4396 1970-01-01 00:00:00.000000 dft-rank-geq2-transposed.o │ │ │ │ +?rw-r--r-- 0 0 0 6032 1970-01-01 00:00:00.000000 dft-rank1.o │ │ │ │ +?rw-r--r-- 0 0 0 4336 1970-01-01 00:00:00.000000 dft-rank1-bigvec.o │ │ │ │ +?rw-r--r-- 0 0 0 3092 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 2972 1970-01-01 00:00:00.000000 rdft-serial.o │ │ │ │ -?rw-r--r-- 0 0 0 3600 1970-01-01 00:00:00.000000 rdft-rank-geq2.o │ │ │ │ -?rw-r--r-- 0 0 0 4076 1970-01-01 00:00:00.000000 rdft-rank-geq2-transposed.o │ │ │ │ -?rw-r--r-- 0 0 0 4020 1970-01-01 00:00:00.000000 rdft-rank1-bigvec.o │ │ │ │ -?rw-r--r-- 0 0 0 3112 1970-01-01 00:00:00.000000 rdft-problem.o │ │ │ │ +?rw-r--r-- 0 0 0 3036 1970-01-01 00:00:00.000000 rdft-serial.o │ │ │ │ +?rw-r--r-- 0 0 0 3728 1970-01-01 00:00:00.000000 rdft-rank-geq2.o │ │ │ │ +?rw-r--r-- 0 0 0 4196 1970-01-01 00:00:00.000000 rdft-rank-geq2-transposed.o │ │ │ │ +?rw-r--r-- 0 0 0 4152 1970-01-01 00:00:00.000000 rdft-rank1-bigvec.o │ │ │ │ +?rw-r--r-- 0 0 0 3220 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 3048 1970-01-01 00:00:00.000000 rdft2-serial.o │ │ │ │ -?rw-r--r-- 0 0 0 4028 1970-01-01 00:00:00.000000 rdft2-rank-geq2.o │ │ │ │ -?rw-r--r-- 0 0 0 4980 1970-01-01 00:00:00.000000 rdft2-rank-geq2-transposed.o │ │ │ │ -?rw-r--r-- 0 0 0 2924 1970-01-01 00:00:00.000000 rdft2-problem.o │ │ │ │ +?rw-r--r-- 0 0 0 3136 1970-01-01 00:00:00.000000 rdft2-serial.o │ │ │ │ +?rw-r--r-- 0 0 0 4168 1970-01-01 00:00:00.000000 rdft2-rank-geq2.o │ │ │ │ +?rw-r--r-- 0 0 0 5140 1970-01-01 00:00:00.000000 rdft2-rank-geq2-transposed.o │ │ │ │ +?rw-r--r-- 0 0 0 3052 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 │ │ │ │ ├── objdump --line-numbers --disassemble --demangle --reloc --no-show-raw-insn --section=.text {} │ │ │ │ │ @@ -2,23 +2,23 @@ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ Disassembly of section .text: │ │ │ │ │ │ │ │ │ │ 00000000 : │ │ │ │ │ fftwf_mpi_any_true(): │ │ │ │ │ ldr r3, [pc, #52] @ 3c │ │ │ │ │ + mov r2, #1 │ │ │ │ │ push {lr} @ (str lr, [sp, #-4]!) │ │ │ │ │ sub sp, sp, #28 │ │ │ │ │ str r3, [sp] │ │ │ │ │ add r3, r3, #1020 @ 0x3fc │ │ │ │ │ - str r0, [sp, #12] │ │ │ │ │ - str r1, [sp, #4] │ │ │ │ │ add r3, r3, #-201326590 @ 0xf4000002 │ │ │ │ │ - mov r2, #1 │ │ │ │ │ + str r1, [sp, #4] │ │ │ │ │ add r1, sp, #20 │ │ │ │ │ + str r0, [sp, #12] │ │ │ │ │ add r0, sp, #12 │ │ │ │ │ bl 0 │ │ │ │ │ R_ARM_CALL MPI_Allreduce │ │ │ │ │ ldr r0, [sp, #20] │ │ │ │ │ add sp, sp, #28 │ │ │ │ │ pop {pc} @ (ldr pc, [sp], #4) │ │ │ │ │ .word 0x58000007 │ │ │ ├── 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: 22980 (bytes into file) │ │ │ │ │ + Start of section headers: 24176 (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: 12 │ │ │ │ │ Section header string table index: 11 │ │ │ │ ├── readelf --wide --sections {} │ │ │ │ │ @@ -1,21 +1,21 @@ │ │ │ │ │ -There are 12 section headers, starting at offset 0x59c4: │ │ │ │ │ +There are 12 section headers, starting at offset 0x5e70: │ │ │ │ │ │ │ │ │ │ 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 003e44 00 AX 0 0 4 │ │ │ │ │ - [ 2] .rel.text REL 00000000 004f64 0009f8 08 I 9 1 4 │ │ │ │ │ - [ 3] .data PROGBITS 00000000 003e78 000000 00 WA 0 0 1 │ │ │ │ │ - [ 4] .bss NOBITS 00000000 003e78 000004 00 WA 0 0 4 │ │ │ │ │ - [ 5] .rodata PROGBITS 00000000 003e78 000010 00 A 0 0 1 │ │ │ │ │ - [ 6] .rodata.str1.4 PROGBITS 00000000 003e88 000036 01 AMS 0 0 4 │ │ │ │ │ - [ 7] .note.GNU-stack PROGBITS 00000000 003ebe 000000 00 0 0 1 │ │ │ │ │ - [ 8] .ARM.attributes ARM_ATTRIBUTES 00000000 003ebe 00002b 00 0 0 1 │ │ │ │ │ - [ 9] .symtab SYMTAB 00000000 003eec 000880 10 10 66 4 │ │ │ │ │ - [10] .strtab STRTAB 00000000 00476c 0007f8 00 0 0 1 │ │ │ │ │ - [11] .shstrtab STRTAB 00000000 00595c 000067 00 0 0 1 │ │ │ │ │ + [ 1] .text PROGBITS 00000000 000034 0042f0 00 AX 0 0 4 │ │ │ │ │ + [ 2] .rel.text REL 00000000 005410 0009f8 08 I 9 1 4 │ │ │ │ │ + [ 3] .data PROGBITS 00000000 004324 000000 00 WA 0 0 1 │ │ │ │ │ + [ 4] .bss NOBITS 00000000 004324 000004 00 WA 0 0 4 │ │ │ │ │ + [ 5] .rodata PROGBITS 00000000 004324 000010 00 A 0 0 1 │ │ │ │ │ + [ 6] .rodata.str1.4 PROGBITS 00000000 004334 000036 01 AMS 0 0 4 │ │ │ │ │ + [ 7] .note.GNU-stack PROGBITS 00000000 00436a 000000 00 0 0 1 │ │ │ │ │ + [ 8] .ARM.attributes ARM_ATTRIBUTES 00000000 00436a 00002b 00 0 0 1 │ │ │ │ │ + [ 9] .symtab SYMTAB 00000000 004398 000880 10 10 66 4 │ │ │ │ │ + [10] .strtab STRTAB 00000000 004c18 0007f8 00 0 0 1 │ │ │ │ │ + [11] .shstrtab STRTAB 00000000 005e08 000067 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,74 +1,74 @@ │ │ │ │ │ │ │ │ │ │ Symbol table '.symtab' contains 136 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: 00000000 0 NOTYPE LOCAL DEFAULT 1 $a │ │ │ │ │ - 3: 00000000 120 FUNC LOCAL DEFAULT 1 bogosity_hook │ │ │ │ │ + 3: 00000000 132 FUNC LOCAL DEFAULT 1 bogosity_hook │ │ │ │ │ 4: 00000000 0 SECTION LOCAL DEFAULT 5 .rodata │ │ │ │ │ - 5: 00000074 0 NOTYPE LOCAL DEFAULT 1 $d │ │ │ │ │ - 6: 00000078 0 NOTYPE LOCAL DEFAULT 1 $a │ │ │ │ │ - 7: 00000078 100 FUNC LOCAL DEFAULT 1 nowisdom_hook │ │ │ │ │ + 5: 00000080 0 NOTYPE LOCAL DEFAULT 1 $d │ │ │ │ │ + 6: 00000084 0 NOTYPE LOCAL DEFAULT 1 $a │ │ │ │ │ + 7: 00000084 88 FUNC LOCAL DEFAULT 1 nowisdom_hook │ │ │ │ │ 8: 000000d8 0 NOTYPE LOCAL DEFAULT 1 $d │ │ │ │ │ 9: 000000dc 0 NOTYPE LOCAL DEFAULT 1 $a │ │ │ │ │ - 10: 000000dc 344 FUNC LOCAL DEFAULT 1 wisdom_ok_hook │ │ │ │ │ - 11: 00000224 0 NOTYPE LOCAL DEFAULT 1 $d │ │ │ │ │ - 12: 00000234 0 NOTYPE LOCAL DEFAULT 1 $a │ │ │ │ │ - 13: 00000234 156 FUNC LOCAL DEFAULT 1 cost_hook │ │ │ │ │ - 14: 000002c8 0 NOTYPE LOCAL DEFAULT 1 $d │ │ │ │ │ - 15: 000002d0 0 NOTYPE LOCAL DEFAULT 1 $a │ │ │ │ │ - 16: 000002d0 216 FUNC LOCAL DEFAULT 1 local_size │ │ │ │ │ - 17: 000003a8 660 FUNC LOCAL DEFAULT 1 default_sz.constprop.0 │ │ │ │ │ - 18: 0000063c 944 FUNC LOCAL DEFAULT 1 fftwf_mpi_local_size_many_transposed.part.0.constprop.0 │ │ │ │ │ - 19: 000009ec 416 FUNC LOCAL DEFAULT 1 default_sz.constprop.1 │ │ │ │ │ - 20: 00000b8c 928 FUNC LOCAL DEFAULT 1 fftwf_mpi_local_size_many_transposed.part.0.constprop.1 │ │ │ │ │ - 21: 00000f2c 264 FUNC LOCAL DEFAULT 1 default_sz.constprop.2 │ │ │ │ │ + 10: 000000dc 380 FUNC LOCAL DEFAULT 1 wisdom_ok_hook │ │ │ │ │ + 11: 00000248 0 NOTYPE LOCAL DEFAULT 1 $d │ │ │ │ │ + 12: 00000258 0 NOTYPE LOCAL DEFAULT 1 $a │ │ │ │ │ + 13: 00000258 156 FUNC LOCAL DEFAULT 1 cost_hook │ │ │ │ │ + 14: 000002ec 0 NOTYPE LOCAL DEFAULT 1 $d │ │ │ │ │ + 15: 000002f4 0 NOTYPE LOCAL DEFAULT 1 $a │ │ │ │ │ + 16: 000002f4 252 FUNC LOCAL DEFAULT 1 local_size │ │ │ │ │ + 17: 000003f0 700 FUNC LOCAL DEFAULT 1 default_sz.constprop.0 │ │ │ │ │ + 18: 000006ac 996 FUNC LOCAL DEFAULT 1 fftwf_mpi_local_size_many_transposed.part.0.constprop.0 │ │ │ │ │ + 19: 00000a90 456 FUNC LOCAL DEFAULT 1 default_sz.constprop.1 │ │ │ │ │ + 20: 00000c58 980 FUNC LOCAL DEFAULT 1 fftwf_mpi_local_size_many_transposed.part.0.constprop.1 │ │ │ │ │ + 21: 0000102c 304 FUNC LOCAL DEFAULT 1 default_sz.constprop.2 │ │ │ │ │ 22: 00000000 0 NOTYPE LOCAL DEFAULT 6 $d │ │ │ │ │ 23: 00000000 0 NOTYPE LOCAL DEFAULT 6 .LC0 │ │ │ │ │ 24: 00000008 0 NOTYPE LOCAL DEFAULT 6 .LC1 │ │ │ │ │ - 25: 00001034 544 FUNC LOCAL DEFAULT 1 fftwf_mpi_local_size_guru.part.0.constprop.0 │ │ │ │ │ - 26: 00001248 0 NOTYPE LOCAL DEFAULT 1 $d │ │ │ │ │ - 27: 00001254 0 NOTYPE LOCAL DEFAULT 1 $a │ │ │ │ │ - 28: 00001254 844 FUNC LOCAL DEFAULT 1 default_sz │ │ │ │ │ - 29: 000015a0 1364 FUNC LOCAL DEFAULT 1 fftwf_mpi_local_size_guru.part.0 │ │ │ │ │ - 30: 00001ae8 0 NOTYPE LOCAL DEFAULT 1 $d │ │ │ │ │ - 31: 00001af4 0 NOTYPE LOCAL DEFAULT 1 $a │ │ │ │ │ - 32: 00001af4 416 FUNC LOCAL DEFAULT 1 fftwf_mpi_local_size_many_transposed.part.0 │ │ │ │ │ - 33: 00001c94 460 FUNC LOCAL DEFAULT 1 plan_guru_rdft2.constprop.0 │ │ │ │ │ - 34: 00001e4c 0 NOTYPE LOCAL DEFAULT 1 $d │ │ │ │ │ - 35: 00001e60 0 NOTYPE LOCAL DEFAULT 1 $a │ │ │ │ │ - 36: 00001e60 424 FUNC LOCAL DEFAULT 1 plan_guru_rdft2.constprop.1 │ │ │ │ │ - 37: 00001ff4 0 NOTYPE LOCAL DEFAULT 1 $d │ │ │ │ │ - 38: 00002008 0 NOTYPE LOCAL DEFAULT 1 $a │ │ │ │ │ - 39: 00002008 460 FUNC LOCAL DEFAULT 1 plan_guru_rdft2 │ │ │ │ │ - 40: 000021c0 0 NOTYPE LOCAL DEFAULT 1 $d │ │ │ │ │ - 41: 000021d4 0 NOTYPE LOCAL DEFAULT 1 $a │ │ │ │ │ - 42: 00002230 0 NOTYPE LOCAL DEFAULT 1 $d │ │ │ │ │ - 43: 00002244 0 NOTYPE LOCAL DEFAULT 1 $a │ │ │ │ │ - 44: 00002260 0 NOTYPE LOCAL DEFAULT 1 $d │ │ │ │ │ - 45: 00002264 0 NOTYPE LOCAL DEFAULT 1 $a │ │ │ │ │ - 46: 00002750 0 NOTYPE LOCAL DEFAULT 1 $d │ │ │ │ │ - 47: 00002764 0 NOTYPE LOCAL DEFAULT 1 $a │ │ │ │ │ - 48: 0000288c 0 NOTYPE LOCAL DEFAULT 1 $d │ │ │ │ │ - 49: 000028a0 0 NOTYPE LOCAL DEFAULT 1 $a │ │ │ │ │ - 50: 00002a04 0 NOTYPE LOCAL DEFAULT 1 $d │ │ │ │ │ - 51: 00002a18 0 NOTYPE LOCAL DEFAULT 1 $a │ │ │ │ │ - 52: 00002d30 0 NOTYPE LOCAL DEFAULT 1 $d │ │ │ │ │ - 53: 00002d44 0 NOTYPE LOCAL DEFAULT 1 $a │ │ │ │ │ - 54: 00002ef4 0 NOTYPE LOCAL DEFAULT 1 $d │ │ │ │ │ - 55: 00002f08 0 NOTYPE LOCAL DEFAULT 1 $a │ │ │ │ │ - 56: 000030ec 0 NOTYPE LOCAL DEFAULT 1 $d │ │ │ │ │ - 57: 00003100 0 NOTYPE LOCAL DEFAULT 1 $a │ │ │ │ │ - 58: 00003288 0 NOTYPE LOCAL DEFAULT 1 $d │ │ │ │ │ - 59: 0000329c 0 NOTYPE LOCAL DEFAULT 1 $a │ │ │ │ │ - 60: 00003628 0 NOTYPE LOCAL DEFAULT 1 $d │ │ │ │ │ - 61: 0000363c 0 NOTYPE LOCAL DEFAULT 1 $a │ │ │ │ │ - 62: 0000384c 0 NOTYPE LOCAL DEFAULT 1 $d │ │ │ │ │ - 63: 00003860 0 NOTYPE LOCAL DEFAULT 1 $a │ │ │ │ │ + 25: 0000115c 588 FUNC LOCAL DEFAULT 1 fftwf_mpi_local_size_guru.part.0.constprop.0 │ │ │ │ │ + 26: 0000139c 0 NOTYPE LOCAL DEFAULT 1 $d │ │ │ │ │ + 27: 000013a8 0 NOTYPE LOCAL DEFAULT 1 $a │ │ │ │ │ + 28: 000013a8 892 FUNC LOCAL DEFAULT 1 default_sz │ │ │ │ │ + 29: 00001724 1356 FUNC LOCAL DEFAULT 1 fftwf_mpi_local_size_guru.part.0 │ │ │ │ │ + 30: 00001c64 0 NOTYPE LOCAL DEFAULT 1 $d │ │ │ │ │ + 31: 00001c70 0 NOTYPE LOCAL DEFAULT 1 $a │ │ │ │ │ + 32: 00001c70 460 FUNC LOCAL DEFAULT 1 fftwf_mpi_local_size_many_transposed.part.0 │ │ │ │ │ + 33: 00001e3c 488 FUNC LOCAL DEFAULT 1 plan_guru_rdft2.constprop.0 │ │ │ │ │ + 34: 00002010 0 NOTYPE LOCAL DEFAULT 1 $d │ │ │ │ │ + 35: 00002024 0 NOTYPE LOCAL DEFAULT 1 $a │ │ │ │ │ + 36: 00002024 452 FUNC LOCAL DEFAULT 1 plan_guru_rdft2.constprop.1 │ │ │ │ │ + 37: 000021d4 0 NOTYPE LOCAL DEFAULT 1 $d │ │ │ │ │ + 38: 000021e8 0 NOTYPE LOCAL DEFAULT 1 $a │ │ │ │ │ + 39: 000021e8 484 FUNC LOCAL DEFAULT 1 plan_guru_rdft2 │ │ │ │ │ + 40: 000023b8 0 NOTYPE LOCAL DEFAULT 1 $d │ │ │ │ │ + 41: 000023cc 0 NOTYPE LOCAL DEFAULT 1 $a │ │ │ │ │ + 42: 00002440 0 NOTYPE LOCAL DEFAULT 1 $d │ │ │ │ │ + 43: 00002454 0 NOTYPE LOCAL DEFAULT 1 $a │ │ │ │ │ + 44: 0000247c 0 NOTYPE LOCAL DEFAULT 1 $d │ │ │ │ │ + 45: 00002480 0 NOTYPE LOCAL DEFAULT 1 $a │ │ │ │ │ + 46: 000029dc 0 NOTYPE LOCAL DEFAULT 1 $d │ │ │ │ │ + 47: 000029f0 0 NOTYPE LOCAL DEFAULT 1 $a │ │ │ │ │ + 48: 00002b30 0 NOTYPE LOCAL DEFAULT 1 $d │ │ │ │ │ + 49: 00002b44 0 NOTYPE LOCAL DEFAULT 1 $a │ │ │ │ │ + 50: 00002cc0 0 NOTYPE LOCAL DEFAULT 1 $d │ │ │ │ │ + 51: 00002cd4 0 NOTYPE LOCAL DEFAULT 1 $a │ │ │ │ │ + 52: 00003040 0 NOTYPE LOCAL DEFAULT 1 $d │ │ │ │ │ + 53: 00003054 0 NOTYPE LOCAL DEFAULT 1 $a │ │ │ │ │ + 54: 00003220 0 NOTYPE LOCAL DEFAULT 1 $d │ │ │ │ │ + 55: 00003234 0 NOTYPE LOCAL DEFAULT 1 $a │ │ │ │ │ + 56: 00003434 0 NOTYPE LOCAL DEFAULT 1 $d │ │ │ │ │ + 57: 00003448 0 NOTYPE LOCAL DEFAULT 1 $a │ │ │ │ │ + 58: 000035e4 0 NOTYPE LOCAL DEFAULT 1 $d │ │ │ │ │ + 59: 000035f8 0 NOTYPE LOCAL DEFAULT 1 $a │ │ │ │ │ + 60: 000039d8 0 NOTYPE LOCAL DEFAULT 1 $d │ │ │ │ │ + 61: 000039ec 0 NOTYPE LOCAL DEFAULT 1 $a │ │ │ │ │ + 62: 00003c18 0 NOTYPE LOCAL DEFAULT 1 $d │ │ │ │ │ + 63: 00003c2c 0 NOTYPE LOCAL DEFAULT 1 $a │ │ │ │ │ 64: 00000000 0 NOTYPE LOCAL DEFAULT 4 $d │ │ │ │ │ 65: 00000000 4 OBJECT LOCAL DEFAULT 4 mpi_inited │ │ │ │ │ 66: 00000000 0 NOTYPE GLOBAL DEFAULT UND fftwf_mpi_any_true │ │ │ │ │ 67: 00000000 0 NOTYPE GLOBAL DEFAULT UND MPI_Bcast │ │ │ │ │ 68: 00000000 0 NOTYPE GLOBAL DEFAULT UND MPI_Allreduce │ │ │ │ │ 69: 00000000 0 NOTYPE GLOBAL DEFAULT UND fftwf_mpi_num_blocks_total │ │ │ │ │ 70: 00000000 0 NOTYPE GLOBAL DEFAULT UND fftwf_mpi_block_coords │ │ │ │ │ @@ -88,52 +88,52 @@ │ │ │ │ │ 84: 00000000 0 NOTYPE GLOBAL DEFAULT UND fftwf_is_prime │ │ │ │ │ 85: 00000000 0 NOTYPE GLOBAL DEFAULT UND fftwf_mpi_choose_radix │ │ │ │ │ 86: 00000000 0 NOTYPE GLOBAL DEFAULT UND fftwf_assertion_failed │ │ │ │ │ 87: 00000000 0 NOTYPE GLOBAL DEFAULT UND fftwf_mpi_mkproblem_rdft2_d │ │ │ │ │ 88: 00000000 0 NOTYPE GLOBAL DEFAULT UND fftwf_mkapiplan │ │ │ │ │ 89: 00000000 0 NOTYPE GLOBAL DEFAULT UND fftwf_the_planner │ │ │ │ │ 90: 00000000 0 NOTYPE GLOBAL DEFAULT UND fftwf_mpi_conf_standard │ │ │ │ │ - 91: 000021d4 112 FUNC GLOBAL DEFAULT 1 fftwf_mpi_init │ │ │ │ │ - 92: 00002244 32 FUNC GLOBAL DEFAULT 1 fftwf_mpi_cleanup │ │ │ │ │ + 91: 000023cc 136 FUNC GLOBAL DEFAULT 1 fftwf_mpi_init │ │ │ │ │ + 92: 00002454 44 FUNC GLOBAL DEFAULT 1 fftwf_mpi_cleanup │ │ │ │ │ 93: 00000000 0 NOTYPE GLOBAL DEFAULT UND fftwf_cleanup │ │ │ │ │ - 94: 00002264 68 FUNC GLOBAL DEFAULT 1 fftwf_mpi_local_size_guru │ │ │ │ │ - 95: 000022a8 92 FUNC GLOBAL DEFAULT 1 fftwf_mpi_local_size_many_transposed │ │ │ │ │ - 96: 00002304 120 FUNC GLOBAL DEFAULT 1 fftwf_mpi_local_size_many │ │ │ │ │ - 97: 0000237c 104 FUNC GLOBAL DEFAULT 1 fftwf_mpi_local_size_transposed │ │ │ │ │ - 98: 000023e4 112 FUNC GLOBAL DEFAULT 1 fftwf_mpi_local_size │ │ │ │ │ - 99: 00002454 80 FUNC GLOBAL DEFAULT 1 fftwf_mpi_local_size_many_1d │ │ │ │ │ - 100: 000024a4 84 FUNC GLOBAL DEFAULT 1 fftwf_mpi_local_size_1d │ │ │ │ │ - 101: 000024f8 56 FUNC GLOBAL DEFAULT 1 fftwf_mpi_local_size_2d_transposed │ │ │ │ │ - 102: 00002530 52 FUNC GLOBAL DEFAULT 1 fftwf_mpi_local_size_2d │ │ │ │ │ - 103: 00002564 72 FUNC GLOBAL DEFAULT 1 fftwf_mpi_local_size_3d_transposed │ │ │ │ │ - 104: 000025ac 68 FUNC GLOBAL DEFAULT 1 fftwf_mpi_local_size_3d │ │ │ │ │ - 105: 000025f0 372 FUNC GLOBAL DEFAULT 1 fftwf_mpi_plan_many_transpose │ │ │ │ │ + 94: 00002480 112 FUNC GLOBAL DEFAULT 1 fftwf_mpi_local_size_guru │ │ │ │ │ + 95: 000024f0 136 FUNC GLOBAL DEFAULT 1 fftwf_mpi_local_size_many_transposed │ │ │ │ │ + 96: 00002578 120 FUNC GLOBAL DEFAULT 1 fftwf_mpi_local_size_many │ │ │ │ │ + 97: 000025f0 104 FUNC GLOBAL DEFAULT 1 fftwf_mpi_local_size_transposed │ │ │ │ │ + 98: 00002658 112 FUNC GLOBAL DEFAULT 1 fftwf_mpi_local_size │ │ │ │ │ + 99: 000026c8 80 FUNC GLOBAL DEFAULT 1 fftwf_mpi_local_size_many_1d │ │ │ │ │ + 100: 00002718 84 FUNC GLOBAL DEFAULT 1 fftwf_mpi_local_size_1d │ │ │ │ │ + 101: 0000276c 56 FUNC GLOBAL DEFAULT 1 fftwf_mpi_local_size_2d_transposed │ │ │ │ │ + 102: 000027a4 52 FUNC GLOBAL DEFAULT 1 fftwf_mpi_local_size_2d │ │ │ │ │ + 103: 000027d8 72 FUNC GLOBAL DEFAULT 1 fftwf_mpi_local_size_3d_transposed │ │ │ │ │ + 104: 00002820 68 FUNC GLOBAL DEFAULT 1 fftwf_mpi_local_size_3d │ │ │ │ │ + 105: 00002864 396 FUNC GLOBAL DEFAULT 1 fftwf_mpi_plan_many_transpose │ │ │ │ │ 106: 00000000 0 NOTYPE GLOBAL DEFAULT UND fftwf_mpi_mkproblem_transpose │ │ │ │ │ - 107: 00002764 316 FUNC GLOBAL DEFAULT 1 fftwf_mpi_plan_transpose │ │ │ │ │ - 108: 000028a0 376 FUNC GLOBAL DEFAULT 1 fftwf_mpi_plan_guru_dft │ │ │ │ │ + 107: 000029f0 340 FUNC GLOBAL DEFAULT 1 fftwf_mpi_plan_transpose │ │ │ │ │ + 108: 00002b44 400 FUNC GLOBAL DEFAULT 1 fftwf_mpi_plan_guru_dft │ │ │ │ │ 109: 00000000 0 NOTYPE GLOBAL DEFAULT UND fftwf_mpi_mkproblem_dft_d │ │ │ │ │ - 110: 00002a18 220 FUNC GLOBAL DEFAULT 1 fftwf_mpi_plan_many_dft │ │ │ │ │ - 111: 00002af4 220 FUNC GLOBAL DEFAULT 1 fftwf_mpi_plan_dft │ │ │ │ │ - 112: 00002bd0 372 FUNC GLOBAL DEFAULT 1 fftwf_mpi_plan_dft_1d │ │ │ │ │ - 113: 00002d44 452 FUNC GLOBAL DEFAULT 1 fftwf_mpi_plan_dft_2d │ │ │ │ │ - 114: 00002f08 504 FUNC GLOBAL DEFAULT 1 fftwf_mpi_plan_dft_3d │ │ │ │ │ - 115: 00003100 412 FUNC GLOBAL DEFAULT 1 fftwf_mpi_plan_guru_r2r │ │ │ │ │ + 110: 00002cd4 244 FUNC GLOBAL DEFAULT 1 fftwf_mpi_plan_many_dft │ │ │ │ │ + 111: 00002dc8 252 FUNC GLOBAL DEFAULT 1 fftwf_mpi_plan_dft │ │ │ │ │ + 112: 00002ec4 400 FUNC GLOBAL DEFAULT 1 fftwf_mpi_plan_dft_1d │ │ │ │ │ + 113: 00003054 480 FUNC GLOBAL DEFAULT 1 fftwf_mpi_plan_dft_2d │ │ │ │ │ + 114: 00003234 532 FUNC GLOBAL DEFAULT 1 fftwf_mpi_plan_dft_3d │ │ │ │ │ + 115: 00003448 432 FUNC GLOBAL DEFAULT 1 fftwf_mpi_plan_guru_r2r │ │ │ │ │ 116: 00000000 0 NOTYPE GLOBAL DEFAULT UND fftwf_map_r2r_kind │ │ │ │ │ 117: 00000000 0 NOTYPE GLOBAL DEFAULT UND fftwf_mpi_mkproblem_rdft_d │ │ │ │ │ 118: 00000000 0 NOTYPE GLOBAL DEFAULT UND fftwf_ifree0 │ │ │ │ │ - 119: 0000329c 220 FUNC GLOBAL DEFAULT 1 fftwf_mpi_plan_many_r2r │ │ │ │ │ - 120: 00003378 220 FUNC GLOBAL DEFAULT 1 fftwf_mpi_plan_r2r │ │ │ │ │ - 121: 00003454 488 FUNC GLOBAL DEFAULT 1 fftwf_mpi_plan_r2r_2d │ │ │ │ │ - 122: 0000363c 548 FUNC GLOBAL DEFAULT 1 fftwf_mpi_plan_r2r_3d │ │ │ │ │ - 123: 00003860 220 FUNC GLOBAL DEFAULT 1 fftwf_mpi_plan_many_dft_r2c │ │ │ │ │ - 124: 0000393c 220 FUNC GLOBAL DEFAULT 1 fftwf_mpi_plan_many_dft_c2r │ │ │ │ │ - 125: 00003a18 220 FUNC GLOBAL DEFAULT 1 fftwf_mpi_plan_dft_r2c │ │ │ │ │ - 126: 00003af4 144 FUNC GLOBAL DEFAULT 1 fftwf_mpi_plan_dft_r2c_2d │ │ │ │ │ - 127: 00003b84 152 FUNC GLOBAL DEFAULT 1 fftwf_mpi_plan_dft_r2c_3d │ │ │ │ │ - 128: 00003c1c 220 FUNC GLOBAL DEFAULT 1 fftwf_mpi_plan_dft_c2r │ │ │ │ │ - 129: 00003cf8 152 FUNC GLOBAL DEFAULT 1 fftwf_mpi_plan_dft_c2r_2d │ │ │ │ │ - 130: 00003d90 164 FUNC GLOBAL DEFAULT 1 fftwf_mpi_plan_dft_c2r_3d │ │ │ │ │ - 131: 00003e34 4 FUNC GLOBAL DEFAULT 1 fftwf_mpi_execute_dft │ │ │ │ │ + 119: 000035f8 244 FUNC GLOBAL DEFAULT 1 fftwf_mpi_plan_many_r2r │ │ │ │ │ + 120: 000036ec 252 FUNC GLOBAL DEFAULT 1 fftwf_mpi_plan_r2r │ │ │ │ │ + 121: 000037e8 516 FUNC GLOBAL DEFAULT 1 fftwf_mpi_plan_r2r_2d │ │ │ │ │ + 122: 000039ec 576 FUNC GLOBAL DEFAULT 1 fftwf_mpi_plan_r2r_3d │ │ │ │ │ + 123: 00003c2c 244 FUNC GLOBAL DEFAULT 1 fftwf_mpi_plan_many_dft_r2c │ │ │ │ │ + 124: 00003d20 244 FUNC GLOBAL DEFAULT 1 fftwf_mpi_plan_many_dft_c2r │ │ │ │ │ + 125: 00003e14 252 FUNC GLOBAL DEFAULT 1 fftwf_mpi_plan_dft_r2c │ │ │ │ │ + 126: 00003f10 172 FUNC GLOBAL DEFAULT 1 fftwf_mpi_plan_dft_r2c_2d │ │ │ │ │ + 127: 00003fbc 180 FUNC GLOBAL DEFAULT 1 fftwf_mpi_plan_dft_r2c_3d │ │ │ │ │ + 128: 00004070 252 FUNC GLOBAL DEFAULT 1 fftwf_mpi_plan_dft_c2r │ │ │ │ │ + 129: 0000416c 180 FUNC GLOBAL DEFAULT 1 fftwf_mpi_plan_dft_c2r_2d │ │ │ │ │ + 130: 00004220 192 FUNC GLOBAL DEFAULT 1 fftwf_mpi_plan_dft_c2r_3d │ │ │ │ │ + 131: 000042e0 4 FUNC GLOBAL DEFAULT 1 fftwf_mpi_execute_dft │ │ │ │ │ 132: 00000000 0 NOTYPE GLOBAL DEFAULT UND fftwf_execute_r2r │ │ │ │ │ - 133: 00003e38 4 FUNC GLOBAL DEFAULT 1 fftwf_mpi_execute_dft_r2c │ │ │ │ │ - 134: 00003e3c 4 FUNC GLOBAL DEFAULT 1 fftwf_mpi_execute_dft_c2r │ │ │ │ │ - 135: 00003e40 4 FUNC GLOBAL DEFAULT 1 fftwf_mpi_execute_r2r │ │ │ │ │ + 133: 000042e4 4 FUNC GLOBAL DEFAULT 1 fftwf_mpi_execute_dft_r2c │ │ │ │ │ + 134: 000042e8 4 FUNC GLOBAL DEFAULT 1 fftwf_mpi_execute_dft_c2r │ │ │ │ │ + 135: 000042ec 4 FUNC GLOBAL DEFAULT 1 fftwf_mpi_execute_r2r │ │ │ │ ├── readelf --wide --relocs {} │ │ │ │ │ @@ -1,322 +1,322 @@ │ │ │ │ │ │ │ │ │ │ -Relocation section '.rel.text' at offset 0x4f64 contains 319 entries: │ │ │ │ │ +Relocation section '.rel.text' at offset 0x5410 contains 319 entries: │ │ │ │ │ Offset Info Type Sym. Value Symbol's Name │ │ │ │ │ -00000048 0000421c R_ARM_CALL 00000000 fftwf_mpi_any_true │ │ │ │ │ -00000074 00000403 R_ARM_REL32 00000000 .rodata │ │ │ │ │ -000000b0 0000421d R_ARM_JUMP24 00000000 fftwf_mpi_any_true │ │ │ │ │ +0000004c 0000421c R_ARM_CALL 00000000 fftwf_mpi_any_true │ │ │ │ │ +00000080 00000403 R_ARM_REL32 00000000 .rodata │ │ │ │ │ +000000bc 0000421d R_ARM_JUMP24 00000000 fftwf_mpi_any_true │ │ │ │ │ 000000d8 00000403 R_ARM_REL32 00000000 .rodata │ │ │ │ │ -00000154 0000421c R_ARM_CALL 00000000 fftwf_mpi_any_true │ │ │ │ │ -0000018c 0000431c R_ARM_CALL 00000000 MPI_Bcast │ │ │ │ │ -000001c0 0000441c R_ARM_CALL 00000000 MPI_Allreduce │ │ │ │ │ -00000224 00000403 R_ARM_REL32 00000000 .rodata │ │ │ │ │ -00000298 0000441c R_ARM_CALL 00000000 MPI_Allreduce │ │ │ │ │ -000002c8 00000403 R_ARM_REL32 00000000 .rodata │ │ │ │ │ -000002f0 0000451c R_ARM_CALL 00000000 fftwf_mpi_num_blocks_total │ │ │ │ │ -00000344 0000461c R_ARM_CALL 00000000 fftwf_mpi_block_coords │ │ │ │ │ -00000378 0000471c R_ARM_CALL 00000000 fftwf_mpi_block │ │ │ │ │ -000003c0 0000481c R_ARM_CALL 00000000 fftwf_mpi_mkdtensor │ │ │ │ │ -000003cc 0000481c R_ARM_CALL 00000000 fftwf_mpi_mkdtensor │ │ │ │ │ -000004d4 0000451c R_ARM_CALL 00000000 fftwf_mpi_num_blocks_total │ │ │ │ │ -000004e4 0000491c R_ARM_CALL 00000000 __aeabi_idiv │ │ │ │ │ -00000540 00004a1c R_ARM_CALL 00000000 fftwf_mpi_dtensor_destroy │ │ │ │ │ -0000054c 00004b1c R_ARM_CALL 00000000 fftwf_mpi_dtensor_canonical │ │ │ │ │ -00000558 00004a1c R_ARM_CALL 00000000 fftwf_mpi_dtensor_destroy │ │ │ │ │ -00000570 00004c1c R_ARM_CALL 00000000 fftwf_mpi_default_block │ │ │ │ │ -00000580 00004d1c R_ARM_CALL 00000000 fftwf_mpi_num_blocks │ │ │ │ │ -00000590 0000491c R_ARM_CALL 00000000 __aeabi_idiv │ │ │ │ │ -000005b0 00004c1c R_ARM_CALL 00000000 fftwf_mpi_default_block │ │ │ │ │ -000005c0 00004d1c R_ARM_CALL 00000000 fftwf_mpi_num_blocks │ │ │ │ │ -000005cc 0000491c R_ARM_CALL 00000000 __aeabi_idiv │ │ │ │ │ -000005ec 00004c1c R_ARM_CALL 00000000 fftwf_mpi_default_block │ │ │ │ │ -000005fc 00004d1c R_ARM_CALL 00000000 fftwf_mpi_num_blocks │ │ │ │ │ -00000658 00004e1c R_ARM_CALL 00000000 fftwf_malloc_plain │ │ │ │ │ -00000694 00004e1c R_ARM_CALL 00000000 fftwf_malloc_plain │ │ │ │ │ -000006c8 00004f1c R_ARM_CALL 00000000 MPI_Comm_rank │ │ │ │ │ -000006d4 0000501c R_ARM_CALL 00000000 MPI_Comm_size │ │ │ │ │ -000006f0 0000511c R_ARM_CALL 00000000 fftwf_mpi_is_block1d │ │ │ │ │ -00000754 0000521c R_ARM_CALL 00000000 fftwf_imax │ │ │ │ │ -00000760 0000521c R_ARM_CALL 00000000 fftwf_imax │ │ │ │ │ -0000076c 00004a1c R_ARM_CALL 00000000 fftwf_mpi_dtensor_destroy │ │ │ │ │ -000007a0 0000531c R_ARM_CALL 00000000 fftwf_ifree │ │ │ │ │ -000007a8 0000531c R_ARM_CALL 00000000 fftwf_ifree │ │ │ │ │ -000007c0 0000511c R_ARM_CALL 00000000 fftwf_mpi_is_block1d │ │ │ │ │ -000007fc 00004d1c R_ARM_CALL 00000000 fftwf_mpi_num_blocks │ │ │ │ │ -0000086c 00004c1c R_ARM_CALL 00000000 fftwf_mpi_default_block │ │ │ │ │ -00000880 0000471c R_ARM_CALL 00000000 fftwf_mpi_block │ │ │ │ │ -0000088c 0000521c R_ARM_CALL 00000000 fftwf_imax │ │ │ │ │ -000008d4 00004c1c R_ARM_CALL 00000000 fftwf_mpi_default_block │ │ │ │ │ -000008e4 0000471c R_ARM_CALL 00000000 fftwf_mpi_block │ │ │ │ │ -000008f4 0000521c R_ARM_CALL 00000000 fftwf_imax │ │ │ │ │ -00000908 00004d1c R_ARM_CALL 00000000 fftwf_mpi_num_blocks │ │ │ │ │ -00000938 00004c1c R_ARM_CALL 00000000 fftwf_mpi_default_block │ │ │ │ │ -00000998 0000521c R_ARM_CALL 00000000 fftwf_imax │ │ │ │ │ -00000a08 0000481c R_ARM_CALL 00000000 fftwf_mpi_mkdtensor │ │ │ │ │ -00000a18 0000481c R_ARM_CALL 00000000 fftwf_mpi_mkdtensor │ │ │ │ │ -00000aa8 0000451c R_ARM_CALL 00000000 fftwf_mpi_num_blocks_total │ │ │ │ │ -00000ab8 0000491c R_ARM_CALL 00000000 __aeabi_idiv │ │ │ │ │ -00000b08 00004a1c R_ARM_CALL 00000000 fftwf_mpi_dtensor_destroy │ │ │ │ │ -00000b14 00004b1c R_ARM_CALL 00000000 fftwf_mpi_dtensor_canonical │ │ │ │ │ -00000b20 00004a1c R_ARM_CALL 00000000 fftwf_mpi_dtensor_destroy │ │ │ │ │ -00000b38 00004c1c R_ARM_CALL 00000000 fftwf_mpi_default_block │ │ │ │ │ -00000b48 00004d1c R_ARM_CALL 00000000 fftwf_mpi_num_blocks │ │ │ │ │ -00000b54 0000491c R_ARM_CALL 00000000 __aeabi_idiv │ │ │ │ │ -00000b74 00004c1c R_ARM_CALL 00000000 fftwf_mpi_default_block │ │ │ │ │ -00000b84 00004d1c R_ARM_CALL 00000000 fftwf_mpi_num_blocks │ │ │ │ │ -00000ba8 00004e1c R_ARM_CALL 00000000 fftwf_malloc_plain │ │ │ │ │ -00000bd4 00004e1c R_ARM_CALL 00000000 fftwf_malloc_plain │ │ │ │ │ -00000c0c 00004f1c R_ARM_CALL 00000000 MPI_Comm_rank │ │ │ │ │ -00000c18 0000501c R_ARM_CALL 00000000 MPI_Comm_size │ │ │ │ │ -00000c34 0000511c R_ARM_CALL 00000000 fftwf_mpi_is_block1d │ │ │ │ │ -00000c8c 0000521c R_ARM_CALL 00000000 fftwf_imax │ │ │ │ │ -00000c98 0000521c R_ARM_CALL 00000000 fftwf_imax │ │ │ │ │ -00000ca4 00004a1c R_ARM_CALL 00000000 fftwf_mpi_dtensor_destroy │ │ │ │ │ -00000cd8 0000531c R_ARM_CALL 00000000 fftwf_ifree │ │ │ │ │ -00000ce0 0000531c R_ARM_CALL 00000000 fftwf_ifree │ │ │ │ │ -00000cf8 0000511c R_ARM_CALL 00000000 fftwf_mpi_is_block1d │ │ │ │ │ -00000d44 00004d1c R_ARM_CALL 00000000 fftwf_mpi_num_blocks │ │ │ │ │ -00000dbc 00004c1c R_ARM_CALL 00000000 fftwf_mpi_default_block │ │ │ │ │ -00000dcc 0000471c R_ARM_CALL 00000000 fftwf_mpi_block │ │ │ │ │ -00000dd8 0000521c R_ARM_CALL 00000000 fftwf_imax │ │ │ │ │ -00000e1c 00004c1c R_ARM_CALL 00000000 fftwf_mpi_default_block │ │ │ │ │ -00000e2c 0000471c R_ARM_CALL 00000000 fftwf_mpi_block │ │ │ │ │ -00000e38 0000521c R_ARM_CALL 00000000 fftwf_imax │ │ │ │ │ -00000e4c 00004d1c R_ARM_CALL 00000000 fftwf_mpi_num_blocks │ │ │ │ │ -00000e8c 00004c1c R_ARM_CALL 00000000 fftwf_mpi_default_block │ │ │ │ │ -00000edc 0000521c R_ARM_CALL 00000000 fftwf_imax │ │ │ │ │ -00000f3c 0000481c R_ARM_CALL 00000000 fftwf_mpi_mkdtensor │ │ │ │ │ -00000f4c 0000481c R_ARM_CALL 00000000 fftwf_mpi_mkdtensor │ │ │ │ │ -00000f98 0000451c R_ARM_CALL 00000000 fftwf_mpi_num_blocks_total │ │ │ │ │ -00000fa4 0000491c R_ARM_CALL 00000000 __aeabi_idiv │ │ │ │ │ -00000fdc 0000541c R_ARM_CALL 00000000 fftwf_is_prime │ │ │ │ │ -00000ff4 00004a1c R_ARM_CALL 00000000 fftwf_mpi_dtensor_destroy │ │ │ │ │ -00001000 00004b1c R_ARM_CALL 00000000 fftwf_mpi_dtensor_canonical │ │ │ │ │ -0000100c 00004a1c R_ARM_CALL 00000000 fftwf_mpi_dtensor_destroy │ │ │ │ │ -0000101c 00004c1c R_ARM_CALL 00000000 fftwf_mpi_default_block │ │ │ │ │ -0000102c 00004d1c R_ARM_CALL 00000000 fftwf_mpi_num_blocks │ │ │ │ │ -00001060 00004f1c R_ARM_CALL 00000000 MPI_Comm_rank │ │ │ │ │ -0000106c 0000501c R_ARM_CALL 00000000 MPI_Comm_size │ │ │ │ │ -000010b8 0000551c R_ARM_CALL 00000000 fftwf_mpi_choose_radix │ │ │ │ │ -000010d0 0000491c R_ARM_CALL 00000000 __aeabi_idiv │ │ │ │ │ -00001144 0000521c R_ARM_CALL 00000000 fftwf_imax │ │ │ │ │ -00001150 0000521c R_ARM_CALL 00000000 fftwf_imax │ │ │ │ │ -0000115c 00004a1c R_ARM_CALL 00000000 fftwf_mpi_dtensor_destroy │ │ │ │ │ -00001180 0000561c R_ARM_CALL 00000000 fftwf_assertion_failed │ │ │ │ │ -00001190 0000481c R_ARM_CALL 00000000 fftwf_mpi_mkdtensor │ │ │ │ │ -000011b8 00004c1c R_ARM_CALL 00000000 fftwf_mpi_default_block │ │ │ │ │ -000011e0 00004a1c R_ARM_CALL 00000000 fftwf_mpi_dtensor_destroy │ │ │ │ │ -000011f8 0000491c R_ARM_CALL 00000000 __aeabi_idiv │ │ │ │ │ -00001204 0000521c R_ARM_CALL 00000000 fftwf_imax │ │ │ │ │ -00001214 0000521c R_ARM_CALL 00000000 fftwf_imax │ │ │ │ │ -0000123c 0000521c R_ARM_CALL 00000000 fftwf_imax │ │ │ │ │ -00001248 00001703 R_ARM_REL32 00000000 .LC0 │ │ │ │ │ -0000124c 00001803 R_ARM_REL32 00000008 .LC1 │ │ │ │ │ -0000126c 0000481c R_ARM_CALL 00000000 fftwf_mpi_mkdtensor │ │ │ │ │ -00001278 0000481c R_ARM_CALL 00000000 fftwf_mpi_mkdtensor │ │ │ │ │ -000013e8 0000451c R_ARM_CALL 00000000 fftwf_mpi_num_blocks_total │ │ │ │ │ -000013f8 0000491c R_ARM_CALL 00000000 __aeabi_idiv │ │ │ │ │ -00001454 00004c1c R_ARM_CALL 00000000 fftwf_mpi_default_block │ │ │ │ │ -00001468 00004d1c R_ARM_CALL 00000000 fftwf_mpi_num_blocks │ │ │ │ │ -00001478 0000491c R_ARM_CALL 00000000 __aeabi_idiv │ │ │ │ │ -000014e4 00004a1c R_ARM_CALL 00000000 fftwf_mpi_dtensor_destroy │ │ │ │ │ -000014f0 00004b1c R_ARM_CALL 00000000 fftwf_mpi_dtensor_canonical │ │ │ │ │ -000014fc 00004a1c R_ARM_CALL 00000000 fftwf_mpi_dtensor_destroy │ │ │ │ │ -00001550 0000541c R_ARM_CALL 00000000 fftwf_is_prime │ │ │ │ │ -000015c8 00004f1c R_ARM_CALL 00000000 MPI_Comm_rank │ │ │ │ │ -000015d4 0000501c R_ARM_CALL 00000000 MPI_Comm_size │ │ │ │ │ -00001618 0000481c R_ARM_CALL 00000000 fftwf_mpi_mkdtensor │ │ │ │ │ -00001640 00004c1c R_ARM_CALL 00000000 fftwf_mpi_default_block │ │ │ │ │ +00000164 0000421c R_ARM_CALL 00000000 fftwf_mpi_any_true │ │ │ │ │ +0000019c 0000431c R_ARM_CALL 00000000 MPI_Bcast │ │ │ │ │ +000001d0 0000441c R_ARM_CALL 00000000 MPI_Allreduce │ │ │ │ │ +00000248 00000403 R_ARM_REL32 00000000 .rodata │ │ │ │ │ +000002bc 0000441c R_ARM_CALL 00000000 MPI_Allreduce │ │ │ │ │ +000002ec 00000403 R_ARM_REL32 00000000 .rodata │ │ │ │ │ +00000324 0000451c R_ARM_CALL 00000000 fftwf_mpi_num_blocks_total │ │ │ │ │ +0000038c 0000461c R_ARM_CALL 00000000 fftwf_mpi_block_coords │ │ │ │ │ +000003c8 0000471c R_ARM_CALL 00000000 fftwf_mpi_block │ │ │ │ │ +00000418 0000481c R_ARM_CALL 00000000 fftwf_mpi_mkdtensor │ │ │ │ │ +00000424 0000481c R_ARM_CALL 00000000 fftwf_mpi_mkdtensor │ │ │ │ │ +00000530 0000451c R_ARM_CALL 00000000 fftwf_mpi_num_blocks_total │ │ │ │ │ +00000540 0000491c R_ARM_CALL 00000000 __aeabi_idiv │ │ │ │ │ +0000059c 00004a1c R_ARM_CALL 00000000 fftwf_mpi_dtensor_destroy │ │ │ │ │ +000005a8 00004b1c R_ARM_CALL 00000000 fftwf_mpi_dtensor_canonical │ │ │ │ │ +000005b4 00004a1c R_ARM_CALL 00000000 fftwf_mpi_dtensor_destroy │ │ │ │ │ +000005e0 00004c1c R_ARM_CALL 00000000 fftwf_mpi_default_block │ │ │ │ │ +000005f0 00004d1c R_ARM_CALL 00000000 fftwf_mpi_num_blocks │ │ │ │ │ +00000600 0000491c R_ARM_CALL 00000000 __aeabi_idiv │ │ │ │ │ +00000620 00004c1c R_ARM_CALL 00000000 fftwf_mpi_default_block │ │ │ │ │ +00000630 00004d1c R_ARM_CALL 00000000 fftwf_mpi_num_blocks │ │ │ │ │ +0000063c 0000491c R_ARM_CALL 00000000 __aeabi_idiv │ │ │ │ │ +0000065c 00004c1c R_ARM_CALL 00000000 fftwf_mpi_default_block │ │ │ │ │ +0000066c 00004d1c R_ARM_CALL 00000000 fftwf_mpi_num_blocks │ │ │ │ │ +000006d8 00004e1c R_ARM_CALL 00000000 fftwf_malloc_plain │ │ │ │ │ +00000714 00004e1c R_ARM_CALL 00000000 fftwf_malloc_plain │ │ │ │ │ +00000748 00004f1c R_ARM_CALL 00000000 MPI_Comm_rank │ │ │ │ │ +00000754 0000501c R_ARM_CALL 00000000 MPI_Comm_size │ │ │ │ │ +00000770 0000511c R_ARM_CALL 00000000 fftwf_mpi_is_block1d │ │ │ │ │ +000007d4 0000521c R_ARM_CALL 00000000 fftwf_imax │ │ │ │ │ +000007e0 0000521c R_ARM_CALL 00000000 fftwf_imax │ │ │ │ │ +000007ec 00004a1c R_ARM_CALL 00000000 fftwf_mpi_dtensor_destroy │ │ │ │ │ +00000820 0000531c R_ARM_CALL 00000000 fftwf_ifree │ │ │ │ │ +00000828 0000531c R_ARM_CALL 00000000 fftwf_ifree │ │ │ │ │ +00000854 0000511c R_ARM_CALL 00000000 fftwf_mpi_is_block1d │ │ │ │ │ +00000898 00004d1c R_ARM_CALL 00000000 fftwf_mpi_num_blocks │ │ │ │ │ +00000908 00004c1c R_ARM_CALL 00000000 fftwf_mpi_default_block │ │ │ │ │ +0000091c 0000471c R_ARM_CALL 00000000 fftwf_mpi_block │ │ │ │ │ +00000928 0000521c R_ARM_CALL 00000000 fftwf_imax │ │ │ │ │ +00000970 00004c1c R_ARM_CALL 00000000 fftwf_mpi_default_block │ │ │ │ │ +00000980 0000471c R_ARM_CALL 00000000 fftwf_mpi_block │ │ │ │ │ +00000990 0000521c R_ARM_CALL 00000000 fftwf_imax │ │ │ │ │ +000009a4 00004d1c R_ARM_CALL 00000000 fftwf_mpi_num_blocks │ │ │ │ │ +000009d4 00004c1c R_ARM_CALL 00000000 fftwf_mpi_default_block │ │ │ │ │ +00000a34 0000521c R_ARM_CALL 00000000 fftwf_imax │ │ │ │ │ +00000abc 0000481c R_ARM_CALL 00000000 fftwf_mpi_mkdtensor │ │ │ │ │ +00000ac8 0000481c R_ARM_CALL 00000000 fftwf_mpi_mkdtensor │ │ │ │ │ +00000b60 0000451c R_ARM_CALL 00000000 fftwf_mpi_num_blocks_total │ │ │ │ │ +00000b70 0000491c R_ARM_CALL 00000000 __aeabi_idiv │ │ │ │ │ +00000bc0 00004a1c R_ARM_CALL 00000000 fftwf_mpi_dtensor_destroy │ │ │ │ │ +00000bcc 00004b1c R_ARM_CALL 00000000 fftwf_mpi_dtensor_canonical │ │ │ │ │ +00000bd8 00004a1c R_ARM_CALL 00000000 fftwf_mpi_dtensor_destroy │ │ │ │ │ +00000c04 00004c1c R_ARM_CALL 00000000 fftwf_mpi_default_block │ │ │ │ │ +00000c14 00004d1c R_ARM_CALL 00000000 fftwf_mpi_num_blocks │ │ │ │ │ +00000c20 0000491c R_ARM_CALL 00000000 __aeabi_idiv │ │ │ │ │ +00000c40 00004c1c R_ARM_CALL 00000000 fftwf_mpi_default_block │ │ │ │ │ +00000c50 00004d1c R_ARM_CALL 00000000 fftwf_mpi_num_blocks │ │ │ │ │ +00000c84 00004e1c R_ARM_CALL 00000000 fftwf_malloc_plain │ │ │ │ │ +00000cb0 00004e1c R_ARM_CALL 00000000 fftwf_malloc_plain │ │ │ │ │ +00000ce8 00004f1c R_ARM_CALL 00000000 MPI_Comm_rank │ │ │ │ │ +00000cf4 0000501c R_ARM_CALL 00000000 MPI_Comm_size │ │ │ │ │ +00000d10 0000511c R_ARM_CALL 00000000 fftwf_mpi_is_block1d │ │ │ │ │ +00000d68 0000521c R_ARM_CALL 00000000 fftwf_imax │ │ │ │ │ +00000d74 0000521c R_ARM_CALL 00000000 fftwf_imax │ │ │ │ │ +00000d80 00004a1c R_ARM_CALL 00000000 fftwf_mpi_dtensor_destroy │ │ │ │ │ +00000db4 0000531c R_ARM_CALL 00000000 fftwf_ifree │ │ │ │ │ +00000dbc 0000531c R_ARM_CALL 00000000 fftwf_ifree │ │ │ │ │ +00000de8 0000511c R_ARM_CALL 00000000 fftwf_mpi_is_block1d │ │ │ │ │ +00000e3c 00004d1c R_ARM_CALL 00000000 fftwf_mpi_num_blocks │ │ │ │ │ +00000eb4 00004c1c R_ARM_CALL 00000000 fftwf_mpi_default_block │ │ │ │ │ +00000ec4 0000471c R_ARM_CALL 00000000 fftwf_mpi_block │ │ │ │ │ +00000ed0 0000521c R_ARM_CALL 00000000 fftwf_imax │ │ │ │ │ +00000f14 00004c1c R_ARM_CALL 00000000 fftwf_mpi_default_block │ │ │ │ │ +00000f24 0000471c R_ARM_CALL 00000000 fftwf_mpi_block │ │ │ │ │ +00000f30 0000521c R_ARM_CALL 00000000 fftwf_imax │ │ │ │ │ +00000f44 00004d1c R_ARM_CALL 00000000 fftwf_mpi_num_blocks │ │ │ │ │ +00000f84 00004c1c R_ARM_CALL 00000000 fftwf_mpi_default_block │ │ │ │ │ +00000fd4 0000521c R_ARM_CALL 00000000 fftwf_imax │ │ │ │ │ +00001050 0000481c R_ARM_CALL 00000000 fftwf_mpi_mkdtensor │ │ │ │ │ +0000105c 0000481c R_ARM_CALL 00000000 fftwf_mpi_mkdtensor │ │ │ │ │ +000010a8 0000451c R_ARM_CALL 00000000 fftwf_mpi_num_blocks_total │ │ │ │ │ +000010b4 0000491c R_ARM_CALL 00000000 __aeabi_idiv │ │ │ │ │ +000010ec 0000541c R_ARM_CALL 00000000 fftwf_is_prime │ │ │ │ │ +00001108 00004a1c R_ARM_CALL 00000000 fftwf_mpi_dtensor_destroy │ │ │ │ │ +00001114 00004b1c R_ARM_CALL 00000000 fftwf_mpi_dtensor_canonical │ │ │ │ │ +00001120 00004a1c R_ARM_CALL 00000000 fftwf_mpi_dtensor_destroy │ │ │ │ │ +00001144 00004c1c R_ARM_CALL 00000000 fftwf_mpi_default_block │ │ │ │ │ +00001154 00004d1c R_ARM_CALL 00000000 fftwf_mpi_num_blocks │ │ │ │ │ +00001198 00004f1c R_ARM_CALL 00000000 MPI_Comm_rank │ │ │ │ │ +000011a4 0000501c R_ARM_CALL 00000000 MPI_Comm_size │ │ │ │ │ +000011f0 0000551c R_ARM_CALL 00000000 fftwf_mpi_choose_radix │ │ │ │ │ +00001208 0000491c R_ARM_CALL 00000000 __aeabi_idiv │ │ │ │ │ +0000127c 0000521c R_ARM_CALL 00000000 fftwf_imax │ │ │ │ │ +00001288 0000521c R_ARM_CALL 00000000 fftwf_imax │ │ │ │ │ +00001294 00004a1c R_ARM_CALL 00000000 fftwf_mpi_dtensor_destroy │ │ │ │ │ +000012cc 0000561c R_ARM_CALL 00000000 fftwf_assertion_failed │ │ │ │ │ +000012dc 0000481c R_ARM_CALL 00000000 fftwf_mpi_mkdtensor │ │ │ │ │ +0000130c 00004c1c R_ARM_CALL 00000000 fftwf_mpi_default_block │ │ │ │ │ +00001334 00004a1c R_ARM_CALL 00000000 fftwf_mpi_dtensor_destroy │ │ │ │ │ +0000134c 0000491c R_ARM_CALL 00000000 __aeabi_idiv │ │ │ │ │ +00001358 0000521c R_ARM_CALL 00000000 fftwf_imax │ │ │ │ │ +00001368 0000521c R_ARM_CALL 00000000 fftwf_imax │ │ │ │ │ +00001390 0000521c R_ARM_CALL 00000000 fftwf_imax │ │ │ │ │ +0000139c 00001703 R_ARM_REL32 00000000 .LC0 │ │ │ │ │ +000013a0 00001803 R_ARM_REL32 00000008 .LC1 │ │ │ │ │ +000013d0 0000481c R_ARM_CALL 00000000 fftwf_mpi_mkdtensor │ │ │ │ │ +000013dc 0000481c R_ARM_CALL 00000000 fftwf_mpi_mkdtensor │ │ │ │ │ +00001554 0000451c R_ARM_CALL 00000000 fftwf_mpi_num_blocks_total │ │ │ │ │ +00001564 0000491c R_ARM_CALL 00000000 __aeabi_idiv │ │ │ │ │ +000015c0 00004c1c R_ARM_CALL 00000000 fftwf_mpi_default_block │ │ │ │ │ +000015d4 00004d1c R_ARM_CALL 00000000 fftwf_mpi_num_blocks │ │ │ │ │ +000015e4 0000491c R_ARM_CALL 00000000 __aeabi_idiv │ │ │ │ │ +00001654 00004a1c R_ARM_CALL 00000000 fftwf_mpi_dtensor_destroy │ │ │ │ │ +00001660 00004b1c R_ARM_CALL 00000000 fftwf_mpi_dtensor_canonical │ │ │ │ │ 0000166c 00004a1c R_ARM_CALL 00000000 fftwf_mpi_dtensor_destroy │ │ │ │ │ -00001688 0000491c R_ARM_CALL 00000000 __aeabi_idiv │ │ │ │ │ -00001694 0000521c R_ARM_CALL 00000000 fftwf_imax │ │ │ │ │ -000016d4 0000551c R_ARM_CALL 00000000 fftwf_mpi_choose_radix │ │ │ │ │ -000016e8 0000491c R_ARM_CALL 00000000 __aeabi_idiv │ │ │ │ │ -00001734 0000511c R_ARM_CALL 00000000 fftwf_mpi_is_block1d │ │ │ │ │ -000017b8 0000521c R_ARM_CALL 00000000 fftwf_imax │ │ │ │ │ -000017c4 0000521c R_ARM_CALL 00000000 fftwf_imax │ │ │ │ │ -000017d0 00004a1c R_ARM_CALL 00000000 fftwf_mpi_dtensor_destroy │ │ │ │ │ -0000184c 0000561c R_ARM_CALL 00000000 fftwf_assertion_failed │ │ │ │ │ -00001860 0000511c R_ARM_CALL 00000000 fftwf_mpi_is_block1d │ │ │ │ │ -00001894 00004d1c R_ARM_CALL 00000000 fftwf_mpi_num_blocks │ │ │ │ │ -000018fc 00004c1c R_ARM_CALL 00000000 fftwf_mpi_default_block │ │ │ │ │ -0000190c 0000471c R_ARM_CALL 00000000 fftwf_mpi_block │ │ │ │ │ -0000191c 0000491c R_ARM_CALL 00000000 __aeabi_idiv │ │ │ │ │ -00001928 0000521c R_ARM_CALL 00000000 fftwf_imax │ │ │ │ │ -00001974 00004c1c R_ARM_CALL 00000000 fftwf_mpi_default_block │ │ │ │ │ -00001984 0000471c R_ARM_CALL 00000000 fftwf_mpi_block │ │ │ │ │ -00001994 0000491c R_ARM_CALL 00000000 __aeabi_idiv │ │ │ │ │ -000019a0 0000521c R_ARM_CALL 00000000 fftwf_imax │ │ │ │ │ -000019bc 0000521c R_ARM_CALL 00000000 fftwf_imax │ │ │ │ │ -000019cc 0000521c R_ARM_CALL 00000000 fftwf_imax │ │ │ │ │ -000019f4 00004d1c R_ARM_CALL 00000000 fftwf_mpi_num_blocks │ │ │ │ │ -00001a24 00004c1c R_ARM_CALL 00000000 fftwf_mpi_default_block │ │ │ │ │ -00001a94 0000521c R_ARM_CALL 00000000 fftwf_imax │ │ │ │ │ -00001ae8 00001703 R_ARM_REL32 00000000 .LC0 │ │ │ │ │ -00001aec 00001803 R_ARM_REL32 00000008 .LC1 │ │ │ │ │ -00001b18 00004e1c R_ARM_CALL 00000000 fftwf_malloc_plain │ │ │ │ │ -00001b54 00004e1c R_ARM_CALL 00000000 fftwf_malloc_plain │ │ │ │ │ -00001bf8 0000531c R_ARM_CALL 00000000 fftwf_ifree │ │ │ │ │ -00001c00 0000531c R_ARM_CALL 00000000 fftwf_ifree │ │ │ │ │ -00001c10 00004e1c R_ARM_CALL 00000000 fftwf_malloc_plain │ │ │ │ │ -00001d34 0000501c R_ARM_CALL 00000000 MPI_Comm_size │ │ │ │ │ -00001d64 0000451c R_ARM_CALL 00000000 fftwf_mpi_num_blocks_total │ │ │ │ │ -00001d7c 0000451c R_ARM_CALL 00000000 fftwf_mpi_num_blocks_total │ │ │ │ │ -00001dd8 0000571c R_ARM_CALL 00000000 fftwf_mpi_mkproblem_rdft2_d │ │ │ │ │ -00001de8 0000581c R_ARM_CALL 00000000 fftwf_mkapiplan │ │ │ │ │ -00001df8 00004a1c R_ARM_CALL 00000000 fftwf_mpi_dtensor_destroy │ │ │ │ │ -00001e08 0000591c R_ARM_CALL 00000000 fftwf_the_planner │ │ │ │ │ -00001e3c 00005a1c R_ARM_CALL 00000000 fftwf_mpi_conf_standard │ │ │ │ │ -00001e4c 00000103 R_ARM_REL32 00000000 .bss │ │ │ │ │ -00001edc 0000501c R_ARM_CALL 00000000 MPI_Comm_size │ │ │ │ │ -00001f0c 0000451c R_ARM_CALL 00000000 fftwf_mpi_num_blocks_total │ │ │ │ │ -00001f24 0000451c R_ARM_CALL 00000000 fftwf_mpi_num_blocks_total │ │ │ │ │ -00001f80 0000571c R_ARM_CALL 00000000 fftwf_mpi_mkproblem_rdft2_d │ │ │ │ │ -00001f90 0000581c R_ARM_CALL 00000000 fftwf_mkapiplan │ │ │ │ │ -00001f9c 0000591c R_ARM_CALL 00000000 fftwf_the_planner │ │ │ │ │ -00001fd0 00005a1c R_ARM_CALL 00000000 fftwf_mpi_conf_standard │ │ │ │ │ -00001fe4 00004a1c R_ARM_CALL 00000000 fftwf_mpi_dtensor_destroy │ │ │ │ │ -00001ff4 00000103 R_ARM_REL32 00000000 .bss │ │ │ │ │ -00002088 0000501c R_ARM_CALL 00000000 MPI_Comm_size │ │ │ │ │ -000020cc 0000451c R_ARM_CALL 00000000 fftwf_mpi_num_blocks_total │ │ │ │ │ -000020e4 0000451c R_ARM_CALL 00000000 fftwf_mpi_num_blocks_total │ │ │ │ │ -00002130 0000571c R_ARM_CALL 00000000 fftwf_mpi_mkproblem_rdft2_d │ │ │ │ │ -00002140 0000581c R_ARM_CALL 00000000 fftwf_mkapiplan │ │ │ │ │ -00002150 00004a1c R_ARM_CALL 00000000 fftwf_mpi_dtensor_destroy │ │ │ │ │ -00002160 0000591c R_ARM_CALL 00000000 fftwf_the_planner │ │ │ │ │ -00002194 00005a1c R_ARM_CALL 00000000 fftwf_mpi_conf_standard │ │ │ │ │ -000021c0 00000103 R_ARM_REL32 00000000 .bss │ │ │ │ │ -000021ec 0000591c R_ARM_CALL 00000000 fftwf_the_planner │ │ │ │ │ -00002220 00005a1c R_ARM_CALL 00000000 fftwf_mpi_conf_standard │ │ │ │ │ -00002230 00000103 R_ARM_REL32 00000000 .bss │ │ │ │ │ -00002248 00005d1c R_ARM_CALL 00000000 fftwf_cleanup │ │ │ │ │ -00002260 00000103 R_ARM_REL32 00000000 .bss │ │ │ │ │ -00002640 0000501c R_ARM_CALL 00000000 MPI_Comm_size │ │ │ │ │ -0000265c 00004d1c R_ARM_CALL 00000000 fftwf_mpi_num_blocks │ │ │ │ │ -00002674 00004d1c R_ARM_CALL 00000000 fftwf_mpi_num_blocks │ │ │ │ │ -000026b4 00006a1c R_ARM_CALL 00000000 fftwf_mpi_mkproblem_transpose │ │ │ │ │ -000026c4 0000581c R_ARM_CALL 00000000 fftwf_mkapiplan │ │ │ │ │ -000026dc 0000591c R_ARM_CALL 00000000 fftwf_the_planner │ │ │ │ │ -00002710 00005a1c R_ARM_CALL 00000000 fftwf_mpi_conf_standard │ │ │ │ │ -00002728 00004c1c R_ARM_CALL 00000000 fftwf_mpi_default_block │ │ │ │ │ -0000273c 00004c1c R_ARM_CALL 00000000 fftwf_mpi_default_block │ │ │ │ │ -00002750 00000103 R_ARM_REL32 00000000 .bss │ │ │ │ │ -000027a4 0000501c R_ARM_CALL 00000000 MPI_Comm_size │ │ │ │ │ -000027b0 00004c1c R_ARM_CALL 00000000 fftwf_mpi_default_block │ │ │ │ │ -000027c0 00004c1c R_ARM_CALL 00000000 fftwf_mpi_default_block │ │ │ │ │ -000027d0 00004d1c R_ARM_CALL 00000000 fftwf_mpi_num_blocks │ │ │ │ │ -000027e8 00004d1c R_ARM_CALL 00000000 fftwf_mpi_num_blocks │ │ │ │ │ -00002820 00006a1c R_ARM_CALL 00000000 fftwf_mpi_mkproblem_transpose │ │ │ │ │ -00002830 0000581c R_ARM_CALL 00000000 fftwf_mkapiplan │ │ │ │ │ -00002848 0000591c R_ARM_CALL 00000000 fftwf_the_planner │ │ │ │ │ -0000287c 00005a1c R_ARM_CALL 00000000 fftwf_mpi_conf_standard │ │ │ │ │ -0000288c 00000103 R_ARM_REL32 00000000 .bss │ │ │ │ │ -00002920 0000501c R_ARM_CALL 00000000 MPI_Comm_size │ │ │ │ │ -00002940 0000451c R_ARM_CALL 00000000 fftwf_mpi_num_blocks_total │ │ │ │ │ -00002958 0000451c R_ARM_CALL 00000000 fftwf_mpi_num_blocks_total │ │ │ │ │ -00002994 00006d1c R_ARM_CALL 00000000 fftwf_mpi_mkproblem_dft_d │ │ │ │ │ -000029a0 0000581c R_ARM_CALL 00000000 fftwf_mkapiplan │ │ │ │ │ -000029b0 00004a1c R_ARM_CALL 00000000 fftwf_mpi_dtensor_destroy │ │ │ │ │ -000029c0 0000591c R_ARM_CALL 00000000 fftwf_the_planner │ │ │ │ │ -000029f4 00005a1c R_ARM_CALL 00000000 fftwf_mpi_conf_standard │ │ │ │ │ -00002a04 00000103 R_ARM_REL32 00000000 .bss │ │ │ │ │ -00002a3c 00004e1c R_ARM_CALL 00000000 fftwf_malloc_plain │ │ │ │ │ -00002ac8 00006c1c R_ARM_CALL 000028a0 fftwf_mpi_plan_guru_dft │ │ │ │ │ -00002ad4 0000531c R_ARM_CALL 00000000 fftwf_ifree │ │ │ │ │ -00002b18 00004e1c R_ARM_CALL 00000000 fftwf_malloc_plain │ │ │ │ │ -00002ba4 00006c1c R_ARM_CALL 000028a0 fftwf_mpi_plan_guru_dft │ │ │ │ │ -00002bb0 0000531c R_ARM_CALL 00000000 fftwf_ifree │ │ │ │ │ -00002bec 00004e1c R_ARM_CALL 00000000 fftwf_malloc_plain │ │ │ │ │ -00002c28 0000501c R_ARM_CALL 00000000 MPI_Comm_size │ │ │ │ │ -00002c40 0000451c R_ARM_CALL 00000000 fftwf_mpi_num_blocks_total │ │ │ │ │ -00002c58 0000451c R_ARM_CALL 00000000 fftwf_mpi_num_blocks_total │ │ │ │ │ -00002c90 00006d1c R_ARM_CALL 00000000 fftwf_mpi_mkproblem_dft_d │ │ │ │ │ -00002c9c 0000581c R_ARM_CALL 00000000 fftwf_mkapiplan │ │ │ │ │ -00002cac 00004a1c R_ARM_CALL 00000000 fftwf_mpi_dtensor_destroy │ │ │ │ │ -00002cb8 0000531c R_ARM_CALL 00000000 fftwf_ifree │ │ │ │ │ -00002cc8 0000591c R_ARM_CALL 00000000 fftwf_the_planner │ │ │ │ │ -00002cfc 00005a1c R_ARM_CALL 00000000 fftwf_mpi_conf_standard │ │ │ │ │ -00002d30 00000103 R_ARM_REL32 00000000 .bss │ │ │ │ │ -00002d64 00004e1c R_ARM_CALL 00000000 fftwf_malloc_plain │ │ │ │ │ -00002e04 0000501c R_ARM_CALL 00000000 MPI_Comm_size │ │ │ │ │ -00002e20 0000451c R_ARM_CALL 00000000 fftwf_mpi_num_blocks_total │ │ │ │ │ -00002e38 0000451c R_ARM_CALL 00000000 fftwf_mpi_num_blocks_total │ │ │ │ │ -00002e70 00006d1c R_ARM_CALL 00000000 fftwf_mpi_mkproblem_dft_d │ │ │ │ │ -00002e80 0000581c R_ARM_CALL 00000000 fftwf_mkapiplan │ │ │ │ │ -00002e90 00004a1c R_ARM_CALL 00000000 fftwf_mpi_dtensor_destroy │ │ │ │ │ -00002e9c 0000531c R_ARM_CALL 00000000 fftwf_ifree │ │ │ │ │ -00002eac 0000591c R_ARM_CALL 00000000 fftwf_the_planner │ │ │ │ │ -00002ee0 00005a1c R_ARM_CALL 00000000 fftwf_mpi_conf_standard │ │ │ │ │ -00002ef4 00000103 R_ARM_REL32 00000000 .bss │ │ │ │ │ -00002f28 00004e1c R_ARM_CALL 00000000 fftwf_malloc_plain │ │ │ │ │ -00003000 0000501c R_ARM_CALL 00000000 MPI_Comm_size │ │ │ │ │ -0000301c 0000451c R_ARM_CALL 00000000 fftwf_mpi_num_blocks_total │ │ │ │ │ -00003034 0000451c R_ARM_CALL 00000000 fftwf_mpi_num_blocks_total │ │ │ │ │ -0000306c 00006d1c R_ARM_CALL 00000000 fftwf_mpi_mkproblem_dft_d │ │ │ │ │ -0000307c 0000581c R_ARM_CALL 00000000 fftwf_mkapiplan │ │ │ │ │ -0000308c 00004a1c R_ARM_CALL 00000000 fftwf_mpi_dtensor_destroy │ │ │ │ │ -00003098 0000531c R_ARM_CALL 00000000 fftwf_ifree │ │ │ │ │ -000030a8 0000591c R_ARM_CALL 00000000 fftwf_the_planner │ │ │ │ │ -000030dc 00005a1c R_ARM_CALL 00000000 fftwf_mpi_conf_standard │ │ │ │ │ -000030ec 00000103 R_ARM_REL32 00000000 .bss │ │ │ │ │ -00003180 0000741c R_ARM_CALL 00000000 fftwf_map_r2r_kind │ │ │ │ │ -00003190 0000501c R_ARM_CALL 00000000 MPI_Comm_size │ │ │ │ │ -000031b0 0000451c R_ARM_CALL 00000000 fftwf_mpi_num_blocks_total │ │ │ │ │ -000031c8 0000451c R_ARM_CALL 00000000 fftwf_mpi_num_blocks_total │ │ │ │ │ -00003200 0000751c R_ARM_CALL 00000000 fftwf_mpi_mkproblem_rdft_d │ │ │ │ │ -00003210 0000581c R_ARM_CALL 00000000 fftwf_mkapiplan │ │ │ │ │ -0000321c 0000761c R_ARM_CALL 00000000 fftwf_ifree0 │ │ │ │ │ -00003230 00004a1c R_ARM_CALL 00000000 fftwf_mpi_dtensor_destroy │ │ │ │ │ -00003244 0000591c R_ARM_CALL 00000000 fftwf_the_planner │ │ │ │ │ -00003278 00005a1c R_ARM_CALL 00000000 fftwf_mpi_conf_standard │ │ │ │ │ -00003288 00000103 R_ARM_REL32 00000000 .bss │ │ │ │ │ -000032c0 00004e1c R_ARM_CALL 00000000 fftwf_malloc_plain │ │ │ │ │ -0000334c 0000731c R_ARM_CALL 00003100 fftwf_mpi_plan_guru_r2r │ │ │ │ │ -00003358 0000531c R_ARM_CALL 00000000 fftwf_ifree │ │ │ │ │ -0000339c 00004e1c R_ARM_CALL 00000000 fftwf_malloc_plain │ │ │ │ │ -00003428 0000731c R_ARM_CALL 00003100 fftwf_mpi_plan_guru_r2r │ │ │ │ │ -00003434 0000531c R_ARM_CALL 00000000 fftwf_ifree │ │ │ │ │ -00003484 00004e1c R_ARM_CALL 00000000 fftwf_malloc_plain │ │ │ │ │ -00003524 0000741c R_ARM_CALL 00000000 fftwf_map_r2r_kind │ │ │ │ │ -00003534 0000501c R_ARM_CALL 00000000 MPI_Comm_size │ │ │ │ │ -00003550 0000451c R_ARM_CALL 00000000 fftwf_mpi_num_blocks_total │ │ │ │ │ -00003568 0000451c R_ARM_CALL 00000000 fftwf_mpi_num_blocks_total │ │ │ │ │ -0000359c 0000751c R_ARM_CALL 00000000 fftwf_mpi_mkproblem_rdft_d │ │ │ │ │ -000035ac 0000581c R_ARM_CALL 00000000 fftwf_mkapiplan │ │ │ │ │ -000035b8 0000761c R_ARM_CALL 00000000 fftwf_ifree0 │ │ │ │ │ -000035c4 00004a1c R_ARM_CALL 00000000 fftwf_mpi_dtensor_destroy │ │ │ │ │ -000035d0 0000531c R_ARM_CALL 00000000 fftwf_ifree │ │ │ │ │ -000035e0 0000591c R_ARM_CALL 00000000 fftwf_the_planner │ │ │ │ │ -00003614 00005a1c R_ARM_CALL 00000000 fftwf_mpi_conf_standard │ │ │ │ │ -00003628 00000103 R_ARM_REL32 00000000 .bss │ │ │ │ │ -00003674 00004e1c R_ARM_CALL 00000000 fftwf_malloc_plain │ │ │ │ │ -0000374c 0000741c R_ARM_CALL 00000000 fftwf_map_r2r_kind │ │ │ │ │ -0000375c 0000501c R_ARM_CALL 00000000 MPI_Comm_size │ │ │ │ │ -00003778 0000451c R_ARM_CALL 00000000 fftwf_mpi_num_blocks_total │ │ │ │ │ -00003790 0000451c R_ARM_CALL 00000000 fftwf_mpi_num_blocks_total │ │ │ │ │ -000037c4 0000751c R_ARM_CALL 00000000 fftwf_mpi_mkproblem_rdft_d │ │ │ │ │ -000037d4 0000581c R_ARM_CALL 00000000 fftwf_mkapiplan │ │ │ │ │ -000037e0 0000761c R_ARM_CALL 00000000 fftwf_ifree0 │ │ │ │ │ -000037ec 00004a1c R_ARM_CALL 00000000 fftwf_mpi_dtensor_destroy │ │ │ │ │ -000037f8 0000531c R_ARM_CALL 00000000 fftwf_ifree │ │ │ │ │ -00003808 0000591c R_ARM_CALL 00000000 fftwf_the_planner │ │ │ │ │ -0000383c 00005a1c R_ARM_CALL 00000000 fftwf_mpi_conf_standard │ │ │ │ │ -0000384c 00000103 R_ARM_REL32 00000000 .bss │ │ │ │ │ -00003884 00004e1c R_ARM_CALL 00000000 fftwf_malloc_plain │ │ │ │ │ -0000391c 0000531c R_ARM_CALL 00000000 fftwf_ifree │ │ │ │ │ -00003960 00004e1c R_ARM_CALL 00000000 fftwf_malloc_plain │ │ │ │ │ -000039f8 0000531c R_ARM_CALL 00000000 fftwf_ifree │ │ │ │ │ -00003a3c 00004e1c R_ARM_CALL 00000000 fftwf_malloc_plain │ │ │ │ │ -00003ad4 0000531c R_ARM_CALL 00000000 fftwf_ifree │ │ │ │ │ -00003b14 00004e1c R_ARM_CALL 00000000 fftwf_malloc_plain │ │ │ │ │ -00003b74 0000531c R_ARM_CALL 00000000 fftwf_ifree │ │ │ │ │ -00003ba4 00004e1c R_ARM_CALL 00000000 fftwf_malloc_plain │ │ │ │ │ -00003c0c 0000531c R_ARM_CALL 00000000 fftwf_ifree │ │ │ │ │ -00003c40 00004e1c R_ARM_CALL 00000000 fftwf_malloc_plain │ │ │ │ │ -00003cd8 0000531c R_ARM_CALL 00000000 fftwf_ifree │ │ │ │ │ -00003d18 00004e1c R_ARM_CALL 00000000 fftwf_malloc_plain │ │ │ │ │ -00003d80 0000531c R_ARM_CALL 00000000 fftwf_ifree │ │ │ │ │ -00003db0 00004e1c R_ARM_CALL 00000000 fftwf_malloc_plain │ │ │ │ │ -00003e24 0000531c R_ARM_CALL 00000000 fftwf_ifree │ │ │ │ │ -00003e34 0000841d R_ARM_JUMP24 00000000 fftwf_execute_r2r │ │ │ │ │ -00003e38 0000841d R_ARM_JUMP24 00000000 fftwf_execute_r2r │ │ │ │ │ -00003e3c 0000841d R_ARM_JUMP24 00000000 fftwf_execute_r2r │ │ │ │ │ -00003e40 0000841d R_ARM_JUMP24 00000000 fftwf_execute_r2r │ │ │ │ │ +000016d4 0000541c R_ARM_CALL 00000000 fftwf_is_prime │ │ │ │ │ +00001754 00004f1c R_ARM_CALL 00000000 MPI_Comm_rank │ │ │ │ │ +00001760 0000501c R_ARM_CALL 00000000 MPI_Comm_size │ │ │ │ │ +000017a4 0000481c R_ARM_CALL 00000000 fftwf_mpi_mkdtensor │ │ │ │ │ +000017d4 00004c1c R_ARM_CALL 00000000 fftwf_mpi_default_block │ │ │ │ │ +000017fc 00004a1c R_ARM_CALL 00000000 fftwf_mpi_dtensor_destroy │ │ │ │ │ +00001814 0000491c R_ARM_CALL 00000000 __aeabi_idiv │ │ │ │ │ +00001820 0000521c R_ARM_CALL 00000000 fftwf_imax │ │ │ │ │ +0000189c 0000521c R_ARM_CALL 00000000 fftwf_imax │ │ │ │ │ +000018a8 0000521c R_ARM_CALL 00000000 fftwf_imax │ │ │ │ │ +000018b4 00004a1c R_ARM_CALL 00000000 fftwf_mpi_dtensor_destroy │ │ │ │ │ +0000190c 0000551c R_ARM_CALL 00000000 fftwf_mpi_choose_radix │ │ │ │ │ +00001928 0000491c R_ARM_CALL 00000000 __aeabi_idiv │ │ │ │ │ +00001970 0000511c R_ARM_CALL 00000000 fftwf_mpi_is_block1d │ │ │ │ │ +000019e4 0000561c R_ARM_CALL 00000000 fftwf_assertion_failed │ │ │ │ │ +000019f8 0000511c R_ARM_CALL 00000000 fftwf_mpi_is_block1d │ │ │ │ │ +00001a34 00004d1c R_ARM_CALL 00000000 fftwf_mpi_num_blocks │ │ │ │ │ +00001a98 00004c1c R_ARM_CALL 00000000 fftwf_mpi_default_block │ │ │ │ │ +00001aa8 0000471c R_ARM_CALL 00000000 fftwf_mpi_block │ │ │ │ │ +00001ab8 0000491c R_ARM_CALL 00000000 __aeabi_idiv │ │ │ │ │ +00001ac4 0000521c R_ARM_CALL 00000000 fftwf_imax │ │ │ │ │ +00001b10 00004c1c R_ARM_CALL 00000000 fftwf_mpi_default_block │ │ │ │ │ +00001b20 0000471c R_ARM_CALL 00000000 fftwf_mpi_block │ │ │ │ │ +00001b30 0000491c R_ARM_CALL 00000000 __aeabi_idiv │ │ │ │ │ +00001b3c 0000521c R_ARM_CALL 00000000 fftwf_imax │ │ │ │ │ +00001b58 0000521c R_ARM_CALL 00000000 fftwf_imax │ │ │ │ │ +00001b6c 0000521c R_ARM_CALL 00000000 fftwf_imax │ │ │ │ │ +00001b8c 00004d1c R_ARM_CALL 00000000 fftwf_mpi_num_blocks │ │ │ │ │ +00001bc0 00004c1c R_ARM_CALL 00000000 fftwf_mpi_default_block │ │ │ │ │ +00001c18 0000521c R_ARM_CALL 00000000 fftwf_imax │ │ │ │ │ +00001c64 00001703 R_ARM_REL32 00000000 .LC0 │ │ │ │ │ +00001c68 00001803 R_ARM_REL32 00000008 .LC1 │ │ │ │ │ +00001ca4 00004e1c R_ARM_CALL 00000000 fftwf_malloc_plain │ │ │ │ │ +00001ce0 00004e1c R_ARM_CALL 00000000 fftwf_malloc_plain │ │ │ │ │ +00001d88 0000531c R_ARM_CALL 00000000 fftwf_ifree │ │ │ │ │ +00001d90 0000531c R_ARM_CALL 00000000 fftwf_ifree │ │ │ │ │ +00001db4 00004e1c R_ARM_CALL 00000000 fftwf_malloc_plain │ │ │ │ │ +00001ee8 0000501c R_ARM_CALL 00000000 MPI_Comm_size │ │ │ │ │ +00001f18 0000451c R_ARM_CALL 00000000 fftwf_mpi_num_blocks_total │ │ │ │ │ +00001f30 0000451c R_ARM_CALL 00000000 fftwf_mpi_num_blocks_total │ │ │ │ │ +00001f78 0000571c R_ARM_CALL 00000000 fftwf_mpi_mkproblem_rdft2_d │ │ │ │ │ +00001f88 0000581c R_ARM_CALL 00000000 fftwf_mkapiplan │ │ │ │ │ +00001f94 00004a1c R_ARM_CALL 00000000 fftwf_mpi_dtensor_destroy │ │ │ │ │ +00001fb4 0000591c R_ARM_CALL 00000000 fftwf_the_planner │ │ │ │ │ +00001fe8 00005a1c R_ARM_CALL 00000000 fftwf_mpi_conf_standard │ │ │ │ │ +00002010 00000103 R_ARM_REL32 00000000 .bss │ │ │ │ │ +000020ac 0000501c R_ARM_CALL 00000000 MPI_Comm_size │ │ │ │ │ +000020dc 0000451c R_ARM_CALL 00000000 fftwf_mpi_num_blocks_total │ │ │ │ │ +000020f4 0000451c R_ARM_CALL 00000000 fftwf_mpi_num_blocks_total │ │ │ │ │ +0000213c 0000571c R_ARM_CALL 00000000 fftwf_mpi_mkproblem_rdft2_d │ │ │ │ │ +0000214c 0000581c R_ARM_CALL 00000000 fftwf_mkapiplan │ │ │ │ │ +00002154 0000591c R_ARM_CALL 00000000 fftwf_the_planner │ │ │ │ │ +00002188 00005a1c R_ARM_CALL 00000000 fftwf_mpi_conf_standard │ │ │ │ │ +0000219c 00004a1c R_ARM_CALL 00000000 fftwf_mpi_dtensor_destroy │ │ │ │ │ +000021d4 00000103 R_ARM_REL32 00000000 .bss │ │ │ │ │ +00002274 0000501c R_ARM_CALL 00000000 MPI_Comm_size │ │ │ │ │ +000022b8 0000451c R_ARM_CALL 00000000 fftwf_mpi_num_blocks_total │ │ │ │ │ +000022d0 0000451c R_ARM_CALL 00000000 fftwf_mpi_num_blocks_total │ │ │ │ │ +0000231c 0000571c R_ARM_CALL 00000000 fftwf_mpi_mkproblem_rdft2_d │ │ │ │ │ +0000232c 0000581c R_ARM_CALL 00000000 fftwf_mkapiplan │ │ │ │ │ +00002338 00004a1c R_ARM_CALL 00000000 fftwf_mpi_dtensor_destroy │ │ │ │ │ +00002358 0000591c R_ARM_CALL 00000000 fftwf_the_planner │ │ │ │ │ +0000238c 00005a1c R_ARM_CALL 00000000 fftwf_mpi_conf_standard │ │ │ │ │ +000023b8 00000103 R_ARM_REL32 00000000 .bss │ │ │ │ │ +000023f4 0000591c R_ARM_CALL 00000000 fftwf_the_planner │ │ │ │ │ +00002428 00005a1c R_ARM_CALL 00000000 fftwf_mpi_conf_standard │ │ │ │ │ +00002440 00000103 R_ARM_REL32 00000000 .bss │ │ │ │ │ +0000245c 00005d1c R_ARM_CALL 00000000 fftwf_cleanup │ │ │ │ │ +0000247c 00000103 R_ARM_REL32 00000000 .bss │ │ │ │ │ +000028c0 0000501c R_ARM_CALL 00000000 MPI_Comm_size │ │ │ │ │ +000028dc 00004d1c R_ARM_CALL 00000000 fftwf_mpi_num_blocks │ │ │ │ │ +000028f4 00004d1c R_ARM_CALL 00000000 fftwf_mpi_num_blocks │ │ │ │ │ +00002934 00006a1c R_ARM_CALL 00000000 fftwf_mpi_mkproblem_transpose │ │ │ │ │ +00002944 0000581c R_ARM_CALL 00000000 fftwf_mkapiplan │ │ │ │ │ +00002968 0000591c R_ARM_CALL 00000000 fftwf_the_planner │ │ │ │ │ +0000299c 00005a1c R_ARM_CALL 00000000 fftwf_mpi_conf_standard │ │ │ │ │ +000029b4 00004c1c R_ARM_CALL 00000000 fftwf_mpi_default_block │ │ │ │ │ +000029c8 00004c1c R_ARM_CALL 00000000 fftwf_mpi_default_block │ │ │ │ │ +000029dc 00000103 R_ARM_REL32 00000000 .bss │ │ │ │ │ +00002a3c 0000501c R_ARM_CALL 00000000 MPI_Comm_size │ │ │ │ │ +00002a48 00004c1c R_ARM_CALL 00000000 fftwf_mpi_default_block │ │ │ │ │ +00002a58 00004c1c R_ARM_CALL 00000000 fftwf_mpi_default_block │ │ │ │ │ +00002a68 00004d1c R_ARM_CALL 00000000 fftwf_mpi_num_blocks │ │ │ │ │ +00002a80 00004d1c R_ARM_CALL 00000000 fftwf_mpi_num_blocks │ │ │ │ │ +00002ab8 00006a1c R_ARM_CALL 00000000 fftwf_mpi_mkproblem_transpose │ │ │ │ │ +00002ac8 0000581c R_ARM_CALL 00000000 fftwf_mkapiplan │ │ │ │ │ +00002aec 0000591c R_ARM_CALL 00000000 fftwf_the_planner │ │ │ │ │ +00002b20 00005a1c R_ARM_CALL 00000000 fftwf_mpi_conf_standard │ │ │ │ │ +00002b30 00000103 R_ARM_REL32 00000000 .bss │ │ │ │ │ +00002bd0 0000501c R_ARM_CALL 00000000 MPI_Comm_size │ │ │ │ │ +00002bf0 0000451c R_ARM_CALL 00000000 fftwf_mpi_num_blocks_total │ │ │ │ │ +00002c08 0000451c R_ARM_CALL 00000000 fftwf_mpi_num_blocks_total │ │ │ │ │ +00002c44 00006d1c R_ARM_CALL 00000000 fftwf_mpi_mkproblem_dft_d │ │ │ │ │ +00002c50 0000581c R_ARM_CALL 00000000 fftwf_mkapiplan │ │ │ │ │ +00002c5c 00004a1c R_ARM_CALL 00000000 fftwf_mpi_dtensor_destroy │ │ │ │ │ +00002c7c 0000591c R_ARM_CALL 00000000 fftwf_the_planner │ │ │ │ │ +00002cb0 00005a1c R_ARM_CALL 00000000 fftwf_mpi_conf_standard │ │ │ │ │ +00002cc0 00000103 R_ARM_REL32 00000000 .bss │ │ │ │ │ +00002d04 00004e1c R_ARM_CALL 00000000 fftwf_malloc_plain │ │ │ │ │ +00002d8c 00006c1c R_ARM_CALL 00002b44 fftwf_mpi_plan_guru_dft │ │ │ │ │ +00002d98 0000531c R_ARM_CALL 00000000 fftwf_ifree │ │ │ │ │ +00002dfc 00004e1c R_ARM_CALL 00000000 fftwf_malloc_plain │ │ │ │ │ +00002e84 00006c1c R_ARM_CALL 00002b44 fftwf_mpi_plan_guru_dft │ │ │ │ │ +00002e90 0000531c R_ARM_CALL 00000000 fftwf_ifree │ │ │ │ │ +00002ef0 00004e1c R_ARM_CALL 00000000 fftwf_malloc_plain │ │ │ │ │ +00002f28 0000501c R_ARM_CALL 00000000 MPI_Comm_size │ │ │ │ │ +00002f40 0000451c R_ARM_CALL 00000000 fftwf_mpi_num_blocks_total │ │ │ │ │ +00002f58 0000451c R_ARM_CALL 00000000 fftwf_mpi_num_blocks_total │ │ │ │ │ +00002f90 00006d1c R_ARM_CALL 00000000 fftwf_mpi_mkproblem_dft_d │ │ │ │ │ +00002f9c 0000581c R_ARM_CALL 00000000 fftwf_mkapiplan │ │ │ │ │ +00002fac 00004a1c R_ARM_CALL 00000000 fftwf_mpi_dtensor_destroy │ │ │ │ │ +00002fb8 0000531c R_ARM_CALL 00000000 fftwf_ifree │ │ │ │ │ +00002fd8 0000591c R_ARM_CALL 00000000 fftwf_the_planner │ │ │ │ │ +0000300c 00005a1c R_ARM_CALL 00000000 fftwf_mpi_conf_standard │ │ │ │ │ +00003040 00000103 R_ARM_REL32 00000000 .bss │ │ │ │ │ +00003080 00004e1c R_ARM_CALL 00000000 fftwf_malloc_plain │ │ │ │ │ +00003120 0000501c R_ARM_CALL 00000000 MPI_Comm_size │ │ │ │ │ +0000313c 0000451c R_ARM_CALL 00000000 fftwf_mpi_num_blocks_total │ │ │ │ │ +00003154 0000451c R_ARM_CALL 00000000 fftwf_mpi_num_blocks_total │ │ │ │ │ +0000318c 00006d1c R_ARM_CALL 00000000 fftwf_mpi_mkproblem_dft_d │ │ │ │ │ +0000319c 0000581c R_ARM_CALL 00000000 fftwf_mkapiplan │ │ │ │ │ +000031ac 00004a1c R_ARM_CALL 00000000 fftwf_mpi_dtensor_destroy │ │ │ │ │ +000031b8 0000531c R_ARM_CALL 00000000 fftwf_ifree │ │ │ │ │ +000031d8 0000591c R_ARM_CALL 00000000 fftwf_the_planner │ │ │ │ │ +0000320c 00005a1c R_ARM_CALL 00000000 fftwf_mpi_conf_standard │ │ │ │ │ +00003220 00000103 R_ARM_REL32 00000000 .bss │ │ │ │ │ +00003260 00004e1c R_ARM_CALL 00000000 fftwf_malloc_plain │ │ │ │ │ +00003338 0000501c R_ARM_CALL 00000000 MPI_Comm_size │ │ │ │ │ +00003354 0000451c R_ARM_CALL 00000000 fftwf_mpi_num_blocks_total │ │ │ │ │ +0000336c 0000451c R_ARM_CALL 00000000 fftwf_mpi_num_blocks_total │ │ │ │ │ +000033a4 00006d1c R_ARM_CALL 00000000 fftwf_mpi_mkproblem_dft_d │ │ │ │ │ +000033b4 0000581c R_ARM_CALL 00000000 fftwf_mkapiplan │ │ │ │ │ +000033c4 00004a1c R_ARM_CALL 00000000 fftwf_mpi_dtensor_destroy │ │ │ │ │ +000033d0 0000531c R_ARM_CALL 00000000 fftwf_ifree │ │ │ │ │ +000033f0 0000591c R_ARM_CALL 00000000 fftwf_the_planner │ │ │ │ │ +00003424 00005a1c R_ARM_CALL 00000000 fftwf_mpi_conf_standard │ │ │ │ │ +00003434 00000103 R_ARM_REL32 00000000 .bss │ │ │ │ │ +000034d4 0000741c R_ARM_CALL 00000000 fftwf_map_r2r_kind │ │ │ │ │ +000034e4 0000501c R_ARM_CALL 00000000 MPI_Comm_size │ │ │ │ │ +00003504 0000451c R_ARM_CALL 00000000 fftwf_mpi_num_blocks_total │ │ │ │ │ +0000351c 0000451c R_ARM_CALL 00000000 fftwf_mpi_num_blocks_total │ │ │ │ │ +00003554 0000751c R_ARM_CALL 00000000 fftwf_mpi_mkproblem_rdft_d │ │ │ │ │ +00003564 0000581c R_ARM_CALL 00000000 fftwf_mkapiplan │ │ │ │ │ +00003570 0000761c R_ARM_CALL 00000000 fftwf_ifree0 │ │ │ │ │ +0000357c 00004a1c R_ARM_CALL 00000000 fftwf_mpi_dtensor_destroy │ │ │ │ │ +000035a0 0000591c R_ARM_CALL 00000000 fftwf_the_planner │ │ │ │ │ +000035d4 00005a1c R_ARM_CALL 00000000 fftwf_mpi_conf_standard │ │ │ │ │ +000035e4 00000103 R_ARM_REL32 00000000 .bss │ │ │ │ │ +00003628 00004e1c R_ARM_CALL 00000000 fftwf_malloc_plain │ │ │ │ │ +000036b0 0000731c R_ARM_CALL 00003448 fftwf_mpi_plan_guru_r2r │ │ │ │ │ +000036bc 0000531c R_ARM_CALL 00000000 fftwf_ifree │ │ │ │ │ +00003720 00004e1c R_ARM_CALL 00000000 fftwf_malloc_plain │ │ │ │ │ +000037a8 0000731c R_ARM_CALL 00003448 fftwf_mpi_plan_guru_r2r │ │ │ │ │ +000037b4 0000531c R_ARM_CALL 00000000 fftwf_ifree │ │ │ │ │ +00003824 00004e1c R_ARM_CALL 00000000 fftwf_malloc_plain │ │ │ │ │ +000038c4 0000741c R_ARM_CALL 00000000 fftwf_map_r2r_kind │ │ │ │ │ +000038d4 0000501c R_ARM_CALL 00000000 MPI_Comm_size │ │ │ │ │ +000038f0 0000451c R_ARM_CALL 00000000 fftwf_mpi_num_blocks_total │ │ │ │ │ +00003908 0000451c R_ARM_CALL 00000000 fftwf_mpi_num_blocks_total │ │ │ │ │ +0000393c 0000751c R_ARM_CALL 00000000 fftwf_mpi_mkproblem_rdft_d │ │ │ │ │ +0000394c 0000581c R_ARM_CALL 00000000 fftwf_mkapiplan │ │ │ │ │ +00003958 0000761c R_ARM_CALL 00000000 fftwf_ifree0 │ │ │ │ │ +00003964 00004a1c R_ARM_CALL 00000000 fftwf_mpi_dtensor_destroy │ │ │ │ │ +00003970 0000531c R_ARM_CALL 00000000 fftwf_ifree │ │ │ │ │ +00003990 0000591c R_ARM_CALL 00000000 fftwf_the_planner │ │ │ │ │ +000039c4 00005a1c R_ARM_CALL 00000000 fftwf_mpi_conf_standard │ │ │ │ │ +000039d8 00000103 R_ARM_REL32 00000000 .bss │ │ │ │ │ +00003a30 00004e1c R_ARM_CALL 00000000 fftwf_malloc_plain │ │ │ │ │ +00003b08 0000741c R_ARM_CALL 00000000 fftwf_map_r2r_kind │ │ │ │ │ +00003b18 0000501c R_ARM_CALL 00000000 MPI_Comm_size │ │ │ │ │ +00003b34 0000451c R_ARM_CALL 00000000 fftwf_mpi_num_blocks_total │ │ │ │ │ +00003b4c 0000451c R_ARM_CALL 00000000 fftwf_mpi_num_blocks_total │ │ │ │ │ +00003b80 0000751c R_ARM_CALL 00000000 fftwf_mpi_mkproblem_rdft_d │ │ │ │ │ +00003b90 0000581c R_ARM_CALL 00000000 fftwf_mkapiplan │ │ │ │ │ +00003b9c 0000761c R_ARM_CALL 00000000 fftwf_ifree0 │ │ │ │ │ +00003ba8 00004a1c R_ARM_CALL 00000000 fftwf_mpi_dtensor_destroy │ │ │ │ │ +00003bb4 0000531c R_ARM_CALL 00000000 fftwf_ifree │ │ │ │ │ +00003bd4 0000591c R_ARM_CALL 00000000 fftwf_the_planner │ │ │ │ │ +00003c08 00005a1c R_ARM_CALL 00000000 fftwf_mpi_conf_standard │ │ │ │ │ +00003c18 00000103 R_ARM_REL32 00000000 .bss │ │ │ │ │ +00003c5c 00004e1c R_ARM_CALL 00000000 fftwf_malloc_plain │ │ │ │ │ +00003cf0 0000531c R_ARM_CALL 00000000 fftwf_ifree │ │ │ │ │ +00003d50 00004e1c R_ARM_CALL 00000000 fftwf_malloc_plain │ │ │ │ │ +00003de4 0000531c R_ARM_CALL 00000000 fftwf_ifree │ │ │ │ │ +00003e48 00004e1c R_ARM_CALL 00000000 fftwf_malloc_plain │ │ │ │ │ +00003edc 0000531c R_ARM_CALL 00000000 fftwf_ifree │ │ │ │ │ +00003f3c 00004e1c R_ARM_CALL 00000000 fftwf_malloc_plain │ │ │ │ │ +00003f9c 0000531c R_ARM_CALL 00000000 fftwf_ifree │ │ │ │ │ +00003fe8 00004e1c R_ARM_CALL 00000000 fftwf_malloc_plain │ │ │ │ │ +00004050 0000531c R_ARM_CALL 00000000 fftwf_ifree │ │ │ │ │ +000040a4 00004e1c R_ARM_CALL 00000000 fftwf_malloc_plain │ │ │ │ │ +00004138 0000531c R_ARM_CALL 00000000 fftwf_ifree │ │ │ │ │ +00004198 00004e1c R_ARM_CALL 00000000 fftwf_malloc_plain │ │ │ │ │ +00004200 0000531c R_ARM_CALL 00000000 fftwf_ifree │ │ │ │ │ +0000424c 00004e1c R_ARM_CALL 00000000 fftwf_malloc_plain │ │ │ │ │ +000042c0 0000531c R_ARM_CALL 00000000 fftwf_ifree │ │ │ │ │ +000042e0 0000841d R_ARM_JUMP24 00000000 fftwf_execute_r2r │ │ │ │ │ +000042e4 0000841d R_ARM_JUMP24 00000000 fftwf_execute_r2r │ │ │ │ │ +000042e8 0000841d R_ARM_JUMP24 00000000 fftwf_execute_r2r │ │ │ │ │ +000042ec 0000841d R_ARM_JUMP24 00000000 fftwf_execute_r2r │ │ │ │ ├── objdump --line-numbers --disassemble --demangle --reloc --no-show-raw-insn --section=.text {} │ │ │ │ │ @@ -2,376 +2,399 @@ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ Disassembly of section .text: │ │ │ │ │ │ │ │ │ │ 00000000 : │ │ │ │ │ bogosity_hook(): │ │ │ │ │ ldr r3, [r1] │ │ │ │ │ - ldr r2, [pc, #104] @ 74 │ │ │ │ │ + str r4, [sp, #-8]! │ │ │ │ │ + mov r4, r0 │ │ │ │ │ + ldr r2, [pc, #108] @ 80 │ │ │ │ │ + str lr, [sp, #4] │ │ │ │ │ ldr r3, [r3] │ │ │ │ │ add r2, pc, r2 │ │ │ │ │ sub r3, r3, #4 │ │ │ │ │ - push {r4, lr} │ │ │ │ │ - mov r4, r0 │ │ │ │ │ cmp r3, #3 │ │ │ │ │ - bhi 54 │ │ │ │ │ + bhi 58 │ │ │ │ │ ldrb r3, [r2, r3] │ │ │ │ │ add pc, pc, r3, lsl #2 │ │ │ │ │ nop @ (mov r0, r0) │ │ │ │ │ ldr r1, [r1, #28] │ │ │ │ │ cmp r1, #67108864 @ 0x4000000 │ │ │ │ │ - beq 54 │ │ │ │ │ + beq 58 │ │ │ │ │ sub r0, r4, #2 │ │ │ │ │ clz r0, r0 │ │ │ │ │ lsr r0, r0, #5 │ │ │ │ │ bl 0 │ │ │ │ │ R_ARM_CALL fftwf_mpi_any_true │ │ │ │ │ cmp r0, #0 │ │ │ │ │ - bne 6c │ │ │ │ │ + bne 78 │ │ │ │ │ mov r0, r4 │ │ │ │ │ - pop {r4, pc} │ │ │ │ │ + ldr r4, [sp] │ │ │ │ │ + add sp, sp, #4 │ │ │ │ │ + pop {pc} @ (ldr pc, [sp], #4) │ │ │ │ │ ldr r1, [r1, #24] │ │ │ │ │ - b 34 │ │ │ │ │ + b 38 │ │ │ │ │ ldr r1, [r1, #36] @ 0x24 │ │ │ │ │ - b 34 │ │ │ │ │ + b 38 │ │ │ │ │ mov r0, #2 │ │ │ │ │ - pop {r4, pc} │ │ │ │ │ + b 5c │ │ │ │ │ .word 0x00000060 │ │ │ │ │ R_ARM_REL32 .rodata │ │ │ │ │ │ │ │ │ │ -00000078 : │ │ │ │ │ +00000084 : │ │ │ │ │ nowisdom_hook(): │ │ │ │ │ ldr r3, [r0] │ │ │ │ │ - ldr r2, [pc, #84] @ d8 │ │ │ │ │ + ldr r2, [pc, #72] @ d8 │ │ │ │ │ ldr r3, [r3] │ │ │ │ │ add r2, pc, r2 │ │ │ │ │ sub r3, r3, #4 │ │ │ │ │ cmp r3, #3 │ │ │ │ │ - bhi d4 │ │ │ │ │ + bhi cc │ │ │ │ │ ldrb r3, [r2, r3] │ │ │ │ │ add pc, pc, r3, lsl #2 │ │ │ │ │ nop @ (mov r0, r0) │ │ │ │ │ ldr r1, [r0, #28] │ │ │ │ │ cmp r1, #67108864 @ 0x4000000 │ │ │ │ │ - bxeq lr │ │ │ │ │ + beq cc │ │ │ │ │ mov r0, #1 │ │ │ │ │ b 0 │ │ │ │ │ R_ARM_JUMP24 fftwf_mpi_any_true │ │ │ │ │ ldr r1, [r0, #24] │ │ │ │ │ cmp r1, #67108864 @ 0x4000000 │ │ │ │ │ - bne ac │ │ │ │ │ + bne b8 │ │ │ │ │ bx lr │ │ │ │ │ ldr r1, [r0, #36] @ 0x24 │ │ │ │ │ - cmp r1, #67108864 @ 0x4000000 │ │ │ │ │ - bne ac │ │ │ │ │ - bx lr │ │ │ │ │ - bx lr │ │ │ │ │ - .word 0x00000050 │ │ │ │ │ + b b0 │ │ │ │ │ + .word 0x00000044 │ │ │ │ │ R_ARM_REL32 .rodata │ │ │ │ │ │ │ │ │ │ 000000dc : │ │ │ │ │ wisdom_ok_hook(): │ │ │ │ │ - push {r4, r5, r6, r7, r8, r9, sl, lr} │ │ │ │ │ + strd r4, [sp, #-32]! @ 0xffffffe0 │ │ │ │ │ + strd r6, [sp, #8] │ │ │ │ │ + strd r8, [sp, #16] │ │ │ │ │ + str sl, [sp, #24] │ │ │ │ │ + str lr, [sp, #28] │ │ │ │ │ sub sp, sp, #48 @ 0x30 │ │ │ │ │ add r3, sp, #8 │ │ │ │ │ stm r3, {r1, r2} │ │ │ │ │ ldr r3, [r0] │ │ │ │ │ - ldr r2, [pc, #300] @ 224 │ │ │ │ │ + ldr r2, [pc, #320] @ 248 │ │ │ │ │ ldr r3, [r3] │ │ │ │ │ add r2, pc, r2 │ │ │ │ │ sub r3, r3, #4 │ │ │ │ │ cmp r3, #3 │ │ │ │ │ - bhi 1dc │ │ │ │ │ + bhi 200 │ │ │ │ │ ldrb r3, [r2, r3] │ │ │ │ │ add pc, pc, r3, lsl #2 │ │ │ │ │ nop @ (mov r0, r0) │ │ │ │ │ ldr r5, [r0, #28] │ │ │ │ │ cmp r5, #67108864 @ 0x4000000 │ │ │ │ │ - beq 1dc │ │ │ │ │ + beq 200 │ │ │ │ │ ldrb r3, [sp, #10] │ │ │ │ │ - ldr r2, [pc, #252] @ 228 │ │ │ │ │ - lsr r3, r3, #4 │ │ │ │ │ + mov r1, r5 │ │ │ │ │ + mov r0, #0 │ │ │ │ │ ldr r7, [sp, #8] │ │ │ │ │ ldr r9, [sp, #12] │ │ │ │ │ + lsr r3, r3, #4 │ │ │ │ │ + ldr r2, [pc, #252] @ 24c │ │ │ │ │ and r4, r3, #7 │ │ │ │ │ ldrh r3, [sp, #14] │ │ │ │ │ - mov r1, r5 │ │ │ │ │ - mov r0, #0 │ │ │ │ │ ldrh r8, [sp, #10] │ │ │ │ │ and r7, r7, r2 │ │ │ │ │ and r9, r9, r2 │ │ │ │ │ lsr sl, r3, #4 │ │ │ │ │ bl 0 │ │ │ │ │ R_ARM_CALL fftwf_mpi_any_true │ │ │ │ │ - lsr r8, r8, #7 │ │ │ │ │ subs r6, r0, #0 │ │ │ │ │ + lsr r8, r8, #7 │ │ │ │ │ movne r0, #0 │ │ │ │ │ - bne 1c8 │ │ │ │ │ + bne 1d8 │ │ │ │ │ mov r3, r6 │ │ │ │ │ - ldr r2, [pc, #184] @ 22c │ │ │ │ │ + ldr r2, [pc, #204] @ 250 │ │ │ │ │ mov r1, #5 │ │ │ │ │ add r0, sp, #24 │ │ │ │ │ str r5, [sp] │ │ │ │ │ str r7, [sp, #24] │ │ │ │ │ str r4, [sp, #28] │ │ │ │ │ strd r8, [sp, #32] │ │ │ │ │ str sl, [sp, #40] @ 0x28 │ │ │ │ │ bl 0 │ │ │ │ │ R_ARM_CALL MPI_Bcast │ │ │ │ │ ldr r3, [sp, #24] │ │ │ │ │ cmp r7, r3 │ │ │ │ │ - beq 1f0 │ │ │ │ │ - ldr r3, [pc, #140] @ 230 │ │ │ │ │ - str r3, [sp] │ │ │ │ │ - add r3, r3, #-201326592 @ 0xf4000000 │ │ │ │ │ - add r3, r3, #1024 @ 0x400 │ │ │ │ │ + beq 210 │ │ │ │ │ + ldr r3, [pc, #160] @ 254 │ │ │ │ │ mov r2, #1 │ │ │ │ │ add r1, sp, #20 │ │ │ │ │ add r0, sp, #16 │ │ │ │ │ + str r3, [sp] │ │ │ │ │ + add r3, r3, #-201326592 @ 0xf4000000 │ │ │ │ │ + add r3, r3, #1024 @ 0x400 │ │ │ │ │ str r5, [sp, #4] │ │ │ │ │ str r6, [sp, #16] │ │ │ │ │ bl 0 │ │ │ │ │ R_ARM_CALL MPI_Allreduce │ │ │ │ │ ldr r0, [sp, #20] │ │ │ │ │ add sp, sp, #48 @ 0x30 │ │ │ │ │ - pop {r4, r5, r6, r7, r8, r9, sl, pc} │ │ │ │ │ + ldrd r4, [sp] │ │ │ │ │ + ldrd r6, [sp, #8] │ │ │ │ │ + ldrd r8, [sp, #16] │ │ │ │ │ + ldr sl, [sp, #24] │ │ │ │ │ + add sp, sp, #28 │ │ │ │ │ + pop {pc} @ (ldr pc, [sp], #4) │ │ │ │ │ ldr r5, [r0, #24] │ │ │ │ │ cmp r5, #67108864 @ 0x4000000 │ │ │ │ │ - bne 120 │ │ │ │ │ + bne 130 │ │ │ │ │ mov r0, #1 │ │ │ │ │ - add sp, sp, #48 @ 0x30 │ │ │ │ │ - pop {r4, r5, r6, r7, r8, r9, sl, pc} │ │ │ │ │ + b 1d8 │ │ │ │ │ ldr r5, [r0, #36] @ 0x24 │ │ │ │ │ - b 118 │ │ │ │ │ + b 128 │ │ │ │ │ ldr r3, [sp, #28] │ │ │ │ │ cmp r4, r3 │ │ │ │ │ - bne 19c │ │ │ │ │ + bne 1ac │ │ │ │ │ ldr r3, [sp, #32] │ │ │ │ │ cmp r8, r3 │ │ │ │ │ - bne 19c │ │ │ │ │ + bne 1ac │ │ │ │ │ ldr r3, [sp, #36] @ 0x24 │ │ │ │ │ cmp r9, r3 │ │ │ │ │ - ldreq r0, [sp, #40] @ 0x28 │ │ │ │ │ - subeq r6, r0, sl │ │ │ │ │ - clzeq r6, r6 │ │ │ │ │ - lsreq r6, r6, #5 │ │ │ │ │ - b 19c │ │ │ │ │ - .word 0x0000012c │ │ │ │ │ + bne 1ac │ │ │ │ │ + ldr r0, [sp, #40] @ 0x28 │ │ │ │ │ + sub r6, r0, sl │ │ │ │ │ + clz r6, r6 │ │ │ │ │ + lsr r6, r6, #5 │ │ │ │ │ + b 1ac │ │ │ │ │ + .word 0x00000140 │ │ │ │ │ R_ARM_REL32 .rodata │ │ │ │ │ .word 0x000fffff │ │ │ │ │ .word 0x4c000406 │ │ │ │ │ .word 0x58000005 │ │ │ │ │ │ │ │ │ │ -00000234 : │ │ │ │ │ +00000258 : │ │ │ │ │ cost_hook(): │ │ │ │ │ push {lr} @ (str lr, [sp, #-4]!) │ │ │ │ │ sub sp, sp, #28 │ │ │ │ │ strd r2, [sp, #8] │ │ │ │ │ ldr r3, [r0] │ │ │ │ │ - ldr r2, [pc, #124] @ 2c8 │ │ │ │ │ + ldr r2, [pc, #124] @ 2ec │ │ │ │ │ ldr r3, [r3] │ │ │ │ │ add r2, pc, r2 │ │ │ │ │ sub r3, r3, #4 │ │ │ │ │ cmp r3, #3 │ │ │ │ │ - bhi 2b4 │ │ │ │ │ + bhi 2d8 │ │ │ │ │ ldrb r3, [r2, r3] │ │ │ │ │ add pc, pc, r3, lsl #2 │ │ │ │ │ nop @ (mov r0, r0) │ │ │ │ │ ldr r3, [r0, #28] │ │ │ │ │ cmp r3, #67108864 @ 0x4000000 │ │ │ │ │ - beq 2b4 │ │ │ │ │ + beq 2d8 │ │ │ │ │ ldr r2, [sp, #32] │ │ │ │ │ add r1, sp, #16 │ │ │ │ │ + add r0, sp, #8 │ │ │ │ │ cmp r2, #0 │ │ │ │ │ movne r2, #1476395009 @ 0x58000001 │ │ │ │ │ moveq r2, #1476395011 @ 0x58000003 │ │ │ │ │ stm sp, {r2, r3} │ │ │ │ │ - add r0, sp, #8 │ │ │ │ │ - ldr r3, [pc, #52] @ 2cc │ │ │ │ │ mov r2, #1 │ │ │ │ │ + ldr r3, [pc, #48] @ 2f0 │ │ │ │ │ bl 0 │ │ │ │ │ R_ARM_CALL MPI_Allreduce │ │ │ │ │ ldrd r0, [sp, #16] │ │ │ │ │ add sp, sp, #28 │ │ │ │ │ pop {pc} @ (ldr pc, [sp], #4) │ │ │ │ │ ldr r3, [r0, #24] │ │ │ │ │ cmp r3, #67108864 @ 0x4000000 │ │ │ │ │ - bne 274 │ │ │ │ │ + bne 298 │ │ │ │ │ ldrd r0, [sp, #8] │ │ │ │ │ add sp, sp, #28 │ │ │ │ │ pop {pc} @ (ldr pc, [sp], #4) │ │ │ │ │ ldr r3, [r0, #36] @ 0x24 │ │ │ │ │ - b 26c │ │ │ │ │ + b 290 │ │ │ │ │ .word 0x00000080 │ │ │ │ │ R_ARM_REL32 .rodata │ │ │ │ │ .word 0x4c00080b │ │ │ │ │ │ │ │ │ │ -000002d0 : │ │ │ │ │ +000002f4 : │ │ │ │ │ local_size(): │ │ │ │ │ - push {r4, r5, r6, r7, r8, r9, sl, lr} │ │ │ │ │ + strd r4, [sp, #-32]! @ 0xffffffe0 │ │ │ │ │ + mov r4, r3 │ │ │ │ │ + strd r6, [sp, #8] │ │ │ │ │ mov r6, r1 │ │ │ │ │ - mov r8, r0 │ │ │ │ │ + mov r7, r0 │ │ │ │ │ mov r1, r2 │ │ │ │ │ mov r0, r6 │ │ │ │ │ ldr r5, [sp, #32] │ │ │ │ │ - mov r7, r2 │ │ │ │ │ - mov r4, r3 │ │ │ │ │ + strd r8, [sp, #16] │ │ │ │ │ + mov r8, r2 │ │ │ │ │ + str sl, [sp, #24] │ │ │ │ │ + str lr, [sp, #28] │ │ │ │ │ bl 0 │ │ │ │ │ R_ARM_CALL fftwf_mpi_num_blocks_total │ │ │ │ │ - cmp r0, r8 │ │ │ │ │ - bgt 334 │ │ │ │ │ + cmp r0, r7 │ │ │ │ │ + bgt 37c │ │ │ │ │ ldr r3, [r6] │ │ │ │ │ cmp r3, #0 │ │ │ │ │ - pople {r4, r5, r6, r7, r8, r9, sl, pc} │ │ │ │ │ + ble 364 │ │ │ │ │ mov r2, #0 │ │ │ │ │ sub lr, r5, #4 │ │ │ │ │ sub r3, r4, #4 │ │ │ │ │ mov ip, r2 │ │ │ │ │ str ip, [lr, #4]! │ │ │ │ │ + add r2, r2, #1 │ │ │ │ │ str ip, [r3, #4]! │ │ │ │ │ ldr r1, [r6] │ │ │ │ │ - add r2, r2, #1 │ │ │ │ │ cmp r1, r2 │ │ │ │ │ - bgt 318 │ │ │ │ │ - pop {r4, r5, r6, r7, r8, r9, sl, pc} │ │ │ │ │ + bgt 34c │ │ │ │ │ + ldrd r4, [sp] │ │ │ │ │ + ldrd r6, [sp, #8] │ │ │ │ │ + ldrd r8, [sp, #16] │ │ │ │ │ + ldr sl, [sp, #24] │ │ │ │ │ + add sp, sp, #28 │ │ │ │ │ + pop {pc} @ (ldr pc, [sp], #4) │ │ │ │ │ mov r3, r5 │ │ │ │ │ - mov r2, r8 │ │ │ │ │ - mov r1, r7 │ │ │ │ │ + mov r2, r7 │ │ │ │ │ + mov r1, r8 │ │ │ │ │ mov r0, r6 │ │ │ │ │ bl 0 │ │ │ │ │ R_ARM_CALL fftwf_mpi_block_coords │ │ │ │ │ ldr r3, [r6] │ │ │ │ │ cmp r3, #0 │ │ │ │ │ - pople {r4, r5, r6, r7, r8, r9, sl, pc} │ │ │ │ │ - lsl r9, r7, #2 │ │ │ │ │ + ble 364 │ │ │ │ │ + lsl r8, r8, #2 │ │ │ │ │ sub r5, r5, #4 │ │ │ │ │ - add r7, r6, r7, lsl #2 │ │ │ │ │ sub r4, r4, #4 │ │ │ │ │ - rsb r9, r9, #4 │ │ │ │ │ - mov r8, #0 │ │ │ │ │ + mov r9, #0 │ │ │ │ │ + add r7, r6, r8 │ │ │ │ │ + rsb r8, r8, #4 │ │ │ │ │ ldr r2, [r5, #4]! │ │ │ │ │ - ldr r1, [r7, #8] │ │ │ │ │ - ldr r0, [r7, r9] │ │ │ │ │ + add r9, r9, #1 │ │ │ │ │ + ldr r0, [r7, r8] │ │ │ │ │ + add r7, r7, #12 │ │ │ │ │ + ldr r1, [r7, #-4] │ │ │ │ │ bl 0 │ │ │ │ │ R_ARM_CALL fftwf_mpi_block │ │ │ │ │ - add r8, r8, #1 │ │ │ │ │ - add r7, r7, #12 │ │ │ │ │ str r0, [r4, #4]! │ │ │ │ │ ldr r2, [r7, #-4] │ │ │ │ │ ldr r3, [r5] │ │ │ │ │ mul r3, r2, r3 │ │ │ │ │ str r3, [r5] │ │ │ │ │ ldr r3, [r6] │ │ │ │ │ - cmp r8, r3 │ │ │ │ │ - blt 36c │ │ │ │ │ - pop {r4, r5, r6, r7, r8, r9, sl, pc} │ │ │ │ │ + cmp r9, r3 │ │ │ │ │ + blt 3b4 │ │ │ │ │ + b 364 │ │ │ │ │ │ │ │ │ │ -000003a8 : │ │ │ │ │ +000003f0 : │ │ │ │ │ default_sz.constprop.0(): │ │ │ │ │ - push {r4, r5, r6, r7, r8, r9, sl, fp, lr} │ │ │ │ │ + strd r4, [sp, #-36]! @ 0xffffffdc │ │ │ │ │ mov r4, r0 │ │ │ │ │ - sub sp, sp, #12 │ │ │ │ │ mov r0, #3 │ │ │ │ │ + strd r6, [sp, #8] │ │ │ │ │ mov r6, r1 │ │ │ │ │ + strd r8, [sp, #16] │ │ │ │ │ + strd sl, [sp, #24] │ │ │ │ │ + str lr, [sp, #32] │ │ │ │ │ + sub sp, sp, #12 │ │ │ │ │ str r2, [sp, #4] │ │ │ │ │ bl 0 │ │ │ │ │ R_ARM_CALL fftwf_mpi_mkdtensor │ │ │ │ │ mov r5, r0 │ │ │ │ │ mov r0, #3 │ │ │ │ │ bl 0 │ │ │ │ │ R_ARM_CALL fftwf_mpi_mkdtensor │ │ │ │ │ - add r1, r4, #24 │ │ │ │ │ add r3, r0, #28 │ │ │ │ │ add r2, r0, #4 │ │ │ │ │ + add r1, r4, #24 │ │ │ │ │ + mov sl, r0 │ │ │ │ │ cmp r2, r1 │ │ │ │ │ cmpcc r4, r3 │ │ │ │ │ orr r2, r2, r4 │ │ │ │ │ movcs r3, #1 │ │ │ │ │ movcc r3, #0 │ │ │ │ │ tst r2, #7 │ │ │ │ │ movne r3, #0 │ │ │ │ │ andeq r3, r3, #1 │ │ │ │ │ cmp r3, #0 │ │ │ │ │ - mov sl, r0 │ │ │ │ │ - beq 604 │ │ │ │ │ + beq 674 │ │ │ │ │ ldrd r0, [r4] │ │ │ │ │ - ldrd r2, [r4, #16] │ │ │ │ │ ldrd r8, [r4, #8] │ │ │ │ │ + ldrd r2, [r4, #16] │ │ │ │ │ strd r0, [sl, #4] │ │ │ │ │ add r1, r4, #24 │ │ │ │ │ strd r8, [sl, #12] │ │ │ │ │ strd r2, [sl, #20] │ │ │ │ │ ldm r1, {r1, r2, r3} │ │ │ │ │ + str r1, [sl, #28] │ │ │ │ │ str r2, [sl, #32] │ │ │ │ │ ldr r2, [sp, #4] │ │ │ │ │ - str r1, [sl, #28] │ │ │ │ │ str r3, [sl, #36] @ 0x24 │ │ │ │ │ - ldr r3, [r4, #24] │ │ │ │ │ + ldr r0, [r4] │ │ │ │ │ + ldr r1, [r4, #12] │ │ │ │ │ cmp r2, #0 │ │ │ │ │ - addne r3, r3, r3, lsr #31 │ │ │ │ │ + ldr r3, [r4, #24] │ │ │ │ │ + str r0, [r5, #4] │ │ │ │ │ + str r1, [r5, #16] │ │ │ │ │ + beq 4b8 │ │ │ │ │ + add r3, r3, r3, lsr #31 │ │ │ │ │ + asr r3, r3, #1 │ │ │ │ │ + add r3, r3, #1 │ │ │ │ │ ldr r2, [r4, #4] │ │ │ │ │ - ldr r0, [r4] │ │ │ │ │ - asrne r3, r3, #1 │ │ │ │ │ - addne r3, r3, #1 │ │ │ │ │ + add r7, sl, #8 │ │ │ │ │ + add fp, r5, #8 │ │ │ │ │ + str r3, [r5, #28] │ │ │ │ │ + mov r9, #0 │ │ │ │ │ cmp r2, #0 │ │ │ │ │ moveq r2, r0 │ │ │ │ │ - ldr r1, [r4, #12] │ │ │ │ │ str r2, [r5, #8] │ │ │ │ │ ldr r2, [r4, #8] │ │ │ │ │ - str r3, [r5, #28] │ │ │ │ │ cmp r2, #0 │ │ │ │ │ moveq r2, r0 │ │ │ │ │ str r2, [r5, #12] │ │ │ │ │ ldr r2, [r4, #16] │ │ │ │ │ - add r7, sl, #8 │ │ │ │ │ cmp r2, #0 │ │ │ │ │ moveq r2, r1 │ │ │ │ │ str r2, [r5, #20] │ │ │ │ │ ldr r2, [r4, #20] │ │ │ │ │ - add fp, r5, #8 │ │ │ │ │ cmp r2, #0 │ │ │ │ │ moveq r2, r1 │ │ │ │ │ str r2, [r5, #24] │ │ │ │ │ ldr r2, [r4, #28] │ │ │ │ │ - mov r9, #0 │ │ │ │ │ cmp r2, #0 │ │ │ │ │ moveq r2, r3 │ │ │ │ │ ldr r3, [r4, #32] │ │ │ │ │ - str r0, [r5, #4] │ │ │ │ │ + str r2, [r5, #32] │ │ │ │ │ cmp r3, #0 │ │ │ │ │ ldreq r3, [r5, #28] │ │ │ │ │ - str r1, [r5, #16] │ │ │ │ │ - str r2, [r5, #32] │ │ │ │ │ str r3, [r5, #36] @ 0x24 │ │ │ │ │ mov r1, r9 │ │ │ │ │ mov r0, r5 │ │ │ │ │ bl 0 │ │ │ │ │ R_ARM_CALL fftwf_mpi_num_blocks_total │ │ │ │ │ mov r1, r0 │ │ │ │ │ mov r8, r0 │ │ │ │ │ mov r0, r6 │ │ │ │ │ bl 0 <__aeabi_idiv> │ │ │ │ │ R_ARM_CALL __aeabi_idiv │ │ │ │ │ cmp r0, #1 │ │ │ │ │ - ble 514 │ │ │ │ │ + ble 570 │ │ │ │ │ ldr r2, [r7] │ │ │ │ │ cmp r2, #0 │ │ │ │ │ - beq 568 │ │ │ │ │ + beq 5d8 │ │ │ │ │ ldr r2, [r7, #12] │ │ │ │ │ cmp r2, #0 │ │ │ │ │ - beq 5a8 │ │ │ │ │ + beq 618 │ │ │ │ │ ldr r2, [r7, #24] │ │ │ │ │ cmp r2, #0 │ │ │ │ │ - beq 5e4 │ │ │ │ │ + beq 654 │ │ │ │ │ add r2, r9, #1 │ │ │ │ │ - cmp r2, #2 │ │ │ │ │ add r7, r7, #4 │ │ │ │ │ + cmp r2, #2 │ │ │ │ │ add fp, fp, #4 │ │ │ │ │ mov r9, #1 │ │ │ │ │ - bne 4cc │ │ │ │ │ + bne 528 │ │ │ │ │ ldr r3, [sp, #4] │ │ │ │ │ mov r0, sl │ │ │ │ │ cmp r3, #0 │ │ │ │ │ ldrne r3, [r4, #24] │ │ │ │ │ strne r3, [r5, #28] │ │ │ │ │ bl 0 │ │ │ │ │ R_ARM_CALL fftwf_mpi_dtensor_destroy │ │ │ │ │ @@ -381,15 +404,20 @@ │ │ │ │ │ R_ARM_CALL fftwf_mpi_dtensor_canonical │ │ │ │ │ mov r4, r0 │ │ │ │ │ mov r0, r5 │ │ │ │ │ bl 0 │ │ │ │ │ R_ARM_CALL fftwf_mpi_dtensor_destroy │ │ │ │ │ mov r0, r4 │ │ │ │ │ add sp, sp, #12 │ │ │ │ │ - pop {r4, r5, r6, r7, r8, r9, sl, fp, pc} │ │ │ │ │ + ldrd r4, [sp] │ │ │ │ │ + ldrd r6, [sp, #8] │ │ │ │ │ + ldrd r8, [sp, #16] │ │ │ │ │ + ldrd sl, [sp, #24] │ │ │ │ │ + add sp, sp, #32 │ │ │ │ │ + pop {pc} @ (ldr pc, [sp], #4) │ │ │ │ │ mov r1, r0 │ │ │ │ │ ldr r0, [r5, #4] │ │ │ │ │ bl 0 │ │ │ │ │ R_ARM_CALL fftwf_mpi_default_block │ │ │ │ │ mov r1, r0 │ │ │ │ │ str r0, [fp] │ │ │ │ │ ldr r0, [r5, #4] │ │ │ │ │ @@ -397,393 +425,411 @@ │ │ │ │ │ R_ARM_CALL fftwf_mpi_num_blocks │ │ │ │ │ mul r8, r0, r8 │ │ │ │ │ mov r0, r6 │ │ │ │ │ mov r1, r8 │ │ │ │ │ bl 0 <__aeabi_idiv> │ │ │ │ │ R_ARM_CALL __aeabi_idiv │ │ │ │ │ cmp r0, #1 │ │ │ │ │ - ble 514 │ │ │ │ │ + ble 570 │ │ │ │ │ ldr r2, [r7, #12] │ │ │ │ │ cmp r2, #0 │ │ │ │ │ - bne 508 │ │ │ │ │ + bne 564 │ │ │ │ │ mov r1, r0 │ │ │ │ │ ldr r0, [r5, #16] │ │ │ │ │ bl 0 │ │ │ │ │ R_ARM_CALL fftwf_mpi_default_block │ │ │ │ │ mov r1, r0 │ │ │ │ │ str r0, [fp, #12] │ │ │ │ │ ldr r0, [r5, #16] │ │ │ │ │ bl 0 │ │ │ │ │ R_ARM_CALL fftwf_mpi_num_blocks │ │ │ │ │ mul r1, r0, r8 │ │ │ │ │ mov r0, r6 │ │ │ │ │ bl 0 <__aeabi_idiv> │ │ │ │ │ R_ARM_CALL __aeabi_idiv │ │ │ │ │ cmp r0, #1 │ │ │ │ │ - ble 514 │ │ │ │ │ + ble 570 │ │ │ │ │ ldr r2, [r7, #24] │ │ │ │ │ cmp r2, #0 │ │ │ │ │ - bne 514 │ │ │ │ │ + bne 570 │ │ │ │ │ mov r1, r0 │ │ │ │ │ ldr r0, [r5, #28] │ │ │ │ │ bl 0 │ │ │ │ │ R_ARM_CALL fftwf_mpi_default_block │ │ │ │ │ mov r1, r0 │ │ │ │ │ str r0, [fp, #24] │ │ │ │ │ ldr r0, [r5, #28] │ │ │ │ │ bl 0 │ │ │ │ │ R_ARM_CALL fftwf_mpi_num_blocks │ │ │ │ │ - b 514 │ │ │ │ │ + b 570 │ │ │ │ │ add r0, r4, #20 │ │ │ │ │ - ldm r0, {r0, r1, r2, r3} │ │ │ │ │ ldr fp, [r4] │ │ │ │ │ + ldm r0, {r0, r1, r2, r3} │ │ │ │ │ ldr r9, [r4, #4] │ │ │ │ │ ldr r8, [r4, #8] │ │ │ │ │ ldr lr, [r4, #12] │ │ │ │ │ ldr ip, [r4, #16] │ │ │ │ │ - str ip, [sl, #20] │ │ │ │ │ str fp, [sl, #4] │ │ │ │ │ str r9, [sl, #8] │ │ │ │ │ str r8, [sl, #12] │ │ │ │ │ str lr, [sl, #16] │ │ │ │ │ + str ip, [sl, #20] │ │ │ │ │ str r0, [sl, #24] │ │ │ │ │ - b 428 │ │ │ │ │ + b 480 │ │ │ │ │ │ │ │ │ │ -0000063c : │ │ │ │ │ +000006ac : │ │ │ │ │ fftwf_mpi_local_size_many_transposed.part.0.constprop.0(): │ │ │ │ │ - push {r4, r5, r6, r7, r8, r9, sl, fp, lr} │ │ │ │ │ + strd r4, [sp, #-36]! @ 0xffffffdc │ │ │ │ │ + strd r6, [sp, #8] │ │ │ │ │ mov r6, r0 │ │ │ │ │ - sub sp, sp, #68 @ 0x44 │ │ │ │ │ mov r0, #36 @ 0x24 │ │ │ │ │ - mov r8, r1 │ │ │ │ │ + strd r8, [sp, #16] │ │ │ │ │ mov r7, r2 │ │ │ │ │ + mov r8, r1 │ │ │ │ │ + strd sl, [sp, #24] │ │ │ │ │ mov fp, r3 │ │ │ │ │ + str lr, [sp, #32] │ │ │ │ │ + sub sp, sp, #68 @ 0x44 │ │ │ │ │ bl 0 │ │ │ │ │ R_ARM_CALL fftwf_malloc_plain │ │ │ │ │ ldr r3, [r6] │ │ │ │ │ - str r3, [r0, #8] │ │ │ │ │ - str r3, [r0, #4] │ │ │ │ │ + mov r5, r0 │ │ │ │ │ str r3, [r0] │ │ │ │ │ + str r3, [r0, #4] │ │ │ │ │ + str r3, [r0, #8] │ │ │ │ │ ldr r3, [r6, #4] │ │ │ │ │ - str r3, [r0, #20] │ │ │ │ │ - str r3, [r0, #16] │ │ │ │ │ str r3, [r0, #12] │ │ │ │ │ + str r3, [r0, #16] │ │ │ │ │ + str r3, [r0, #20] │ │ │ │ │ ldr r3, [r6, #8] │ │ │ │ │ - mov r5, r0 │ │ │ │ │ - str r3, [r0, #32] │ │ │ │ │ - str r3, [r0, #28] │ │ │ │ │ str r3, [r0, #24] │ │ │ │ │ + str r3, [r0, #28] │ │ │ │ │ + str r3, [r0, #32] │ │ │ │ │ mov r0, #48 @ 0x30 │ │ │ │ │ bl 0 │ │ │ │ │ R_ARM_CALL fftwf_malloc_plain │ │ │ │ │ mov r3, #0 │ │ │ │ │ + add r1, sp, #32 │ │ │ │ │ + mov r4, r0 │ │ │ │ │ + add r9, r0, #24 │ │ │ │ │ str r3, [r5, #4] │ │ │ │ │ + add sl, r0, #36 @ 0x24 │ │ │ │ │ ldr r2, [r6, #4] │ │ │ │ │ - add r1, sp, #32 │ │ │ │ │ cmp r2, r8 │ │ │ │ │ strgt r8, [r5, #20] │ │ │ │ │ - strle r3, [r5, #8] │ │ │ │ │ - mov r4, r0 │ │ │ │ │ add r8, r0, #12 │ │ │ │ │ - add r9, r0, #24 │ │ │ │ │ - add sl, r0, #36 @ 0x24 │ │ │ │ │ mov r0, r7 │ │ │ │ │ + strle r3, [r5, #8] │ │ │ │ │ bl 0 │ │ │ │ │ R_ARM_CALL MPI_Comm_rank │ │ │ │ │ add r1, sp, #36 @ 0x24 │ │ │ │ │ mov r0, r7 │ │ │ │ │ bl 0 │ │ │ │ │ R_ARM_CALL MPI_Comm_size │ │ │ │ │ ldr r1, [sp, #36] @ 0x24 │ │ │ │ │ mov r2, #0 │ │ │ │ │ mov r0, r5 │ │ │ │ │ - bl 3a8 │ │ │ │ │ + bl 3f0 │ │ │ │ │ mov r1, #0 │ │ │ │ │ mov r6, r0 │ │ │ │ │ bl 0 │ │ │ │ │ R_ARM_CALL fftwf_mpi_is_block1d │ │ │ │ │ cmp r0, #0 │ │ │ │ │ - bne 7b8 │ │ │ │ │ + bne 84c │ │ │ │ │ mov r7, #1 │ │ │ │ │ ldr r0, [sp, #32] │ │ │ │ │ mov r3, r4 │ │ │ │ │ mov r1, r6 │ │ │ │ │ mov r2, #0 │ │ │ │ │ str r8, [sp] │ │ │ │ │ - bl 2d0 │ │ │ │ │ + bl 2f4 │ │ │ │ │ ldr r0, [sp, #32] │ │ │ │ │ mov r3, r9 │ │ │ │ │ mov r1, r6 │ │ │ │ │ mov r2, #1 │ │ │ │ │ str sl, [sp] │ │ │ │ │ - bl 2d0 │ │ │ │ │ + bl 2f4 │ │ │ │ │ ldm r4, {r2, r3} │ │ │ │ │ + ldr r0, [r4, #8] │ │ │ │ │ ldr r1, [r4, #24] │ │ │ │ │ mul r3, r2, r3 │ │ │ │ │ ldr r2, [r4, #28] │ │ │ │ │ - ldr r0, [r4, #8] │ │ │ │ │ + mul r0, r3, r0 │ │ │ │ │ mul r2, r1, r2 │ │ │ │ │ ldr r1, [r4, #32] │ │ │ │ │ - mul r0, r3, r0 │ │ │ │ │ mul r1, r2, r1 │ │ │ │ │ bl 0 │ │ │ │ │ R_ARM_CALL fftwf_imax │ │ │ │ │ mov r1, r0 │ │ │ │ │ mov r0, r7 │ │ │ │ │ bl 0 │ │ │ │ │ R_ARM_CALL fftwf_imax │ │ │ │ │ mov r7, r0 │ │ │ │ │ mov r0, r6 │ │ │ │ │ bl 0 │ │ │ │ │ R_ARM_CALL fftwf_mpi_dtensor_destroy │ │ │ │ │ ldr r3, [r4] │ │ │ │ │ + mov r0, r4 │ │ │ │ │ str r3, [fp] │ │ │ │ │ - ldr r3, [sp, #104] @ 0x68 │ │ │ │ │ ldr r2, [r4, #12] │ │ │ │ │ + ldr r3, [sp, #104] @ 0x68 │ │ │ │ │ str r2, [r3] │ │ │ │ │ - ldr r3, [sp, #108] @ 0x6c │ │ │ │ │ ldr r2, [r4, #28] │ │ │ │ │ + ldr r3, [sp, #108] @ 0x6c │ │ │ │ │ str r2, [r3] │ │ │ │ │ - ldr r3, [sp, #112] @ 0x70 │ │ │ │ │ ldr r2, [r4, #40] @ 0x28 │ │ │ │ │ - mov r0, r4 │ │ │ │ │ + ldr r3, [sp, #112] @ 0x70 │ │ │ │ │ str r2, [r3] │ │ │ │ │ bl 0 │ │ │ │ │ R_ARM_CALL fftwf_ifree │ │ │ │ │ mov r0, r5 │ │ │ │ │ bl 0 │ │ │ │ │ R_ARM_CALL fftwf_ifree │ │ │ │ │ mov r0, r7 │ │ │ │ │ add sp, sp, #68 @ 0x44 │ │ │ │ │ - pop {r4, r5, r6, r7, r8, r9, sl, fp, pc} │ │ │ │ │ + ldrd r4, [sp] │ │ │ │ │ + ldrd r6, [sp, #8] │ │ │ │ │ + ldrd r8, [sp, #16] │ │ │ │ │ + ldrd sl, [sp, #24] │ │ │ │ │ + add sp, sp, #32 │ │ │ │ │ + pop {pc} @ (ldr pc, [sp], #4) │ │ │ │ │ mov r1, #1 │ │ │ │ │ mov r0, r6 │ │ │ │ │ bl 0 │ │ │ │ │ R_ARM_CALL fftwf_mpi_is_block1d │ │ │ │ │ cmp r0, #0 │ │ │ │ │ - beq 6fc │ │ │ │ │ - ldmib r6, {r0, r1, r2} │ │ │ │ │ - add r3, sp, #40 @ 0x28 │ │ │ │ │ + beq 77c │ │ │ │ │ + ldrd r2, [r6, #4] │ │ │ │ │ add r7, r6, #16 │ │ │ │ │ - stm r3, {r0, r1, r2} │ │ │ │ │ - ldm r7, {r0, r1, r2} │ │ │ │ │ - add r3, sp, #64 @ 0x40 │ │ │ │ │ - stmdb r3, {r0, r1, r2} │ │ │ │ │ str r4, [sp, #16] │ │ │ │ │ - mov r2, #0 │ │ │ │ │ mov r4, r6 │ │ │ │ │ + strd r2, [sp, #40] @ 0x28 │ │ │ │ │ + ldr r3, [r6, #12] │ │ │ │ │ + str r3, [sp, #48] @ 0x30 │ │ │ │ │ + ldrd r2, [r6, #16] │ │ │ │ │ + strd r2, [sp, #52] @ 0x34 │ │ │ │ │ + mov r2, #0 │ │ │ │ │ + ldr r3, [r7, #8] │ │ │ │ │ str r2, [sp, #12] │ │ │ │ │ + str r3, [sp, #60] @ 0x3c │ │ │ │ │ ldmib r4, {r0, r1} │ │ │ │ │ bl 0 │ │ │ │ │ R_ARM_CALL fftwf_mpi_num_blocks │ │ │ │ │ cmp r0, #1 │ │ │ │ │ - beq 900 │ │ │ │ │ + beq 99c │ │ │ │ │ ldr r3, [sp, #12] │ │ │ │ │ add r4, r4, #12 │ │ │ │ │ add r2, r3, #1 │ │ │ │ │ - cmp r2, #2 │ │ │ │ │ mov r3, #1 │ │ │ │ │ + cmp r2, #2 │ │ │ │ │ str r3, [sp, #12] │ │ │ │ │ - bne 7f8 │ │ │ │ │ + bne 894 │ │ │ │ │ ldr r4, [sp, #16] │ │ │ │ │ str r3, [sp, #16] │ │ │ │ │ ldr r0, [r6] │ │ │ │ │ cmp r0, #1 │ │ │ │ │ - ble 9e4 │ │ │ │ │ + ble a88 │ │ │ │ │ add r0, r0, r0, lsl #1 │ │ │ │ │ - sub r0, r0, #3 │ │ │ │ │ mov r2, #0 │ │ │ │ │ mov r3, #1 │ │ │ │ │ + sub r0, r0, #3 │ │ │ │ │ ldr r1, [r7, r2, lsl #2] │ │ │ │ │ add r2, r2, #3 │ │ │ │ │ cmp r0, r2 │ │ │ │ │ mul r3, r1, r3 │ │ │ │ │ - bne 848 │ │ │ │ │ + bne 8e4 │ │ │ │ │ ldr r1, [sp, #36] @ 0x24 │ │ │ │ │ mov r0, r3 │ │ │ │ │ - ldr r7, [r6, #4] │ │ │ │ │ str r3, [sp, #12] │ │ │ │ │ + ldr r7, [r6, #4] │ │ │ │ │ bl 0 │ │ │ │ │ R_ARM_CALL fftwf_mpi_default_block │ │ │ │ │ ldr r3, [sp, #12] │ │ │ │ │ - ldr r2, [sp, #32] │ │ │ │ │ mov r1, r0 │ │ │ │ │ + ldr r2, [sp, #32] │ │ │ │ │ mov r0, r3 │ │ │ │ │ bl 0 │ │ │ │ │ R_ARM_CALL fftwf_mpi_block │ │ │ │ │ mul r1, r0, r7 │ │ │ │ │ ldr r0, [sp, #16] │ │ │ │ │ bl 0 │ │ │ │ │ R_ARM_CALL fftwf_imax │ │ │ │ │ ldm r6, {r1, r7} │ │ │ │ │ - cmp r1, #2 │ │ │ │ │ str r0, [sp, #12] │ │ │ │ │ - ble 8c4 │ │ │ │ │ + cmp r1, #2 │ │ │ │ │ + ble 960 │ │ │ │ │ add r1, r1, r1, lsl #1 │ │ │ │ │ - sub r1, r1, #6 │ │ │ │ │ mov r3, #0 │ │ │ │ │ add r0, r6, #28 │ │ │ │ │ + sub r1, r1, #6 │ │ │ │ │ ldr r2, [r0, r3, lsl #2] │ │ │ │ │ add r3, r3, #3 │ │ │ │ │ cmp r3, r1 │ │ │ │ │ mul r7, r2, r7 │ │ │ │ │ - bne 8b0 │ │ │ │ │ + bne 94c │ │ │ │ │ ldr r3, [r6, #16] │ │ │ │ │ - ldr r1, [sp, #36] @ 0x24 │ │ │ │ │ mov r0, r7 │ │ │ │ │ + ldr r1, [sp, #36] @ 0x24 │ │ │ │ │ str r3, [sp, #16] │ │ │ │ │ bl 0 │ │ │ │ │ R_ARM_CALL fftwf_mpi_default_block │ │ │ │ │ ldr r2, [sp, #32] │ │ │ │ │ mov r1, r0 │ │ │ │ │ mov r0, r7 │ │ │ │ │ bl 0 │ │ │ │ │ R_ARM_CALL fftwf_mpi_block │ │ │ │ │ ldr r3, [sp, #16] │ │ │ │ │ mul r1, r0, r3 │ │ │ │ │ ldr r0, [sp, #12] │ │ │ │ │ bl 0 │ │ │ │ │ R_ARM_CALL fftwf_imax │ │ │ │ │ mov r7, r0 │ │ │ │ │ - b 700 │ │ │ │ │ - ldr r1, [r4, #12] │ │ │ │ │ + b 780 │ │ │ │ │ ldr r0, [r4, #4] │ │ │ │ │ + ldr r1, [r4, #12] │ │ │ │ │ bl 0 │ │ │ │ │ R_ARM_CALL fftwf_mpi_num_blocks │ │ │ │ │ cmp r0, #1 │ │ │ │ │ - bne 808 │ │ │ │ │ + bne 8a4 │ │ │ │ │ ldr r3, [sp, #12] │ │ │ │ │ ldr r4, [sp, #16] │ │ │ │ │ + str r0, [sp, #16] │ │ │ │ │ + ldr r1, [sp, #36] @ 0x24 │ │ │ │ │ rsb r3, r3, #0 │ │ │ │ │ and r3, r3, #12 │ │ │ │ │ add r2, r6, r3 │ │ │ │ │ - ldr r1, [sp, #36] @ 0x24 │ │ │ │ │ - str r0, [sp, #16] │ │ │ │ │ ldr r0, [r2, #4] │ │ │ │ │ str r2, [sp, #20] │ │ │ │ │ bl 0 │ │ │ │ │ R_ARM_CALL fftwf_mpi_default_block │ │ │ │ │ ldr r3, [sp, #12] │ │ │ │ │ ldr r2, [sp, #20] │ │ │ │ │ eor r1, r3, #1 │ │ │ │ │ sub r3, r3, #1 │ │ │ │ │ and r3, r3, #12 │ │ │ │ │ str r1, [sp, #28] │ │ │ │ │ add r1, r6, r3 │ │ │ │ │ - str r1, [sp, #24] │ │ │ │ │ str r0, [r2, #8] │ │ │ │ │ + mov r2, #0 │ │ │ │ │ ldr r3, [r1, #4] │ │ │ │ │ - str r3, [r1, #8] │ │ │ │ │ + str r1, [sp, #24] │ │ │ │ │ ldr r0, [sp, #32] │ │ │ │ │ + str r3, [r1, #8] │ │ │ │ │ mov r3, r4 │ │ │ │ │ - mov r2, #0 │ │ │ │ │ mov r1, r6 │ │ │ │ │ str r8, [sp] │ │ │ │ │ - bl 2d0 │ │ │ │ │ + bl 2f4 │ │ │ │ │ ldm r4, {r2, r3} │ │ │ │ │ ldr r1, [r4, #8] │ │ │ │ │ + ldr r0, [sp, #16] │ │ │ │ │ mov ip, r3 │ │ │ │ │ mul ip, r2, ip │ │ │ │ │ - ldr r0, [sp, #16] │ │ │ │ │ mul r1, ip, r1 │ │ │ │ │ bl 0 │ │ │ │ │ R_ARM_CALL fftwf_imax │ │ │ │ │ ldr r3, [sp, #12] │ │ │ │ │ - add r3, r3, r3, lsl #1 │ │ │ │ │ str r0, [sp, #16] │ │ │ │ │ add r0, sp, #64 @ 0x40 │ │ │ │ │ + ldr r2, [sp, #20] │ │ │ │ │ + add r3, r3, r3, lsl #1 │ │ │ │ │ add r3, r0, r3, lsl #2 │ │ │ │ │ - sub r3, r3, #24 │ │ │ │ │ - ldm r3, {r0, r1, r2} │ │ │ │ │ - ldr r3, [sp, #20] │ │ │ │ │ - stmib r3, {r0, r1, r2} │ │ │ │ │ - ldr r2, [sp, #28] │ │ │ │ │ - add r3, r2, r2, lsl #1 │ │ │ │ │ - add r2, sp, #64 @ 0x40 │ │ │ │ │ - add r3, r2, r3, lsl #2 │ │ │ │ │ - sub r3, r3, #24 │ │ │ │ │ - ldm r3, {r0, r1, r2} │ │ │ │ │ - ldr r3, [sp, #24] │ │ │ │ │ - stmib r3, {r0, r1, r2} │ │ │ │ │ - b 82c │ │ │ │ │ + ldrd r0, [r3, #-24] @ 0xffffffe8 │ │ │ │ │ + ldr r3, [r3, #-16] │ │ │ │ │ + strd r0, [r2, #4] │ │ │ │ │ + add r0, sp, #64 @ 0x40 │ │ │ │ │ + str r3, [r2, #12] │ │ │ │ │ + ldr r2, [sp, #24] │ │ │ │ │ + ldr r3, [sp, #28] │ │ │ │ │ + add r3, r3, r3, lsl #1 │ │ │ │ │ + add r3, r0, r3, lsl #2 │ │ │ │ │ + ldrd r0, [r3, #-24] @ 0xffffffe8 │ │ │ │ │ + ldr r3, [r3, #-16] │ │ │ │ │ + strd r0, [r2, #4] │ │ │ │ │ + str r3, [r2, #12] │ │ │ │ │ + b 8c8 │ │ │ │ │ mov r3, #1 │ │ │ │ │ - b 85c │ │ │ │ │ + b 8f8 │ │ │ │ │ │ │ │ │ │ -000009ec : │ │ │ │ │ +00000a90 : │ │ │ │ │ default_sz.constprop.1(): │ │ │ │ │ - push {r4, r5, r6, r7, r8, r9, sl, fp, lr} │ │ │ │ │ + strd r4, [sp, #-36]! @ 0xffffffdc │ │ │ │ │ + strd r6, [sp, #8] │ │ │ │ │ mov r6, r0 │ │ │ │ │ - sub sp, sp, #12 │ │ │ │ │ mov r0, #2 │ │ │ │ │ + strd r8, [sp, #16] │ │ │ │ │ mov r7, r2 │ │ │ │ │ mov r9, r1 │ │ │ │ │ + strd sl, [sp, #24] │ │ │ │ │ + str lr, [sp, #32] │ │ │ │ │ + sub sp, sp, #12 │ │ │ │ │ str r2, [sp, #4] │ │ │ │ │ bl 0 │ │ │ │ │ R_ARM_CALL fftwf_mpi_mkdtensor │ │ │ │ │ - mov sl, #0 │ │ │ │ │ mov r4, r0 │ │ │ │ │ mov r0, #2 │ │ │ │ │ bl 0 │ │ │ │ │ R_ARM_CALL fftwf_mpi_mkdtensor │ │ │ │ │ - ldr r3, [r6, #12] │ │ │ │ │ ldr r1, [r6] │ │ │ │ │ + mov r5, r0 │ │ │ │ │ cmp r7, #0 │ │ │ │ │ ldr lr, [r6, #8] │ │ │ │ │ - ldr r2, [r6, #16] │ │ │ │ │ - ldr ip, [r6, #20] │ │ │ │ │ - add r8, r4, #8 │ │ │ │ │ - mov r5, r0 │ │ │ │ │ + ldr r3, [r6, #12] │ │ │ │ │ str r1, [r0, #4] │ │ │ │ │ ldr r0, [r6, #4] │ │ │ │ │ + ldr r2, [r6, #16] │ │ │ │ │ + ldr ip, [r6, #20] │ │ │ │ │ + str r0, [r5, #8] │ │ │ │ │ + str lr, [r5, #12] │ │ │ │ │ str r3, [r5, #16] │ │ │ │ │ - addne r3, r3, r3, lsr #31 │ │ │ │ │ - asrne r3, r3, #1 │ │ │ │ │ - addne r3, r3, #1 │ │ │ │ │ + str r2, [r5, #20] │ │ │ │ │ + beq b10 │ │ │ │ │ + add r3, r3, r3, lsr #31 │ │ │ │ │ + asr r3, r3, #1 │ │ │ │ │ + add r3, r3, #1 │ │ │ │ │ cmp r0, #0 │ │ │ │ │ - str r0, [r5, #8] │ │ │ │ │ + str ip, [r5, #24] │ │ │ │ │ + add fp, r5, #8 │ │ │ │ │ moveq r0, r1 │ │ │ │ │ cmp lr, #0 │ │ │ │ │ - str r2, [r5, #20] │ │ │ │ │ - str ip, [r5, #24] │ │ │ │ │ - str lr, [r5, #12] │ │ │ │ │ str r1, [r4, #4] │ │ │ │ │ movne r1, lr │ │ │ │ │ cmp r2, #0 │ │ │ │ │ moveq r2, r3 │ │ │ │ │ cmp ip, #0 │ │ │ │ │ - moveq ip, r3 │ │ │ │ │ - add fp, r5, #8 │ │ │ │ │ - str r3, [r4, #16] │ │ │ │ │ str r0, [r4, #8] │ │ │ │ │ + moveq ip, r3 │ │ │ │ │ + add r8, r4, #8 │ │ │ │ │ str r1, [r4, #12] │ │ │ │ │ + mov sl, #0 │ │ │ │ │ + str r3, [r4, #16] │ │ │ │ │ str r2, [r4, #20] │ │ │ │ │ str ip, [r4, #24] │ │ │ │ │ mov r1, sl │ │ │ │ │ mov r0, r4 │ │ │ │ │ bl 0 │ │ │ │ │ R_ARM_CALL fftwf_mpi_num_blocks_total │ │ │ │ │ mov r1, r0 │ │ │ │ │ mov r7, r0 │ │ │ │ │ mov r0, r9 │ │ │ │ │ bl 0 <__aeabi_idiv> │ │ │ │ │ R_ARM_CALL __aeabi_idiv │ │ │ │ │ cmp r0, #1 │ │ │ │ │ - ble adc │ │ │ │ │ + ble b94 │ │ │ │ │ ldr r2, [fp] │ │ │ │ │ cmp r2, #0 │ │ │ │ │ - beq b30 │ │ │ │ │ + beq bfc │ │ │ │ │ ldr r2, [fp, #12] │ │ │ │ │ cmp r2, #0 │ │ │ │ │ - beq b6c │ │ │ │ │ + beq c38 │ │ │ │ │ add r2, sl, #1 │ │ │ │ │ - cmp r2, #2 │ │ │ │ │ add fp, fp, #4 │ │ │ │ │ + cmp r2, #2 │ │ │ │ │ add r8, r8, #4 │ │ │ │ │ mov sl, #1 │ │ │ │ │ - bne aa0 │ │ │ │ │ + bne b58 │ │ │ │ │ ldr r3, [sp, #4] │ │ │ │ │ mov r0, r5 │ │ │ │ │ cmp r3, #0 │ │ │ │ │ ldrne r3, [r6, #12] │ │ │ │ │ strne r3, [r4, #16] │ │ │ │ │ bl 0 │ │ │ │ │ R_ARM_CALL fftwf_mpi_dtensor_destroy │ │ │ │ │ @@ -793,1751 +839,1862 @@ │ │ │ │ │ R_ARM_CALL fftwf_mpi_dtensor_canonical │ │ │ │ │ mov r5, r0 │ │ │ │ │ mov r0, r4 │ │ │ │ │ bl 0 │ │ │ │ │ R_ARM_CALL fftwf_mpi_dtensor_destroy │ │ │ │ │ mov r0, r5 │ │ │ │ │ add sp, sp, #12 │ │ │ │ │ - pop {r4, r5, r6, r7, r8, r9, sl, fp, pc} │ │ │ │ │ + ldrd r4, [sp] │ │ │ │ │ + ldrd r6, [sp, #8] │ │ │ │ │ + ldrd r8, [sp, #16] │ │ │ │ │ + ldrd sl, [sp, #24] │ │ │ │ │ + add sp, sp, #32 │ │ │ │ │ + pop {pc} @ (ldr pc, [sp], #4) │ │ │ │ │ mov r1, r0 │ │ │ │ │ ldr r0, [r4, #4] │ │ │ │ │ bl 0 │ │ │ │ │ R_ARM_CALL fftwf_mpi_default_block │ │ │ │ │ mov r1, r0 │ │ │ │ │ str r0, [r8] │ │ │ │ │ ldr r0, [r4, #4] │ │ │ │ │ bl 0 │ │ │ │ │ R_ARM_CALL fftwf_mpi_num_blocks │ │ │ │ │ mul r1, r7, r0 │ │ │ │ │ mov r0, r9 │ │ │ │ │ bl 0 <__aeabi_idiv> │ │ │ │ │ R_ARM_CALL __aeabi_idiv │ │ │ │ │ cmp r0, #1 │ │ │ │ │ - ble adc │ │ │ │ │ + ble b94 │ │ │ │ │ ldr r2, [fp, #12] │ │ │ │ │ cmp r2, #0 │ │ │ │ │ - bne adc │ │ │ │ │ + bne b94 │ │ │ │ │ mov r1, r0 │ │ │ │ │ ldr r0, [r4, #16] │ │ │ │ │ bl 0 │ │ │ │ │ R_ARM_CALL fftwf_mpi_default_block │ │ │ │ │ mov r1, r0 │ │ │ │ │ str r0, [r8, #12] │ │ │ │ │ ldr r0, [r4, #16] │ │ │ │ │ bl 0 │ │ │ │ │ R_ARM_CALL fftwf_mpi_num_blocks │ │ │ │ │ - b adc │ │ │ │ │ + b b94 │ │ │ │ │ │ │ │ │ │ -00000b8c : │ │ │ │ │ +00000c58 : │ │ │ │ │ fftwf_mpi_local_size_many_transposed.part.0.constprop.1(): │ │ │ │ │ - push {r4, r5, r6, r7, r8, r9, sl, fp, lr} │ │ │ │ │ + strd r4, [sp, #-36]! @ 0xffffffdc │ │ │ │ │ + strd r6, [sp, #8] │ │ │ │ │ mov r6, r0 │ │ │ │ │ - sub sp, sp, #68 @ 0x44 │ │ │ │ │ mov r0, #24 │ │ │ │ │ - mov r8, r1 │ │ │ │ │ + strd r8, [sp, #16] │ │ │ │ │ mov r7, r2 │ │ │ │ │ + mov r8, r1 │ │ │ │ │ + strd sl, [sp, #24] │ │ │ │ │ mov r9, r3 │ │ │ │ │ + str lr, [sp, #32] │ │ │ │ │ + sub sp, sp, #68 @ 0x44 │ │ │ │ │ bl 0 │ │ │ │ │ R_ARM_CALL fftwf_malloc_plain │ │ │ │ │ ldr r3, [r6] │ │ │ │ │ - str r3, [r0, #8] │ │ │ │ │ - str r3, [r0, #4] │ │ │ │ │ + mov r5, r0 │ │ │ │ │ str r3, [r0] │ │ │ │ │ + str r3, [r0, #4] │ │ │ │ │ + str r3, [r0, #8] │ │ │ │ │ ldr r3, [r6, #4] │ │ │ │ │ - mov r5, r0 │ │ │ │ │ - str r3, [r0, #20] │ │ │ │ │ - str r3, [r0, #16] │ │ │ │ │ str r3, [r0, #12] │ │ │ │ │ + str r3, [r0, #16] │ │ │ │ │ + str r3, [r0, #20] │ │ │ │ │ mov r0, #32 │ │ │ │ │ bl 0 │ │ │ │ │ R_ARM_CALL fftwf_malloc_plain │ │ │ │ │ mov r3, #0 │ │ │ │ │ + add r1, sp, #32 │ │ │ │ │ + mov r4, r0 │ │ │ │ │ + add sl, r0, #24 │ │ │ │ │ str r3, [r5, #4] │ │ │ │ │ ldr r2, [r6, #4] │ │ │ │ │ - add r1, sp, #32 │ │ │ │ │ cmp r2, r8 │ │ │ │ │ - strgt r8, [r5, #20] │ │ │ │ │ strle r3, [r5, #8] │ │ │ │ │ - mov r4, r0 │ │ │ │ │ add r3, r0, #16 │ │ │ │ │ + strgt r8, [r5, #20] │ │ │ │ │ add r8, r0, #8 │ │ │ │ │ - add sl, r0, #24 │ │ │ │ │ mov r0, r7 │ │ │ │ │ str r3, [sp, #12] │ │ │ │ │ bl 0 │ │ │ │ │ R_ARM_CALL MPI_Comm_rank │ │ │ │ │ add r1, sp, #36 @ 0x24 │ │ │ │ │ mov r0, r7 │ │ │ │ │ bl 0 │ │ │ │ │ R_ARM_CALL MPI_Comm_size │ │ │ │ │ ldr r1, [sp, #36] @ 0x24 │ │ │ │ │ mov r2, #0 │ │ │ │ │ mov r0, r5 │ │ │ │ │ - bl 9ec │ │ │ │ │ + bl a90 │ │ │ │ │ mov r1, #0 │ │ │ │ │ mov r6, r0 │ │ │ │ │ bl 0 │ │ │ │ │ R_ARM_CALL fftwf_mpi_is_block1d │ │ │ │ │ cmp r0, #0 │ │ │ │ │ - bne cf0 │ │ │ │ │ + bne de0 │ │ │ │ │ mov r7, #1 │ │ │ │ │ ldr r0, [sp, #32] │ │ │ │ │ mov r3, r4 │ │ │ │ │ mov r1, r6 │ │ │ │ │ mov r2, #0 │ │ │ │ │ str r8, [sp] │ │ │ │ │ - bl 2d0 │ │ │ │ │ + bl 2f4 │ │ │ │ │ ldr r3, [sp, #12] │ │ │ │ │ - ldr r0, [sp, #32] │ │ │ │ │ mov r1, r6 │ │ │ │ │ mov r2, #1 │ │ │ │ │ str sl, [sp] │ │ │ │ │ - bl 2d0 │ │ │ │ │ - ldr r2, [r4, #20] │ │ │ │ │ + ldr r0, [sp, #32] │ │ │ │ │ + bl 2f4 │ │ │ │ │ ldr r3, [r4] │ │ │ │ │ - ldr r1, [r4, #16] │ │ │ │ │ ldr r0, [r4, #4] │ │ │ │ │ - mul r1, r2, r1 │ │ │ │ │ + ldr r1, [r4, #16] │ │ │ │ │ + ldr r2, [r4, #20] │ │ │ │ │ mul r0, r3, r0 │ │ │ │ │ + mul r1, r2, r1 │ │ │ │ │ bl 0 │ │ │ │ │ R_ARM_CALL fftwf_imax │ │ │ │ │ mov r1, r0 │ │ │ │ │ mov r0, r7 │ │ │ │ │ bl 0 │ │ │ │ │ R_ARM_CALL fftwf_imax │ │ │ │ │ mov r7, r0 │ │ │ │ │ mov r0, r6 │ │ │ │ │ bl 0 │ │ │ │ │ R_ARM_CALL fftwf_mpi_dtensor_destroy │ │ │ │ │ ldr r3, [r4] │ │ │ │ │ + mov r0, r4 │ │ │ │ │ str r3, [r9] │ │ │ │ │ - ldr r3, [sp, #104] @ 0x68 │ │ │ │ │ ldr r2, [r4, #8] │ │ │ │ │ + ldr r3, [sp, #104] @ 0x68 │ │ │ │ │ str r2, [r3] │ │ │ │ │ - ldr r3, [sp, #108] @ 0x6c │ │ │ │ │ ldr r2, [r4, #20] │ │ │ │ │ + ldr r3, [sp, #108] @ 0x6c │ │ │ │ │ str r2, [r3] │ │ │ │ │ - ldr r3, [sp, #112] @ 0x70 │ │ │ │ │ ldr r2, [r4, #28] │ │ │ │ │ - mov r0, r4 │ │ │ │ │ + ldr r3, [sp, #112] @ 0x70 │ │ │ │ │ str r2, [r3] │ │ │ │ │ bl 0 │ │ │ │ │ R_ARM_CALL fftwf_ifree │ │ │ │ │ mov r0, r5 │ │ │ │ │ bl 0 │ │ │ │ │ R_ARM_CALL fftwf_ifree │ │ │ │ │ mov r0, r7 │ │ │ │ │ add sp, sp, #68 @ 0x44 │ │ │ │ │ - pop {r4, r5, r6, r7, r8, r9, sl, fp, pc} │ │ │ │ │ + ldrd r4, [sp] │ │ │ │ │ + ldrd r6, [sp, #8] │ │ │ │ │ + ldrd r8, [sp, #16] │ │ │ │ │ + ldrd sl, [sp, #24] │ │ │ │ │ + add sp, sp, #32 │ │ │ │ │ + pop {pc} @ (ldr pc, [sp], #4) │ │ │ │ │ mov r1, #1 │ │ │ │ │ mov r0, r6 │ │ │ │ │ bl 0 │ │ │ │ │ R_ARM_CALL fftwf_mpi_is_block1d │ │ │ │ │ cmp r0, #0 │ │ │ │ │ - beq c40 │ │ │ │ │ - ldmib r6, {r0, r1, r2} │ │ │ │ │ + beq d1c │ │ │ │ │ + ldrd r2, [r6, #4] │ │ │ │ │ add r7, r6, #16 │ │ │ │ │ - add r3, sp, #40 @ 0x28 │ │ │ │ │ - stm r3, {r0, r1, r2} │ │ │ │ │ - ldm r7, {r0, r1, r2} │ │ │ │ │ - add r3, sp, #64 @ 0x40 │ │ │ │ │ mov fp, #0 │ │ │ │ │ - stmdb r3, {r0, r1, r2} │ │ │ │ │ - mov r3, r7 │ │ │ │ │ str r4, [sp, #16] │ │ │ │ │ - mov r7, r6 │ │ │ │ │ mov r4, r6 │ │ │ │ │ + strd r2, [sp, #40] @ 0x28 │ │ │ │ │ + ldr r3, [r6, #12] │ │ │ │ │ + str r3, [sp, #48] @ 0x30 │ │ │ │ │ + ldrd r2, [r6, #16] │ │ │ │ │ + strd r2, [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 │ │ │ │ │ ldmib r4, {r0, r1} │ │ │ │ │ bl 0 │ │ │ │ │ R_ARM_CALL fftwf_mpi_num_blocks │ │ │ │ │ cmp r0, #1 │ │ │ │ │ - beq e44 │ │ │ │ │ + beq f3c │ │ │ │ │ add r2, r5, #1 │ │ │ │ │ - cmp r2, #2 │ │ │ │ │ add r4, r4, #12 │ │ │ │ │ + cmp r2, #2 │ │ │ │ │ mov r5, #1 │ │ │ │ │ - bne d40 │ │ │ │ │ + bne e38 │ │ │ │ │ mov r3, fp │ │ │ │ │ mov fp, r5 │ │ │ │ │ + ldr r4, [sp, #16] │ │ │ │ │ mov r5, r6 │ │ │ │ │ mov r6, r7 │ │ │ │ │ mov r7, r3 │ │ │ │ │ - ldr r4, [sp, #16] │ │ │ │ │ str fp, [sp, #16] │ │ │ │ │ ldr r1, [r6] │ │ │ │ │ cmp r1, #1 │ │ │ │ │ - ble f24 │ │ │ │ │ + ble 1024 │ │ │ │ │ add r1, r1, r1, lsl #1 │ │ │ │ │ - sub r1, r1, #3 │ │ │ │ │ mov r3, #0 │ │ │ │ │ mov fp, #1 │ │ │ │ │ + sub r1, r1, #3 │ │ │ │ │ ldr r2, [r7, r3, lsl #2] │ │ │ │ │ add r3, r3, #3 │ │ │ │ │ cmp r1, r3 │ │ │ │ │ mul fp, r2, fp │ │ │ │ │ - bne d9c │ │ │ │ │ - ldr r1, [sp, #36] @ 0x24 │ │ │ │ │ - mov r0, fp │ │ │ │ │ + bne e94 │ │ │ │ │ ldr r7, [r6, #4] │ │ │ │ │ + mov r0, fp │ │ │ │ │ + ldr r1, [sp, #36] @ 0x24 │ │ │ │ │ bl 0 │ │ │ │ │ R_ARM_CALL fftwf_mpi_default_block │ │ │ │ │ ldr r2, [sp, #32] │ │ │ │ │ mov r1, r0 │ │ │ │ │ mov r0, fp │ │ │ │ │ bl 0 │ │ │ │ │ R_ARM_CALL fftwf_mpi_block │ │ │ │ │ mul r1, r0, r7 │ │ │ │ │ ldr r0, [sp, #16] │ │ │ │ │ bl 0 │ │ │ │ │ R_ARM_CALL fftwf_imax │ │ │ │ │ ldm r6, {r1, r7} │ │ │ │ │ - cmp r1, #2 │ │ │ │ │ str r0, [sp, #16] │ │ │ │ │ - ble e10 │ │ │ │ │ + cmp r1, #2 │ │ │ │ │ + ble f08 │ │ │ │ │ add r1, r1, r1, lsl #1 │ │ │ │ │ - sub r1, r1, #6 │ │ │ │ │ mov r3, #0 │ │ │ │ │ add r0, r6, #28 │ │ │ │ │ + sub r1, r1, #6 │ │ │ │ │ ldr r2, [r0, r3, lsl #2] │ │ │ │ │ add r3, r3, #3 │ │ │ │ │ cmp r1, r3 │ │ │ │ │ mul r7, r2, r7 │ │ │ │ │ - bne dfc │ │ │ │ │ - ldr r1, [sp, #36] @ 0x24 │ │ │ │ │ - mov r0, r7 │ │ │ │ │ + bne ef4 │ │ │ │ │ ldr fp, [r6, #16] │ │ │ │ │ + mov r0, r7 │ │ │ │ │ + ldr r1, [sp, #36] @ 0x24 │ │ │ │ │ bl 0 │ │ │ │ │ R_ARM_CALL fftwf_mpi_default_block │ │ │ │ │ ldr r2, [sp, #32] │ │ │ │ │ mov r1, r0 │ │ │ │ │ mov r0, r7 │ │ │ │ │ bl 0 │ │ │ │ │ R_ARM_CALL fftwf_mpi_block │ │ │ │ │ mul r1, r0, fp │ │ │ │ │ ldr r0, [sp, #16] │ │ │ │ │ bl 0 │ │ │ │ │ R_ARM_CALL fftwf_imax │ │ │ │ │ mov r7, r0 │ │ │ │ │ - b c44 │ │ │ │ │ - ldr r1, [r4, #12] │ │ │ │ │ + b d20 │ │ │ │ │ ldr r0, [r4, #4] │ │ │ │ │ + ldr r1, [r4, #12] │ │ │ │ │ bl 0 │ │ │ │ │ R_ARM_CALL fftwf_mpi_num_blocks │ │ │ │ │ cmp r0, #1 │ │ │ │ │ - bne d50 │ │ │ │ │ + bne e48 │ │ │ │ │ mov r3, fp │ │ │ │ │ mov fp, r5 │ │ │ │ │ + ldr r4, [sp, #16] │ │ │ │ │ mov r5, r6 │ │ │ │ │ mov r6, r7 │ │ │ │ │ + str r0, [sp, #16] │ │ │ │ │ mov r7, r3 │ │ │ │ │ rsb r3, fp, #0 │ │ │ │ │ - and r3, r3, #12 │ │ │ │ │ - add r3, r6, r3 │ │ │ │ │ - ldr r4, [sp, #16] │ │ │ │ │ ldr r1, [sp, #36] @ 0x24 │ │ │ │ │ - str r0, [sp, #16] │ │ │ │ │ - ldr r0, [r3, #4] │ │ │ │ │ - str r3, [sp, #20] │ │ │ │ │ + and r3, r3, #12 │ │ │ │ │ + add r2, r6, r3 │ │ │ │ │ + ldr r0, [r2, #4] │ │ │ │ │ + str r2, [sp, #20] │ │ │ │ │ bl 0 │ │ │ │ │ R_ARM_CALL fftwf_mpi_default_block │ │ │ │ │ - ldr r3, [sp, #20] │ │ │ │ │ - eor r2, fp, #1 │ │ │ │ │ - str r2, [sp, #28] │ │ │ │ │ - mov r1, r6 │ │ │ │ │ - str r0, [r3, #8] │ │ │ │ │ + ldr r2, [sp, #20] │ │ │ │ │ + eor r3, fp, #1 │ │ │ │ │ + str r3, [sp, #28] │ │ │ │ │ sub r3, fp, #1 │ │ │ │ │ and r3, r3, #12 │ │ │ │ │ - add r2, r6, r3 │ │ │ │ │ - ldr r3, [r2, #4] │ │ │ │ │ - str r3, [r2, #8] │ │ │ │ │ + add r1, r6, r3 │ │ │ │ │ + str r0, [r2, #8] │ │ │ │ │ + mov r2, #0 │ │ │ │ │ + ldr r3, [r1, #4] │ │ │ │ │ + str r1, [sp, #24] │ │ │ │ │ ldr r0, [sp, #32] │ │ │ │ │ + str r3, [r1, #8] │ │ │ │ │ mov r3, r4 │ │ │ │ │ - str r2, [sp, #24] │ │ │ │ │ + mov r1, r6 │ │ │ │ │ str r8, [sp] │ │ │ │ │ - mov r2, #0 │ │ │ │ │ - bl 2d0 │ │ │ │ │ + bl 2f4 │ │ │ │ │ ldm r4, {r1, r3} │ │ │ │ │ ldr r0, [sp, #16] │ │ │ │ │ mul r1, r3, r1 │ │ │ │ │ bl 0 │ │ │ │ │ R_ARM_CALL fftwf_imax │ │ │ │ │ add r3, fp, fp, lsl #1 │ │ │ │ │ str r0, [sp, #16] │ │ │ │ │ add r0, sp, #64 @ 0x40 │ │ │ │ │ + ldr r2, [sp, #20] │ │ │ │ │ add r3, r0, r3, lsl #2 │ │ │ │ │ - sub r3, r3, #24 │ │ │ │ │ - ldm r3, {r0, r1, r2} │ │ │ │ │ - ldr r3, [sp, #20] │ │ │ │ │ - stmib r3, {r0, r1, r2} │ │ │ │ │ - ldr r1, [sp, #28] │ │ │ │ │ - add r3, r1, r1, lsl #1 │ │ │ │ │ - add r1, sp, #64 @ 0x40 │ │ │ │ │ - add r3, r1, r3, lsl #2 │ │ │ │ │ - sub r3, r3, #24 │ │ │ │ │ - ldm r3, {r0, r1, r2} │ │ │ │ │ - ldr r3, [sp, #24] │ │ │ │ │ - stmib r3, {r0, r1, r2} │ │ │ │ │ - b d80 │ │ │ │ │ + ldrd r0, [r3, #-24] @ 0xffffffe8 │ │ │ │ │ + ldr r3, [r3, #-16] │ │ │ │ │ + strd r0, [r2, #4] │ │ │ │ │ + add r0, sp, #64 @ 0x40 │ │ │ │ │ + str r3, [r2, #12] │ │ │ │ │ + ldr r2, [sp, #24] │ │ │ │ │ + ldr r3, [sp, #28] │ │ │ │ │ + add r3, r3, r3, lsl #1 │ │ │ │ │ + add r3, r0, r3, lsl #2 │ │ │ │ │ + ldrd r0, [r3, #-24] @ 0xffffffe8 │ │ │ │ │ + ldr r3, [r3, #-16] │ │ │ │ │ + strd r0, [r2, #4] │ │ │ │ │ + str r3, [r2, #12] │ │ │ │ │ + b e78 │ │ │ │ │ mov fp, #1 │ │ │ │ │ - b db0 │ │ │ │ │ + b ea8 │ │ │ │ │ │ │ │ │ │ -00000f2c : │ │ │ │ │ +0000102c : │ │ │ │ │ default_sz.constprop.2(): │ │ │ │ │ - push {r4, r5, r6, r7, r8, r9, sl, lr} │ │ │ │ │ + strd r4, [sp, #-32]! @ 0xffffffe0 │ │ │ │ │ mov r5, r0 │ │ │ │ │ mov r0, #1 │ │ │ │ │ + strd r6, [sp, #8] │ │ │ │ │ + mov r7, #0 │ │ │ │ │ + strd r8, [sp, #16] │ │ │ │ │ mov r8, r1 │ │ │ │ │ + str sl, [sp, #24] │ │ │ │ │ + str lr, [sp, #28] │ │ │ │ │ bl 0 │ │ │ │ │ R_ARM_CALL fftwf_mpi_mkdtensor │ │ │ │ │ - mov r7, #0 │ │ │ │ │ mov r4, r0 │ │ │ │ │ mov r0, #1 │ │ │ │ │ bl 0 │ │ │ │ │ R_ARM_CALL fftwf_mpi_mkdtensor │ │ │ │ │ - ldr r2, [r5, #4] │ │ │ │ │ ldr r3, [r5] │ │ │ │ │ + mov r6, r0 │ │ │ │ │ + add r9, r0, #8 │ │ │ │ │ + ldr r2, [r5, #4] │ │ │ │ │ ldr r1, [r5, #8] │ │ │ │ │ - cmp r2, #0 │ │ │ │ │ add r5, r4, #8 │ │ │ │ │ + str r3, [r0, #4] │ │ │ │ │ + cmp r2, #0 │ │ │ │ │ str r2, [r0, #8] │ │ │ │ │ moveq r2, r3 │ │ │ │ │ cmp r1, #0 │ │ │ │ │ - str r3, [r0, #4] │ │ │ │ │ str r1, [r0, #12] │ │ │ │ │ - mov r6, r0 │ │ │ │ │ str r3, [r4, #4] │ │ │ │ │ - add r9, r0, #8 │ │ │ │ │ movne r3, r1 │ │ │ │ │ str r2, [r4, #8] │ │ │ │ │ str r3, [r4, #12] │ │ │ │ │ mov r1, r7 │ │ │ │ │ mov r0, r4 │ │ │ │ │ bl 0 │ │ │ │ │ R_ARM_CALL fftwf_mpi_num_blocks_total │ │ │ │ │ mov r1, r0 │ │ │ │ │ mov r0, r8 │ │ │ │ │ bl 0 <__aeabi_idiv> │ │ │ │ │ R_ARM_CALL __aeabi_idiv │ │ │ │ │ cmp r0, #1 │ │ │ │ │ mov r1, r0 │ │ │ │ │ - ble fc0 │ │ │ │ │ + ble 10d0 │ │ │ │ │ ldr r3, [r9] │ │ │ │ │ cmp r3, #0 │ │ │ │ │ - beq 1018 │ │ │ │ │ + beq 1140 │ │ │ │ │ add r3, r7, #1 │ │ │ │ │ - cmp r3, #2 │ │ │ │ │ add r5, r5, #4 │ │ │ │ │ + cmp r3, #2 │ │ │ │ │ add r9, r9, #4 │ │ │ │ │ mov r7, #1 │ │ │ │ │ - bne f90 │ │ │ │ │ + bne 10a0 │ │ │ │ │ ldr r0, [r4, #4] │ │ │ │ │ bl 0 │ │ │ │ │ R_ARM_CALL fftwf_is_prime │ │ │ │ │ cmp r0, #0 │ │ │ │ │ - ldrne r3, [r4, #4] │ │ │ │ │ - strne r3, [r4, #12] │ │ │ │ │ - strne r3, [r4, #8] │ │ │ │ │ + beq 1104 │ │ │ │ │ + ldr r3, [r4, #4] │ │ │ │ │ + str r3, [r4, #8] │ │ │ │ │ + str r3, [r4, #12] │ │ │ │ │ mov r0, r6 │ │ │ │ │ bl 0 │ │ │ │ │ R_ARM_CALL fftwf_mpi_dtensor_destroy │ │ │ │ │ mov r1, #0 │ │ │ │ │ mov r0, r4 │ │ │ │ │ bl 0 │ │ │ │ │ R_ARM_CALL fftwf_mpi_dtensor_canonical │ │ │ │ │ mov r5, r0 │ │ │ │ │ mov r0, r4 │ │ │ │ │ bl 0 │ │ │ │ │ R_ARM_CALL fftwf_mpi_dtensor_destroy │ │ │ │ │ + ldrd r6, [sp, #8] │ │ │ │ │ mov r0, r5 │ │ │ │ │ - pop {r4, r5, r6, r7, r8, r9, sl, pc} │ │ │ │ │ + ldrd r4, [sp] │ │ │ │ │ + ldrd r8, [sp, #16] │ │ │ │ │ + ldr sl, [sp, #24] │ │ │ │ │ + add sp, sp, #28 │ │ │ │ │ + pop {pc} @ (ldr pc, [sp], #4) │ │ │ │ │ ldr r0, [r4, #4] │ │ │ │ │ bl 0 │ │ │ │ │ R_ARM_CALL fftwf_mpi_default_block │ │ │ │ │ mov r1, r0 │ │ │ │ │ str r0, [r5] │ │ │ │ │ ldr r0, [r4, #4] │ │ │ │ │ bl 0 │ │ │ │ │ R_ARM_CALL fftwf_mpi_num_blocks │ │ │ │ │ - b fc0 │ │ │ │ │ + b 10d0 │ │ │ │ │ │ │ │ │ │ -00001034 : │ │ │ │ │ +0000115c : │ │ │ │ │ fftwf_mpi_local_size_guru.part.0.constprop.0(): │ │ │ │ │ - push {r4, r5, r6, r7, r8, r9, sl, fp, lr} │ │ │ │ │ - sub sp, sp, #44 @ 0x2c │ │ │ │ │ + strd r4, [sp, #-36]! @ 0xffffffdc │ │ │ │ │ mov r4, r2 │ │ │ │ │ - mov sl, r0 │ │ │ │ │ mov r5, r1 │ │ │ │ │ + strd r6, [sp, #8] │ │ │ │ │ + mov r6, r3 │ │ │ │ │ + strd r8, [sp, #16] │ │ │ │ │ + strd sl, [sp, #24] │ │ │ │ │ + mov sl, r0 │ │ │ │ │ mov r0, r2 │ │ │ │ │ + str lr, [sp, #32] │ │ │ │ │ + sub sp, sp, #44 @ 0x2c │ │ │ │ │ add r1, sp, #16 │ │ │ │ │ - mov r6, r3 │ │ │ │ │ ldr r8, [sp, #84] @ 0x54 │ │ │ │ │ ldr r9, [sp, #92] @ 0x5c │ │ │ │ │ ldr r7, [sp, #96] @ 0x60 │ │ │ │ │ bl 0 │ │ │ │ │ R_ARM_CALL MPI_Comm_rank │ │ │ │ │ add r1, sp, #20 │ │ │ │ │ mov r0, r4 │ │ │ │ │ bl 0 │ │ │ │ │ R_ARM_CALL MPI_Comm_size │ │ │ │ │ ldr r1, [sp, #20] │ │ │ │ │ mov r0, sl │ │ │ │ │ - bl f2c │ │ │ │ │ + bl 102c │ │ │ │ │ ldr r3, [sp, #20] │ │ │ │ │ - cmp r5, r3 │ │ │ │ │ mov r4, r0 │ │ │ │ │ - blt 1094 │ │ │ │ │ + cmp r5, r3 │ │ │ │ │ + blt 11cc │ │ │ │ │ lsrs sl, r7, #27 │ │ │ │ │ - beq 118c │ │ │ │ │ + beq 12d8 │ │ │ │ │ add r2, r9, #1 │ │ │ │ │ bics r2, r2, #2 │ │ │ │ │ - bne 116c │ │ │ │ │ + bne 12b8 │ │ │ │ │ add r2, sp, #32 │ │ │ │ │ + stm sp, {r7, r9} │ │ │ │ │ str r2, [sp, #12] │ │ │ │ │ add r2, sp, #24 │ │ │ │ │ - stm sp, {r7, r9} │ │ │ │ │ str r2, [sp, #8] │ │ │ │ │ ldmib r4, {r0, r1, r2} │ │ │ │ │ bl 0 │ │ │ │ │ R_ARM_CALL fftwf_mpi_choose_radix │ │ │ │ │ subs r9, r0, #0 │ │ │ │ │ moveq sl, #1 │ │ │ │ │ - beq 1104 │ │ │ │ │ - mov r1, r9 │ │ │ │ │ + beq 123c │ │ │ │ │ ldr r0, [r4, #4] │ │ │ │ │ + mov r1, r9 │ │ │ │ │ bl 0 <__aeabi_idiv> │ │ │ │ │ R_ARM_CALL __aeabi_idiv │ │ │ │ │ ldr r1, [sp, #24] │ │ │ │ │ tst r7, #134217728 @ 0x8000000 │ │ │ │ │ - mul r1, r0, r1 │ │ │ │ │ mov fp, r0 │ │ │ │ │ - beq 122c │ │ │ │ │ + mul r1, r0, r1 │ │ │ │ │ + beq 1380 │ │ │ │ │ mov sl, #1 │ │ │ │ │ str r1, [r4, #8] │ │ │ │ │ ldr r3, [sp, #36] @ 0x24 │ │ │ │ │ tst r7, #268435456 @ 0x10000000 │ │ │ │ │ mul r1, r3, r9 │ │ │ │ │ strne r1, [r4, #12] │ │ │ │ │ - beq 1210 │ │ │ │ │ - ldr r3, [sp, #80] @ 0x50 │ │ │ │ │ + beq 1364 │ │ │ │ │ ldr r0, [sp, #16] │ │ │ │ │ mov r1, r4 │ │ │ │ │ - str r3, [sp] │ │ │ │ │ mov r2, #0 │ │ │ │ │ + ldr r3, [sp, #80] @ 0x50 │ │ │ │ │ + str r3, [sp] │ │ │ │ │ mov r3, r6 │ │ │ │ │ - bl 2d0 │ │ │ │ │ - ldr r3, [sp, #88] @ 0x58 │ │ │ │ │ - mov r2, #1 │ │ │ │ │ + bl 2f4 │ │ │ │ │ ldr r0, [sp, #16] │ │ │ │ │ + mov r2, #1 │ │ │ │ │ mov r1, r4 │ │ │ │ │ + ldr r3, [sp, #88] @ 0x58 │ │ │ │ │ str r3, [sp] │ │ │ │ │ mov r3, r8 │ │ │ │ │ - bl 2d0 │ │ │ │ │ + bl 2f4 │ │ │ │ │ ldr r1, [r8] │ │ │ │ │ ldr r0, [r6] │ │ │ │ │ bl 0 │ │ │ │ │ R_ARM_CALL fftwf_imax │ │ │ │ │ mov r1, r0 │ │ │ │ │ mov r0, sl │ │ │ │ │ bl 0 │ │ │ │ │ R_ARM_CALL fftwf_imax │ │ │ │ │ mov r6, r0 │ │ │ │ │ mov r0, r4 │ │ │ │ │ bl 0 │ │ │ │ │ R_ARM_CALL fftwf_mpi_dtensor_destroy │ │ │ │ │ mul r0, r6, r5 │ │ │ │ │ add sp, sp, #44 @ 0x2c │ │ │ │ │ - pop {r4, r5, r6, r7, r8, r9, sl, fp, pc} │ │ │ │ │ - ldr r2, [pc, #212] @ 1248 │ │ │ │ │ - ldr r0, [pc, #212] @ 124c │ │ │ │ │ - ldr r1, [pc, #212] @ 1250 │ │ │ │ │ + ldrd r4, [sp] │ │ │ │ │ + ldrd r6, [sp, #8] │ │ │ │ │ + ldrd r8, [sp, #16] │ │ │ │ │ + ldrd sl, [sp, #24] │ │ │ │ │ + add sp, sp, #32 │ │ │ │ │ + pop {pc} @ (ldr pc, [sp], #4) │ │ │ │ │ + ldr r2, [pc, #220] @ 139c │ │ │ │ │ + ldr r0, [pc, #220] @ 13a0 │ │ │ │ │ + ldr r1, [pc, #220] @ 13a4 │ │ │ │ │ add r2, pc, r2 │ │ │ │ │ add r0, pc, r0 │ │ │ │ │ bl 0 │ │ │ │ │ R_ARM_CALL fftwf_assertion_failed │ │ │ │ │ ldr r3, [sp, #20] │ │ │ │ │ - b 10a0 │ │ │ │ │ + b 11d8 │ │ │ │ │ mov r0, #2 │ │ │ │ │ bl 0 │ │ │ │ │ R_ARM_CALL fftwf_mpi_mkdtensor │ │ │ │ │ + ldrd r2, [r4, #4] │ │ │ │ │ mov r7, r0 │ │ │ │ │ - ldmib r4, {r0, r1, r2} │ │ │ │ │ - stmib r7, {r0, r1, r2} │ │ │ │ │ - ldr r3, [r4, #4] │ │ │ │ │ ldr r1, [sp, #20] │ │ │ │ │ - str r3, [r7, #8] │ │ │ │ │ + strd r2, [r0, #4] │ │ │ │ │ + ldr r3, [r4, #12] │ │ │ │ │ + str r3, [r0, #12] │ │ │ │ │ + ldr r3, [r4, #4] │ │ │ │ │ + str r3, [r0, #8] │ │ │ │ │ + str r5, [r0, #16] │ │ │ │ │ + str r5, [r0, #24] │ │ │ │ │ mov r0, r5 │ │ │ │ │ - str r5, [r7, #24] │ │ │ │ │ - str r5, [r7, #16] │ │ │ │ │ bl 0 │ │ │ │ │ R_ARM_CALL fftwf_mpi_default_block │ │ │ │ │ add r3, sp, #32 │ │ │ │ │ mov r2, sl │ │ │ │ │ - mov r1, r7 │ │ │ │ │ str r0, [r7, #20] │ │ │ │ │ ldr r0, [sp, #16] │ │ │ │ │ + mov r1, r7 │ │ │ │ │ str r3, [sp] │ │ │ │ │ add r3, sp, #24 │ │ │ │ │ - bl 2d0 │ │ │ │ │ + bl 2f4 │ │ │ │ │ mov r0, r7 │ │ │ │ │ bl 0 │ │ │ │ │ R_ARM_CALL fftwf_mpi_dtensor_destroy │ │ │ │ │ - ldr r3, [sp, #28] │ │ │ │ │ ldr r0, [sp, #24] │ │ │ │ │ mov r1, r5 │ │ │ │ │ + ldr r3, [sp, #28] │ │ │ │ │ mla r0, r3, r0, r5 │ │ │ │ │ sub r0, r0, #1 │ │ │ │ │ bl 0 <__aeabi_idiv> │ │ │ │ │ R_ARM_CALL __aeabi_idiv │ │ │ │ │ mov r1, r0 │ │ │ │ │ mov r0, #1 │ │ │ │ │ bl 0 │ │ │ │ │ R_ARM_CALL fftwf_imax │ │ │ │ │ mov sl, r0 │ │ │ │ │ - b 1104 │ │ │ │ │ + b 123c │ │ │ │ │ mov r0, sl │ │ │ │ │ bl 0 │ │ │ │ │ R_ARM_CALL fftwf_imax │ │ │ │ │ ldr r3, [sp, #28] │ │ │ │ │ + mov sl, r0 │ │ │ │ │ mul r3, fp, r3 │ │ │ │ │ str r3, [r4, #12] │ │ │ │ │ - mov sl, r0 │ │ │ │ │ - b 1104 │ │ │ │ │ + b 123c │ │ │ │ │ ldr r3, [sp, #32] │ │ │ │ │ mov r0, #1 │ │ │ │ │ mul r3, r9, r3 │ │ │ │ │ str r3, [r4, #8] │ │ │ │ │ bl 0 │ │ │ │ │ R_ARM_CALL fftwf_imax │ │ │ │ │ mov sl, r0 │ │ │ │ │ - b 10f0 │ │ │ │ │ - .word 0x000000c8 │ │ │ │ │ + b 1228 │ │ │ │ │ + .word 0x000000d0 │ │ │ │ │ R_ARM_REL32 .LC0 │ │ │ │ │ - .word 0x000000c8 │ │ │ │ │ + .word 0x000000d0 │ │ │ │ │ R_ARM_REL32 .LC1 │ │ │ │ │ .word 0x00000143 │ │ │ │ │ │ │ │ │ │ -00001254 : │ │ │ │ │ +000013a8 : │ │ │ │ │ default_sz(): │ │ │ │ │ - push {r4, r5, r6, r7, r8, r9, sl, fp, lr} │ │ │ │ │ - sub sp, sp, #20 │ │ │ │ │ - mov r6, r0 │ │ │ │ │ + strd r4, [sp, #-36]! @ 0xffffffdc │ │ │ │ │ mov r5, r1 │ │ │ │ │ - mov r8, r2 │ │ │ │ │ + strd r6, [sp, #8] │ │ │ │ │ + mov r6, r0 │ │ │ │ │ + strd r8, [sp, #16] │ │ │ │ │ + strd sl, [sp, #24] │ │ │ │ │ mov fp, r3 │ │ │ │ │ + str lr, [sp, #32] │ │ │ │ │ + sub sp, sp, #20 │ │ │ │ │ + str r2, [sp, #8] │ │ │ │ │ bl 0 │ │ │ │ │ R_ARM_CALL fftwf_mpi_mkdtensor │ │ │ │ │ mov r7, r0 │ │ │ │ │ mov r0, r6 │ │ │ │ │ bl 0 │ │ │ │ │ R_ARM_CALL fftwf_mpi_mkdtensor │ │ │ │ │ cmp r6, #0 │ │ │ │ │ - str r0, [sp] │ │ │ │ │ - ble 150c │ │ │ │ │ + mov r9, r0 │ │ │ │ │ + ble 1690 │ │ │ │ │ sub r2, r6, #1 │ │ │ │ │ cmp r2, #2 │ │ │ │ │ - bls 1568 │ │ │ │ │ + bls 16f0 │ │ │ │ │ add r3, r0, #4 │ │ │ │ │ - add r1, r5, #24 │ │ │ │ │ - add r0, r0, #28 │ │ │ │ │ - cmp r1, r3 │ │ │ │ │ - cmphi r0, r5 │ │ │ │ │ + add r0, r5, #24 │ │ │ │ │ + cmp r0, r3 │ │ │ │ │ + add ip, r9, #28 │ │ │ │ │ orr r3, r3, r5 │ │ │ │ │ - movls ip, #1 │ │ │ │ │ - movhi ip, #0 │ │ │ │ │ + movhi r1, #0 │ │ │ │ │ + movls r1, #1 │ │ │ │ │ + cmp r5, ip │ │ │ │ │ + orrcs r1, r1, #1 │ │ │ │ │ tst r3, #7 │ │ │ │ │ movne r3, #0 │ │ │ │ │ - andeq r3, ip, #1 │ │ │ │ │ + andeq r3, r1, #1 │ │ │ │ │ cmp r3, #0 │ │ │ │ │ - beq 1568 │ │ │ │ │ + beq 16f0 │ │ │ │ │ bic ip, r6, #1 │ │ │ │ │ + mov r1, r9 │ │ │ │ │ + str fp, [sp] │ │ │ │ │ add ip, ip, r6, lsr #1 │ │ │ │ │ - add ip, r1, ip, lsl #3 │ │ │ │ │ - mov r3, r5 │ │ │ │ │ - mov lr, fp │ │ │ │ │ - str r8, [sp, #4] │ │ │ │ │ - ldrd sl, [r1, #-16] │ │ │ │ │ - ldrd r4, [r1, #-8] │ │ │ │ │ - ldrd r8, [r1, #-24] @ 0xffffffe8 │ │ │ │ │ + mov r3, r9 │ │ │ │ │ + mov lr, r5 │ │ │ │ │ + add ip, r9, ip, lsl #3 │ │ │ │ │ + ldrd sl, [r0, #-24] @ 0xffffffe8 │ │ │ │ │ add r1, r1, #24 │ │ │ │ │ - cmp r1, ip │ │ │ │ │ - strd r8, [r0, #-24] @ 0xffffffe8 │ │ │ │ │ - strd sl, [r0, #-16] │ │ │ │ │ - strd r4, [r0, #-8] │ │ │ │ │ add r0, r0, #24 │ │ │ │ │ - bne 12e0 │ │ │ │ │ - mov r5, r3 │ │ │ │ │ + ldrd r8, [r0, #-40] @ 0xffffffd8 │ │ │ │ │ + ldrd r4, [r0, #-32] @ 0xffffffe0 │ │ │ │ │ + strd sl, [r1, #-20] @ 0xffffffec │ │ │ │ │ + strd r8, [r1, #-12] │ │ │ │ │ + strd r4, [r1, #-4] │ │ │ │ │ + cmp r1, ip │ │ │ │ │ + bne 144c │ │ │ │ │ + mov r9, r3 │ │ │ │ │ bic r3, r6, #1 │ │ │ │ │ + ldr fp, [sp] │ │ │ │ │ cmp r6, r3 │ │ │ │ │ - ldr r8, [sp, #4] │ │ │ │ │ - mov fp, lr │ │ │ │ │ - beq 134c │ │ │ │ │ + mov r5, lr │ │ │ │ │ + beq 14b4 │ │ │ │ │ add r3, r3, r3, lsl #1 │ │ │ │ │ - lsl r1, r3, #2 │ │ │ │ │ - add r3, r5, r3, lsl #2 │ │ │ │ │ - ldr ip, [r3, #4] │ │ │ │ │ - ldr r0, [r3, #8] │ │ │ │ │ - ldr r3, [sp] │ │ │ │ │ - ldr lr, [r5, r1] │ │ │ │ │ - add r3, r3, r1 │ │ │ │ │ + lsl r3, r3, #2 │ │ │ │ │ + add r1, lr, r3 │ │ │ │ │ + ldr lr, [lr, r3] │ │ │ │ │ + add r3, r9, r3 │ │ │ │ │ + ldr ip, [r1, #4] │ │ │ │ │ + ldr r0, [r1, #8] │ │ │ │ │ str lr, [r3, #4] │ │ │ │ │ str ip, [r3, #8] │ │ │ │ │ str r0, [r3, #12] │ │ │ │ │ lsl r0, r6, #1 │ │ │ │ │ add lr, r0, r6 │ │ │ │ │ mov r3, #0 │ │ │ │ │ add ip, r7, #4 │ │ │ │ │ ldr r1, [r5, r3, lsl #2] │ │ │ │ │ str r1, [ip, r3, lsl #2] │ │ │ │ │ add r3, r3, #3 │ │ │ │ │ cmp r3, lr │ │ │ │ │ - bne 135c │ │ │ │ │ + bne 14c4 │ │ │ │ │ cmp fp, #0 │ │ │ │ │ - bne 151c │ │ │ │ │ + bne 16a0 │ │ │ │ │ add r0, r0, r6 │ │ │ │ │ mov r2, r5 │ │ │ │ │ - mov r3, r7 │ │ │ │ │ add r0, r7, r0, lsl #2 │ │ │ │ │ + mov r3, r7 │ │ │ │ │ ldr r1, [r2, #4] │ │ │ │ │ cmp r1, #0 │ │ │ │ │ ldreq r1, [r3, #4] │ │ │ │ │ str r1, [r3, #8] │ │ │ │ │ ldr r1, [r2, #8] │ │ │ │ │ cmp r1, #0 │ │ │ │ │ - bne 1484 │ │ │ │ │ + bne 15f0 │ │ │ │ │ ldr r1, [r3, #4] │ │ │ │ │ + add r2, r2, #12 │ │ │ │ │ str r1, [r3, #12]! │ │ │ │ │ cmp r3, r0 │ │ │ │ │ - add r2, r2, #12 │ │ │ │ │ - bne 1388 │ │ │ │ │ + bne 14f0 │ │ │ │ │ cmp r6, #0 │ │ │ │ │ - mov r9, #0 │ │ │ │ │ + mov r8, #0 │ │ │ │ │ + str r9, [sp] │ │ │ │ │ + ldr r9, [sp, #8] │ │ │ │ │ movle r3, #0 │ │ │ │ │ movgt r3, #1 │ │ │ │ │ - str r5, [sp, #8] │ │ │ │ │ - str fp, [sp, #12] │ │ │ │ │ - mov r5, r8 │ │ │ │ │ + str fp, [sp, #8] │ │ │ │ │ mov fp, r6 │ │ │ │ │ - mov r6, r9 │ │ │ │ │ + mov r6, r8 │ │ │ │ │ str r3, [sp, #4] │ │ │ │ │ + str r5, [sp, #12] │ │ │ │ │ mov r1, r6 │ │ │ │ │ mov r0, r7 │ │ │ │ │ bl 0 │ │ │ │ │ R_ARM_CALL fftwf_mpi_num_blocks_total │ │ │ │ │ mov r1, r0 │ │ │ │ │ - mov r9, r0 │ │ │ │ │ - mov r0, r5 │ │ │ │ │ + mov r5, r0 │ │ │ │ │ + mov r0, r9 │ │ │ │ │ bl 0 <__aeabi_idiv> │ │ │ │ │ R_ARM_CALL __aeabi_idiv │ │ │ │ │ mov r1, r0 │ │ │ │ │ ldr r0, [sp, #4] │ │ │ │ │ cmp r1, #1 │ │ │ │ │ movle r0, #0 │ │ │ │ │ andgt r0, r0, #1 │ │ │ │ │ cmp r0, #0 │ │ │ │ │ - beq 1498 │ │ │ │ │ + beq 1604 │ │ │ │ │ ldr r3, [sp] │ │ │ │ │ mov r8, r7 │ │ │ │ │ - add sl, r3, r6, lsl #2 │ │ │ │ │ mov r4, #0 │ │ │ │ │ - b 1444 │ │ │ │ │ + add sl, r3, r6, lsl #2 │ │ │ │ │ + b 15b0 │ │ │ │ │ add r4, r4, #1 │ │ │ │ │ + add sl, sl, #12 │ │ │ │ │ cmp fp, r4 │ │ │ │ │ cmpgt r1, #1 │ │ │ │ │ - add sl, sl, #12 │ │ │ │ │ add r8, r8, #12 │ │ │ │ │ - ble 1498 │ │ │ │ │ + ble 1604 │ │ │ │ │ ldr r3, [sl, #8] │ │ │ │ │ cmp r3, #0 │ │ │ │ │ - bne 142c │ │ │ │ │ + bne 1598 │ │ │ │ │ ldr r0, [r8, #4] │ │ │ │ │ bl 0 │ │ │ │ │ R_ARM_CALL fftwf_mpi_default_block │ │ │ │ │ add r3, r8, #8 │ │ │ │ │ mov r1, r0 │ │ │ │ │ str r0, [r3, r6, lsl #2] │ │ │ │ │ ldr r0, [r8, #4] │ │ │ │ │ bl 0 │ │ │ │ │ R_ARM_CALL fftwf_mpi_num_blocks │ │ │ │ │ - mul r9, r0, r9 │ │ │ │ │ - mov r0, r5 │ │ │ │ │ - mov r1, r9 │ │ │ │ │ + mul r5, r0, r5 │ │ │ │ │ + mov r0, r9 │ │ │ │ │ + mov r1, r5 │ │ │ │ │ bl 0 <__aeabi_idiv> │ │ │ │ │ R_ARM_CALL __aeabi_idiv │ │ │ │ │ mov r1, r0 │ │ │ │ │ - b 142c │ │ │ │ │ + b 1598 │ │ │ │ │ str r1, [r3, #12]! │ │ │ │ │ cmp r3, r0 │ │ │ │ │ add r2, r2, #12 │ │ │ │ │ - bne 1388 │ │ │ │ │ - b 13b8 │ │ │ │ │ + bne 14f0 │ │ │ │ │ + b 1520 │ │ │ │ │ add r1, r6, #1 │ │ │ │ │ - cmp r1, #2 │ │ │ │ │ mov r6, #1 │ │ │ │ │ - bne 13e0 │ │ │ │ │ + cmp r1, #2 │ │ │ │ │ + bne 154c │ │ │ │ │ mov r6, fp │ │ │ │ │ - ldr fp, [sp, #12] │ │ │ │ │ - ldr r5, [sp, #8] │ │ │ │ │ + ldr r9, [sp] │ │ │ │ │ + ldr fp, [sp, #8] │ │ │ │ │ + ldr r5, [sp, #12] │ │ │ │ │ cmp fp, #0 │ │ │ │ │ - beq 14d8 │ │ │ │ │ - sub r3, r6, #1 │ │ │ │ │ + beq 1648 │ │ │ │ │ add r2, r6, r6, lsl #1 │ │ │ │ │ + sub r3, r6, #1 │ │ │ │ │ add r3, r3, r3, lsl #1 │ │ │ │ │ add r2, r5, r2, lsl #2 │ │ │ │ │ - ldr r2, [r2, #-12] │ │ │ │ │ add r3, r7, r3, lsl #2 │ │ │ │ │ + ldr r2, [r2, #-12] │ │ │ │ │ str r2, [r3, #4] │ │ │ │ │ cmp r6, #1 │ │ │ │ │ - beq 154c │ │ │ │ │ - ldr r0, [sp] │ │ │ │ │ + beq 16d0 │ │ │ │ │ + mov r0, r9 │ │ │ │ │ bl 0 │ │ │ │ │ R_ARM_CALL fftwf_mpi_dtensor_destroy │ │ │ │ │ mov r1, #0 │ │ │ │ │ mov r0, r7 │ │ │ │ │ bl 0 │ │ │ │ │ R_ARM_CALL fftwf_mpi_dtensor_canonical │ │ │ │ │ mov r4, r0 │ │ │ │ │ mov r0, r7 │ │ │ │ │ bl 0 │ │ │ │ │ R_ARM_CALL fftwf_mpi_dtensor_destroy │ │ │ │ │ mov r0, r4 │ │ │ │ │ add sp, sp, #20 │ │ │ │ │ - pop {r4, r5, r6, r7, r8, r9, sl, fp, pc} │ │ │ │ │ + ldrd r4, [sp] │ │ │ │ │ + ldrd r6, [sp, #8] │ │ │ │ │ + ldrd r8, [sp, #16] │ │ │ │ │ + ldrd sl, [sp, #24] │ │ │ │ │ + add sp, sp, #32 │ │ │ │ │ + pop {pc} @ (ldr pc, [sp], #4) │ │ │ │ │ cmp fp, #0 │ │ │ │ │ - subne r2, r6, #1 │ │ │ │ │ lslne r0, r6, #1 │ │ │ │ │ - beq 13b8 │ │ │ │ │ + subne r2, r6, #1 │ │ │ │ │ + beq 1520 │ │ │ │ │ add r3, r0, r6 │ │ │ │ │ + add r2, r2, r2, lsl #1 │ │ │ │ │ + cmp r6, #0 │ │ │ │ │ add r3, r5, r3, lsl #2 │ │ │ │ │ + add r2, r7, r2, lsl #2 │ │ │ │ │ ldr r3, [r3, #-12] │ │ │ │ │ - add r2, r2, r2, lsl #1 │ │ │ │ │ add r3, r3, r3, lsr #31 │ │ │ │ │ asr r3, r3, #1 │ │ │ │ │ - add r2, r7, r2, lsl #2 │ │ │ │ │ add r3, r3, #1 │ │ │ │ │ - cmp r6, #0 │ │ │ │ │ str r3, [r2, #4] │ │ │ │ │ - bgt 1378 │ │ │ │ │ - b 13b8 │ │ │ │ │ + bgt 14e0 │ │ │ │ │ + b 1520 │ │ │ │ │ ldr r0, [r7, #4] │ │ │ │ │ bl 0 │ │ │ │ │ R_ARM_CALL fftwf_is_prime │ │ │ │ │ cmp r0, #0 │ │ │ │ │ - ldrne r3, [r7, #4] │ │ │ │ │ - strne r3, [r7, #12] │ │ │ │ │ - strne r3, [r7, #8] │ │ │ │ │ - b 14e0 │ │ │ │ │ - ldr ip, [sp] │ │ │ │ │ - add sl, r6, r6, lsl #1 │ │ │ │ │ - mov r1, r5 │ │ │ │ │ - mov r3, ip │ │ │ │ │ + beq 1650 │ │ │ │ │ + ldr r3, [r7, #4] │ │ │ │ │ + str r3, [r7, #8] │ │ │ │ │ + str r3, [r7, #12] │ │ │ │ │ + b 1650 │ │ │ │ │ lsl r0, r6, #1 │ │ │ │ │ - add sl, ip, sl, lsl #2 │ │ │ │ │ + mov r1, r5 │ │ │ │ │ + mov r3, r9 │ │ │ │ │ + add sl, r0, r6 │ │ │ │ │ + add sl, r9, sl, lsl #2 │ │ │ │ │ ldm r1, {r4, lr} │ │ │ │ │ - ldr ip, [r1, #8] │ │ │ │ │ + add r1, r1, #12 │ │ │ │ │ + ldr ip, [r1, #-4] │ │ │ │ │ stmib r3, {r4, lr} │ │ │ │ │ str ip, [r3, #12]! │ │ │ │ │ cmp r3, sl │ │ │ │ │ - add r1, r1, #12 │ │ │ │ │ - bne 1580 │ │ │ │ │ - b 1350 │ │ │ │ │ + bne 1704 │ │ │ │ │ + b 14b8 │ │ │ │ │ │ │ │ │ │ -000015a0 : │ │ │ │ │ +00001724 : │ │ │ │ │ fftwf_mpi_local_size_guru.part.0(): │ │ │ │ │ - push {r4, r5, r6, r7, r8, r9, sl, fp, lr} │ │ │ │ │ - sub sp, sp, #84 @ 0x54 │ │ │ │ │ - mov r4, r3 │ │ │ │ │ - mov r8, r0 │ │ │ │ │ - mov r5, r1 │ │ │ │ │ + strd r4, [sp, #-36]! @ 0xffffffdc │ │ │ │ │ + mov r5, r3 │ │ │ │ │ + mov r4, r0 │ │ │ │ │ + strd r6, [sp, #8] │ │ │ │ │ mov r0, r3 │ │ │ │ │ - add r1, sp, #40 @ 0x28 │ │ │ │ │ - mov r7, r2 │ │ │ │ │ - ldr r9, [sp, #120] @ 0x78 │ │ │ │ │ - ldr fp, [sp, #128] @ 0x80 │ │ │ │ │ + mov r7, r1 │ │ │ │ │ + strd r8, [sp, #16] │ │ │ │ │ + mov r6, r2 │ │ │ │ │ + strd sl, [sp, #24] │ │ │ │ │ + str lr, [sp, #32] │ │ │ │ │ + sub sp, sp, #68 @ 0x44 │ │ │ │ │ + add r1, sp, #24 │ │ │ │ │ bl 0 │ │ │ │ │ R_ARM_CALL MPI_Comm_rank │ │ │ │ │ - add r1, sp, #44 @ 0x2c │ │ │ │ │ - mov r0, r4 │ │ │ │ │ + add r1, sp, #28 │ │ │ │ │ + mov r0, r5 │ │ │ │ │ bl 0 │ │ │ │ │ R_ARM_CALL MPI_Comm_size │ │ │ │ │ - ldr r2, [sp, #44] @ 0x2c │ │ │ │ │ + ldr r2, [sp, #28] │ │ │ │ │ mov r3, #0 │ │ │ │ │ - mov r1, r5 │ │ │ │ │ - mov r0, r8 │ │ │ │ │ - bl 1254 │ │ │ │ │ - cmp r8, #1 │ │ │ │ │ - mov r6, r0 │ │ │ │ │ - bgt 1730 │ │ │ │ │ - bne 17e0 │ │ │ │ │ - ldr r3, [sp, #44] @ 0x2c │ │ │ │ │ - cmp r7, r3 │ │ │ │ │ - blt 16a0 │ │ │ │ │ - ldr r2, [sp, #140] @ 0x8c │ │ │ │ │ - lsrs r4, r2, #27 │ │ │ │ │ - bne 16a0 │ │ │ │ │ + mov r1, r7 │ │ │ │ │ + mov r0, r4 │ │ │ │ │ + bl 13a8 │ │ │ │ │ + cmp r4, #1 │ │ │ │ │ + mov r5, r0 │ │ │ │ │ + bgt 196c │ │ │ │ │ + bne 1988 │ │ │ │ │ + ldr r3, [sp, #28] │ │ │ │ │ + cmp r6, r3 │ │ │ │ │ + blt 18d8 │ │ │ │ │ + ldr r2, [sp, #124] @ 0x7c │ │ │ │ │ + lsrs r8, r2, #27 │ │ │ │ │ + bne 18d8 │ │ │ │ │ mov r0, #2 │ │ │ │ │ bl 0 │ │ │ │ │ R_ARM_CALL fftwf_mpi_mkdtensor │ │ │ │ │ - mov r5, r0 │ │ │ │ │ - ldmib r6, {r0, r1, r2} │ │ │ │ │ - stmib r5, {r0, r1, r2} │ │ │ │ │ - ldr r3, [r6, #4] │ │ │ │ │ - str r3, [r5, #8] │ │ │ │ │ - ldr r1, [sp, #44] @ 0x2c │ │ │ │ │ - str r7, [r5, #24] │ │ │ │ │ - str r7, [r5, #16] │ │ │ │ │ - mov r0, r7 │ │ │ │ │ + ldrd r2, [r5, #4] │ │ │ │ │ + mov r7, r0 │ │ │ │ │ + ldr r1, [sp, #28] │ │ │ │ │ + strd r2, [r0, #4] │ │ │ │ │ + ldr r3, [r5, #12] │ │ │ │ │ + str r3, [r0, #12] │ │ │ │ │ + ldr r3, [r5, #4] │ │ │ │ │ + str r3, [r0, #8] │ │ │ │ │ + str r6, [r0, #16] │ │ │ │ │ + str r6, [r0, #24] │ │ │ │ │ + mov r0, r6 │ │ │ │ │ bl 0 │ │ │ │ │ R_ARM_CALL fftwf_mpi_default_block │ │ │ │ │ - add r3, sp, #56 @ 0x38 │ │ │ │ │ - mov r2, r4 │ │ │ │ │ - mov r1, r5 │ │ │ │ │ - sub r4, r9, #4 │ │ │ │ │ - str r0, [r5, #20] │ │ │ │ │ - ldr r0, [sp, #40] @ 0x28 │ │ │ │ │ + add r3, sp, #40 @ 0x28 │ │ │ │ │ + mov r2, r8 │ │ │ │ │ + str r0, [r7, #20] │ │ │ │ │ + ldr r0, [sp, #24] │ │ │ │ │ + mov r1, r7 │ │ │ │ │ str r3, [sp] │ │ │ │ │ - add r3, sp, #48 @ 0x30 │ │ │ │ │ - bl 2d0 │ │ │ │ │ - mov r0, r5 │ │ │ │ │ + add r3, sp, #32 │ │ │ │ │ + bl 2f4 │ │ │ │ │ + mov r0, r7 │ │ │ │ │ bl 0 │ │ │ │ │ R_ARM_CALL fftwf_mpi_dtensor_destroy │ │ │ │ │ - ldr r3, [sp, #52] @ 0x34 │ │ │ │ │ - ldr r0, [sp, #48] @ 0x30 │ │ │ │ │ - mov r1, r7 │ │ │ │ │ - mla r0, r3, r0, r7 │ │ │ │ │ - mov r5, #4 │ │ │ │ │ + ldr r0, [sp, #32] │ │ │ │ │ + mov r1, r6 │ │ │ │ │ + ldr r3, [sp, #36] @ 0x24 │ │ │ │ │ + mla r0, r3, r0, r6 │ │ │ │ │ sub r0, r0, #1 │ │ │ │ │ bl 0 <__aeabi_idiv> │ │ │ │ │ R_ARM_CALL __aeabi_idiv │ │ │ │ │ mov r1, r0 │ │ │ │ │ - mov r0, r8 │ │ │ │ │ + mov r0, r4 │ │ │ │ │ bl 0 │ │ │ │ │ R_ARM_CALL fftwf_imax │ │ │ │ │ - mov sl, r0 │ │ │ │ │ - b 174c │ │ │ │ │ - ldr r2, [sp, #136] @ 0x88 │ │ │ │ │ + mov r7, r0 │ │ │ │ │ + mov r4, #4 │ │ │ │ │ + ldr r0, [sp, #24] │ │ │ │ │ + mov r2, #0 │ │ │ │ │ + mov r1, r5 │ │ │ │ │ + ldr r3, [sp, #108] @ 0x6c │ │ │ │ │ + str r3, [sp] │ │ │ │ │ + ldr r3, [sp, #104] @ 0x68 │ │ │ │ │ + bl 2f4 │ │ │ │ │ + ldr r0, [sp, #24] │ │ │ │ │ + mov r1, r5 │ │ │ │ │ + mov r2, #1 │ │ │ │ │ + ldr r3, [sp, #116] @ 0x74 │ │ │ │ │ + str r3, [sp] │ │ │ │ │ + ldr r3, [sp, #112] @ 0x70 │ │ │ │ │ + bl 2f4 │ │ │ │ │ + ldr r3, [sp, #104] @ 0x68 │ │ │ │ │ + mov r0, #1 │ │ │ │ │ + add r1, r3, r4 │ │ │ │ │ + ldr r2, [r3], #4 │ │ │ │ │ + cmp r1, r3 │ │ │ │ │ + mul r0, r2, r0 │ │ │ │ │ + bne 1870 │ │ │ │ │ + ldr r3, [sp, #112] @ 0x70 │ │ │ │ │ + mov r1, #1 │ │ │ │ │ + add r4, r3, r4 │ │ │ │ │ + ldr r2, [r3], #4 │ │ │ │ │ + cmp r4, r3 │ │ │ │ │ + mul r1, r2, r1 │ │ │ │ │ + bne 188c │ │ │ │ │ + bl 0 │ │ │ │ │ + R_ARM_CALL fftwf_imax │ │ │ │ │ + mov r1, r0 │ │ │ │ │ + mov r0, r7 │ │ │ │ │ + bl 0 │ │ │ │ │ + R_ARM_CALL fftwf_imax │ │ │ │ │ + mov r4, r0 │ │ │ │ │ + mov r0, r5 │ │ │ │ │ + bl 0 │ │ │ │ │ + R_ARM_CALL fftwf_mpi_dtensor_destroy │ │ │ │ │ + mul r0, r4, r6 │ │ │ │ │ + add sp, sp, #68 @ 0x44 │ │ │ │ │ + ldrd r4, [sp] │ │ │ │ │ + ldrd r6, [sp, #8] │ │ │ │ │ + ldrd r8, [sp, #16] │ │ │ │ │ + ldrd sl, [sp, #24] │ │ │ │ │ + add sp, sp, #32 │ │ │ │ │ + pop {pc} @ (ldr pc, [sp], #4) │ │ │ │ │ + ldr r2, [sp, #120] @ 0x78 │ │ │ │ │ add r2, r2, #1 │ │ │ │ │ bics r2, r2, #2 │ │ │ │ │ - bne 1838 │ │ │ │ │ - add r2, sp, #56 @ 0x38 │ │ │ │ │ + bne 19d0 │ │ │ │ │ + add r2, sp, #40 @ 0x28 │ │ │ │ │ str r2, [sp, #12] │ │ │ │ │ - add r2, sp, #48 @ 0x30 │ │ │ │ │ + add r2, sp, #32 │ │ │ │ │ str r2, [sp, #8] │ │ │ │ │ - ldr r2, [sp, #136] @ 0x88 │ │ │ │ │ + ldr r2, [sp, #120] @ 0x78 │ │ │ │ │ str r2, [sp, #4] │ │ │ │ │ - ldr r2, [sp, #140] @ 0x8c │ │ │ │ │ + ldr r2, [sp, #124] @ 0x7c │ │ │ │ │ str r2, [sp] │ │ │ │ │ - ldmib r6, {r0, r1, r2} │ │ │ │ │ + ldmib r5, {r0, r1, r2} │ │ │ │ │ bl 0 │ │ │ │ │ R_ARM_CALL fftwf_mpi_choose_radix │ │ │ │ │ - subs r4, r0, #0 │ │ │ │ │ - beq 1828 │ │ │ │ │ - mov r1, r4 │ │ │ │ │ - ldr r0, [r6, #4] │ │ │ │ │ + subs r8, r0, #0 │ │ │ │ │ + moveq r7, r4 │ │ │ │ │ + lsleq r4, r7, #2 │ │ │ │ │ + beq 182c │ │ │ │ │ + ldr r0, [r5, #4] │ │ │ │ │ + mov r1, r8 │ │ │ │ │ bl 0 <__aeabi_idiv> │ │ │ │ │ R_ARM_CALL __aeabi_idiv │ │ │ │ │ - ldr r3, [sp, #48] @ 0x30 │ │ │ │ │ + ldr r3, [sp, #32] │ │ │ │ │ + mov r9, r0 │ │ │ │ │ mul r1, r3, r0 │ │ │ │ │ - ldr r3, [sp, #140] @ 0x8c │ │ │ │ │ - mov r5, r0 │ │ │ │ │ + ldr r3, [sp, #124] @ 0x7c │ │ │ │ │ tst r3, #134217728 @ 0x8000000 │ │ │ │ │ - beq 19ac │ │ │ │ │ - mov sl, r8 │ │ │ │ │ - str r1, [r6, #8] │ │ │ │ │ - ldr r3, [sp, #60] @ 0x3c │ │ │ │ │ - mul r1, r3, r4 │ │ │ │ │ - ldr r3, [sp, #140] @ 0x8c │ │ │ │ │ + beq 1b48 │ │ │ │ │ + mov r7, r4 │ │ │ │ │ + str r1, [r5, #8] │ │ │ │ │ + ldr r3, [sp, #44] @ 0x2c │ │ │ │ │ + mul r1, r3, r8 │ │ │ │ │ + ldr r3, [sp, #124] @ 0x7c │ │ │ │ │ tst r3, #268435456 @ 0x10000000 │ │ │ │ │ - beq 19c8 │ │ │ │ │ - sub r4, r9, #4 │ │ │ │ │ - lsl r5, r8, #2 │ │ │ │ │ - str r1, [r6, #12] │ │ │ │ │ - b 174c │ │ │ │ │ + beq 1b64 │ │ │ │ │ + lsl r4, r4, #2 │ │ │ │ │ + str r1, [r5, #12] │ │ │ │ │ + b 182c │ │ │ │ │ mov r1, #0 │ │ │ │ │ bl 0 │ │ │ │ │ R_ARM_CALL fftwf_mpi_is_block1d │ │ │ │ │ cmp r0, #0 │ │ │ │ │ - bne 1858 │ │ │ │ │ - mov sl, #1 │ │ │ │ │ - sub r4, r9, #4 │ │ │ │ │ - lsl r5, r8, #2 │ │ │ │ │ - ldr r3, [sp, #124] @ 0x7c │ │ │ │ │ - ldr r0, [sp, #40] @ 0x28 │ │ │ │ │ - mov r2, #0 │ │ │ │ │ - mov r1, r6 │ │ │ │ │ - str r3, [sp] │ │ │ │ │ - mov r3, r9 │ │ │ │ │ - bl 2d0 │ │ │ │ │ - ldr r3, [sp, #132] @ 0x84 │ │ │ │ │ - ldr r0, [sp, #40] @ 0x28 │ │ │ │ │ - mov r2, #1 │ │ │ │ │ - str r3, [sp] │ │ │ │ │ - mov r1, r6 │ │ │ │ │ - mov r3, fp │ │ │ │ │ - bl 2d0 │ │ │ │ │ - add r2, r4, r5 │ │ │ │ │ - mov r0, #1 │ │ │ │ │ - ldr r3, [r4, #4]! │ │ │ │ │ - cmp r2, r4 │ │ │ │ │ - mul r0, r3, r0 │ │ │ │ │ - bne 178c │ │ │ │ │ - sub r3, fp, #4 │ │ │ │ │ - add r5, r3, r5 │ │ │ │ │ - mov r1, #1 │ │ │ │ │ - ldr r2, [r3, #4]! │ │ │ │ │ - cmp r5, r3 │ │ │ │ │ - mul r1, r2, r1 │ │ │ │ │ - bne 17a8 │ │ │ │ │ - bl 0 │ │ │ │ │ - R_ARM_CALL fftwf_imax │ │ │ │ │ - mov r1, r0 │ │ │ │ │ - mov r0, sl │ │ │ │ │ - bl 0 │ │ │ │ │ - R_ARM_CALL fftwf_imax │ │ │ │ │ - mov r4, r0 │ │ │ │ │ - mov r0, r6 │ │ │ │ │ - bl 0 │ │ │ │ │ - R_ARM_CALL fftwf_mpi_dtensor_destroy │ │ │ │ │ - mul r0, r4, r7 │ │ │ │ │ - add sp, sp, #84 @ 0x54 │ │ │ │ │ - pop {r4, r5, r6, r7, r8, r9, sl, fp, pc} │ │ │ │ │ - ldr r3, [sp, #124] @ 0x7c │ │ │ │ │ + bne 19f0 │ │ │ │ │ + lsl r4, r4, #2 │ │ │ │ │ + mov r7, #1 │ │ │ │ │ + b 182c │ │ │ │ │ + ldr r3, [sp, #108] @ 0x6c │ │ │ │ │ mov r1, r0 │ │ │ │ │ mov r2, #0 │ │ │ │ │ - ldr r0, [sp, #40] @ 0x28 │ │ │ │ │ - str r3, [sp] │ │ │ │ │ - mov r3, r9 │ │ │ │ │ - bl 2d0 │ │ │ │ │ - ldr r3, [sp, #132] @ 0x84 │ │ │ │ │ - ldr r0, [sp, #40] @ 0x28 │ │ │ │ │ - mov r1, r6 │ │ │ │ │ - mov sl, #1 │ │ │ │ │ + mov r7, #1 │ │ │ │ │ + ldr r0, [sp, #24] │ │ │ │ │ str r3, [sp] │ │ │ │ │ + ldr r3, [sp, #104] @ 0x68 │ │ │ │ │ + bl 2f4 │ │ │ │ │ + ldr r0, [sp, #24] │ │ │ │ │ + mov r1, r5 │ │ │ │ │ mov r2, #1 │ │ │ │ │ - mov r3, fp │ │ │ │ │ - bl 2d0 │ │ │ │ │ - mov r0, sl │ │ │ │ │ - mov r1, sl │ │ │ │ │ - b 17b8 │ │ │ │ │ - mov sl, r8 │ │ │ │ │ - sub r4, r9, #4 │ │ │ │ │ - lsl r5, r8, #2 │ │ │ │ │ - b 174c │ │ │ │ │ - ldr r2, [pc, #680] @ 1ae8 │ │ │ │ │ - ldr r0, [pc, #680] @ 1aec │ │ │ │ │ - ldr r1, [pc, #680] @ 1af0 │ │ │ │ │ + ldr r3, [sp, #116] @ 0x74 │ │ │ │ │ + str r3, [sp] │ │ │ │ │ + ldr r3, [sp, #112] @ 0x70 │ │ │ │ │ + bl 2f4 │ │ │ │ │ + mov r0, r7 │ │ │ │ │ + mov r1, r7 │ │ │ │ │ + b 189c │ │ │ │ │ + ldr r2, [pc, #652] @ 1c64 │ │ │ │ │ + ldr r0, [pc, #652] @ 1c68 │ │ │ │ │ + ldr r1, [pc, #652] @ 1c6c │ │ │ │ │ add r2, pc, r2 │ │ │ │ │ add r0, pc, r0 │ │ │ │ │ bl 0 │ │ │ │ │ R_ARM_CALL fftwf_assertion_failed │ │ │ │ │ - ldr r3, [sp, #44] @ 0x2c │ │ │ │ │ - b 16b0 │ │ │ │ │ + ldr r3, [sp, #28] │ │ │ │ │ + b 18e8 │ │ │ │ │ mov r1, #1 │ │ │ │ │ - mov r0, r6 │ │ │ │ │ + mov r0, r5 │ │ │ │ │ bl 0 │ │ │ │ │ R_ARM_CALL fftwf_mpi_is_block1d │ │ │ │ │ cmp r0, #0 │ │ │ │ │ - beq 1740 │ │ │ │ │ - ldmib r6, {r0, r1, r2} │ │ │ │ │ - add r3, sp, #56 @ 0x38 │ │ │ │ │ - add sl, r6, #16 │ │ │ │ │ - stm r3, {r0, r1, r2} │ │ │ │ │ - ldm sl, {r0, r1, r2} │ │ │ │ │ - add r3, sp, #80 @ 0x50 │ │ │ │ │ - mov r4, r6 │ │ │ │ │ - mov r5, #0 │ │ │ │ │ - stmdb r3, {r0, r1, r2} │ │ │ │ │ - ldmib r4, {r0, r1} │ │ │ │ │ + beq 197c │ │ │ │ │ + ldrd r2, [r5, #4] │ │ │ │ │ + add r7, r5, #16 │ │ │ │ │ + mov sl, r5 │ │ │ │ │ + mov r8, #0 │ │ │ │ │ + strd r2, [sp, #40] @ 0x28 │ │ │ │ │ + ldr r3, [r5, #12] │ │ │ │ │ + str r3, [sp, #48] @ 0x30 │ │ │ │ │ + ldrd r2, [r5, #16] │ │ │ │ │ + strd r2, [sp, #52] @ 0x34 │ │ │ │ │ + ldr r3, [r7, #8] │ │ │ │ │ + str r3, [sp, #60] @ 0x3c │ │ │ │ │ + ldmib sl, {r0, r1} │ │ │ │ │ bl 0 │ │ │ │ │ R_ARM_CALL fftwf_mpi_num_blocks │ │ │ │ │ cmp r0, #1 │ │ │ │ │ - beq 19ec │ │ │ │ │ - add r3, r5, #1 │ │ │ │ │ + beq 1b84 │ │ │ │ │ + add r3, r8, #1 │ │ │ │ │ + add sl, sl, #12 │ │ │ │ │ cmp r3, #2 │ │ │ │ │ - add r4, r4, #12 │ │ │ │ │ - mov r5, #1 │ │ │ │ │ - bne 1890 │ │ │ │ │ - str r5, [sp, #20] │ │ │ │ │ - sub r4, r9, #4 │ │ │ │ │ - lsl r5, r8, #2 │ │ │ │ │ - ldr r1, [r6] │ │ │ │ │ + mov r8, #1 │ │ │ │ │ + bne 1a30 │ │ │ │ │ + lsl r4, r4, #2 │ │ │ │ │ + mov r9, r8 │ │ │ │ │ + ldr r1, [r5] │ │ │ │ │ cmp r1, #1 │ │ │ │ │ - ble 1ae0 │ │ │ │ │ + ble 1c5c │ │ │ │ │ add r1, r1, r1, lsl #1 │ │ │ │ │ - sub r1, r1, #3 │ │ │ │ │ - mov r8, r7 │ │ │ │ │ + mov r8, r6 │ │ │ │ │ mov r3, #0 │ │ │ │ │ - ldr r2, [sl, r3, lsl #2] │ │ │ │ │ + sub r1, r1, #3 │ │ │ │ │ + ldr r2, [r7, r3, lsl #2] │ │ │ │ │ add r3, r3, #3 │ │ │ │ │ cmp r1, r3 │ │ │ │ │ mul r8, r2, r8 │ │ │ │ │ - bne 18dc │ │ │ │ │ - ldr r1, [sp, #44] @ 0x2c │ │ │ │ │ + bne 1a78 │ │ │ │ │ + ldr r7, [r5, #4] │ │ │ │ │ mov r0, r8 │ │ │ │ │ - ldr sl, [r6, #4] │ │ │ │ │ + ldr r1, [sp, #28] │ │ │ │ │ bl 0 │ │ │ │ │ R_ARM_CALL fftwf_mpi_default_block │ │ │ │ │ - ldr r2, [sp, #40] @ 0x28 │ │ │ │ │ + ldr r2, [sp, #24] │ │ │ │ │ mov r1, r0 │ │ │ │ │ mov r0, r8 │ │ │ │ │ bl 0 │ │ │ │ │ R_ARM_CALL fftwf_mpi_block │ │ │ │ │ - mov r1, r7 │ │ │ │ │ - mla r0, sl, r0, r7 │ │ │ │ │ + mla r0, r7, r0, r6 │ │ │ │ │ + mov r1, r6 │ │ │ │ │ sub r0, r0, #1 │ │ │ │ │ bl 0 <__aeabi_idiv> │ │ │ │ │ R_ARM_CALL __aeabi_idiv │ │ │ │ │ mov r1, r0 │ │ │ │ │ - ldr r0, [sp, #20] │ │ │ │ │ + mov r0, r9 │ │ │ │ │ bl 0 │ │ │ │ │ R_ARM_CALL fftwf_imax │ │ │ │ │ - ldr r1, [r6] │ │ │ │ │ - ldr r8, [r6, #4] │ │ │ │ │ + ldr r1, [r5] │ │ │ │ │ + mov r8, r0 │ │ │ │ │ + ldr r7, [r5, #4] │ │ │ │ │ cmp r1, #2 │ │ │ │ │ - mul r8, r7, r8 │ │ │ │ │ - str r0, [sp, #20] │ │ │ │ │ - ble 1968 │ │ │ │ │ + mul r7, r6, r7 │ │ │ │ │ + ble 1b04 │ │ │ │ │ add r1, r1, r1, lsl #1 │ │ │ │ │ - sub r1, r1, #6 │ │ │ │ │ mov r3, #0 │ │ │ │ │ - add r0, r6, #28 │ │ │ │ │ + add r0, r5, #28 │ │ │ │ │ + sub r1, r1, #6 │ │ │ │ │ ldr r2, [r0, r3, lsl #2] │ │ │ │ │ add r3, r3, #3 │ │ │ │ │ cmp r1, r3 │ │ │ │ │ - mul r8, r2, r8 │ │ │ │ │ - bne 1954 │ │ │ │ │ - ldr r1, [sp, #44] @ 0x2c │ │ │ │ │ - mov r0, r8 │ │ │ │ │ - ldr sl, [r6, #16] │ │ │ │ │ + mul r7, r2, r7 │ │ │ │ │ + bne 1af0 │ │ │ │ │ + ldr r9, [r5, #16] │ │ │ │ │ + mov r0, r7 │ │ │ │ │ + ldr r1, [sp, #28] │ │ │ │ │ bl 0 │ │ │ │ │ R_ARM_CALL fftwf_mpi_default_block │ │ │ │ │ - ldr r2, [sp, #40] @ 0x28 │ │ │ │ │ + ldr r2, [sp, #24] │ │ │ │ │ mov r1, r0 │ │ │ │ │ - mov r0, r8 │ │ │ │ │ + mov r0, r7 │ │ │ │ │ bl 0 │ │ │ │ │ R_ARM_CALL fftwf_mpi_block │ │ │ │ │ - mov r1, r7 │ │ │ │ │ - mla r0, sl, r0, r7 │ │ │ │ │ + mla r0, r9, r0, r6 │ │ │ │ │ + mov r1, r6 │ │ │ │ │ sub r0, r0, #1 │ │ │ │ │ bl 0 <__aeabi_idiv> │ │ │ │ │ R_ARM_CALL __aeabi_idiv │ │ │ │ │ mov r1, r0 │ │ │ │ │ - ldr r0, [sp, #20] │ │ │ │ │ + mov r0, r8 │ │ │ │ │ bl 0 │ │ │ │ │ R_ARM_CALL fftwf_imax │ │ │ │ │ - mov sl, r0 │ │ │ │ │ - b 174c │ │ │ │ │ - ldr r3, [sp, #56] @ 0x38 │ │ │ │ │ + mov r7, r0 │ │ │ │ │ + b 182c │ │ │ │ │ + ldr r3, [sp, #40] @ 0x28 │ │ │ │ │ mov r0, #1 │ │ │ │ │ - mul r3, r4, r3 │ │ │ │ │ - str r3, [r6, #8] │ │ │ │ │ + mul r3, r8, r3 │ │ │ │ │ + str r3, [r5, #8] │ │ │ │ │ bl 0 │ │ │ │ │ R_ARM_CALL fftwf_imax │ │ │ │ │ - mov sl, r0 │ │ │ │ │ - b 170c │ │ │ │ │ - mov r0, sl │ │ │ │ │ + mov r7, r0 │ │ │ │ │ + b 194c │ │ │ │ │ + mov r0, r7 │ │ │ │ │ + lsl r4, r4, #2 │ │ │ │ │ bl 0 │ │ │ │ │ R_ARM_CALL fftwf_imax │ │ │ │ │ - ldr r3, [sp, #52] @ 0x34 │ │ │ │ │ - sub r4, r9, #4 │ │ │ │ │ - mul r3, r5, r3 │ │ │ │ │ - lsl r5, r8, #2 │ │ │ │ │ - str r3, [r6, #12] │ │ │ │ │ - mov sl, r0 │ │ │ │ │ - b 174c │ │ │ │ │ - ldr r1, [r4, #12] │ │ │ │ │ - ldr r0, [r4, #4] │ │ │ │ │ + ldr r3, [sp, #36] @ 0x24 │ │ │ │ │ + mov r7, r0 │ │ │ │ │ + mul r3, r9, r3 │ │ │ │ │ + str r3, [r5, #12] │ │ │ │ │ + b 182c │ │ │ │ │ + ldr r0, [sl, #4] │ │ │ │ │ + ldr r1, [sl, #12] │ │ │ │ │ bl 0 │ │ │ │ │ R_ARM_CALL fftwf_mpi_num_blocks │ │ │ │ │ cmp r0, #1 │ │ │ │ │ - bne 18a0 │ │ │ │ │ - rsb r3, r5, #0 │ │ │ │ │ + mov r9, r0 │ │ │ │ │ + bne 1a40 │ │ │ │ │ + rsb r3, r8, #0 │ │ │ │ │ + ldr r1, [sp, #28] │ │ │ │ │ + sub sl, r8, #1 │ │ │ │ │ and r3, r3, #12 │ │ │ │ │ - mov r4, r5 │ │ │ │ │ - str r5, [sp, #28] │ │ │ │ │ - add r5, r6, r3 │ │ │ │ │ - ldr r1, [sp, #44] @ 0x2c │ │ │ │ │ - str r0, [sp, #20] │ │ │ │ │ - ldr r0, [r5, #4] │ │ │ │ │ - str r5, [sp, #36] @ 0x24 │ │ │ │ │ + and sl, sl, #12 │ │ │ │ │ + lsl r4, r4, #2 │ │ │ │ │ + add fp, r5, r3 │ │ │ │ │ + add sl, r5, sl │ │ │ │ │ + ldr r0, [fp, #4] │ │ │ │ │ bl 0 │ │ │ │ │ R_ARM_CALL fftwf_mpi_default_block │ │ │ │ │ - eor r3, r4, #1 │ │ │ │ │ - str r3, [sp, #24] │ │ │ │ │ - sub r3, r4, #1 │ │ │ │ │ - and r3, r3, #12 │ │ │ │ │ - add r1, r6, r3 │ │ │ │ │ + eor r3, r8, #1 │ │ │ │ │ + str r0, [fp, #8] │ │ │ │ │ mov r2, #0 │ │ │ │ │ - str r1, [sp, #32] │ │ │ │ │ - sub r4, r9, #4 │ │ │ │ │ - str r0, [r5, #8] │ │ │ │ │ - ldr r3, [r1, #4] │ │ │ │ │ - str r3, [r1, #8] │ │ │ │ │ - ldr r3, [sp, #124] @ 0x7c │ │ │ │ │ + ldr r0, [sp, #24] │ │ │ │ │ + mov r1, r5 │ │ │ │ │ + str r3, [sp, #20] │ │ │ │ │ + ldr r3, [sl, #4] │ │ │ │ │ + str r3, [sl, #8] │ │ │ │ │ + ldr r3, [sp, #108] @ 0x6c │ │ │ │ │ str r3, [sp] │ │ │ │ │ - ldr r0, [sp, #40] @ 0x28 │ │ │ │ │ - mov r3, r9 │ │ │ │ │ - mov r1, r6 │ │ │ │ │ - bl 2d0 │ │ │ │ │ - ldr r2, [sp, #20] │ │ │ │ │ - lsl r5, r8, #2 │ │ │ │ │ - mov r3, r4 │ │ │ │ │ - add r8, r4, r8, lsl #2 │ │ │ │ │ - ldr r1, [r3, #4]! │ │ │ │ │ - cmp r3, r8 │ │ │ │ │ - mul r2, r1, r2 │ │ │ │ │ - bne 1a7c │ │ │ │ │ - mov r1, r2 │ │ │ │ │ + ldr r3, [sp, #104] @ 0x68 │ │ │ │ │ + bl 2f4 │ │ │ │ │ + ldr r3, [sp, #104] @ 0x68 │ │ │ │ │ + add r2, r3, r4 │ │ │ │ │ + ldr r1, [r3], #4 │ │ │ │ │ + cmp r2, r3 │ │ │ │ │ + mul r9, r1, r9 │ │ │ │ │ + bne 1bfc │ │ │ │ │ + mov r1, r9 │ │ │ │ │ + add r8, r8, r8, lsl #1 │ │ │ │ │ mov r0, #1 │ │ │ │ │ bl 0 │ │ │ │ │ R_ARM_CALL fftwf_imax │ │ │ │ │ - ldr r3, [sp, #28] │ │ │ │ │ - add r2, sp, #80 @ 0x50 │ │ │ │ │ - add r3, r3, r3, lsl #1 │ │ │ │ │ - add r3, r2, r3, lsl #2 │ │ │ │ │ - sub r3, r3, #24 │ │ │ │ │ - str r0, [sp, #20] │ │ │ │ │ - ldm r3, {r0, r1, r2} │ │ │ │ │ - ldr r3, [sp, #36] @ 0x24 │ │ │ │ │ - stmib r3, {r0, r1, r2} │ │ │ │ │ - ldr r3, [sp, #24] │ │ │ │ │ - add r2, sp, #80 @ 0x50 │ │ │ │ │ + add r3, sp, #64 @ 0x40 │ │ │ │ │ + mov r9, r0 │ │ │ │ │ + add r3, r3, r8, lsl #2 │ │ │ │ │ + add r2, sp, #64 @ 0x40 │ │ │ │ │ + ldrd r0, [r3, #-24] @ 0xffffffe8 │ │ │ │ │ + strd r0, [fp, #4] │ │ │ │ │ + ldr r3, [r3, #-16] │ │ │ │ │ + str r3, [fp, #12] │ │ │ │ │ + ldr r3, [sp, #20] │ │ │ │ │ add r3, r3, r3, lsl #1 │ │ │ │ │ add r3, r2, r3, lsl #2 │ │ │ │ │ - sub r3, r3, #24 │ │ │ │ │ - ldm r3, {r0, r1, r2} │ │ │ │ │ - ldr r3, [sp, #32] │ │ │ │ │ - stmib r3, {r0, r1, r2} │ │ │ │ │ - b 18c0 │ │ │ │ │ - mov r8, r7 │ │ │ │ │ - b 18f0 │ │ │ │ │ - .word 0x0000029c │ │ │ │ │ + ldrd r0, [r3, #-24] @ 0xffffffe8 │ │ │ │ │ + strd r0, [sl, #4] │ │ │ │ │ + ldr r3, [r3, #-16] │ │ │ │ │ + str r3, [sl, #12] │ │ │ │ │ + b 1a5c │ │ │ │ │ + mov r8, r6 │ │ │ │ │ + b 1a8c │ │ │ │ │ + .word 0x00000280 │ │ │ │ │ R_ARM_REL32 .LC0 │ │ │ │ │ - .word 0x0000029c │ │ │ │ │ + .word 0x00000280 │ │ │ │ │ R_ARM_REL32 .LC1 │ │ │ │ │ .word 0x00000143 │ │ │ │ │ │ │ │ │ │ -00001af4 : │ │ │ │ │ +00001c70 : │ │ │ │ │ fftwf_mpi_local_size_many_transposed.part.0(): │ │ │ │ │ - push {r4, r5, r6, r7, r8, r9, sl, fp, lr} │ │ │ │ │ + strd r4, [sp, #-36]! @ 0xffffffdc │ │ │ │ │ + mov r4, r0 │ │ │ │ │ + strd r6, [sp, #8] │ │ │ │ │ add r7, r0, r0, lsl #1 │ │ │ │ │ + strd r8, [sp, #16] │ │ │ │ │ + mov r8, r1 │ │ │ │ │ + mov r9, r3 │ │ │ │ │ lsl r7, r7, #2 │ │ │ │ │ - mov r4, r0 │ │ │ │ │ + strd sl, [sp, #24] │ │ │ │ │ + mov sl, r2 │ │ │ │ │ + str lr, [sp, #32] │ │ │ │ │ sub sp, sp, #28 │ │ │ │ │ mov r0, r7 │ │ │ │ │ - mov r9, r1 │ │ │ │ │ - mov sl, r2 │ │ │ │ │ - mov r8, r3 │ │ │ │ │ bl 0 │ │ │ │ │ R_ARM_CALL fftwf_malloc_plain │ │ │ │ │ cmp r4, #0 │ │ │ │ │ mov r6, r0 │ │ │ │ │ lsl r0, r4, #4 │ │ │ │ │ - ble 1c10 │ │ │ │ │ - sub ip, r9, #4 │ │ │ │ │ - mov r3, r6 │ │ │ │ │ + ble 1db4 │ │ │ │ │ lsl fp, r4, #2 │ │ │ │ │ - add lr, ip, r4, lsl #2 │ │ │ │ │ - ldr r2, [ip, #4]! │ │ │ │ │ - str r2, [r3, #8] │ │ │ │ │ + mov ip, r8 │ │ │ │ │ + mov r3, r6 │ │ │ │ │ + add lr, r8, fp │ │ │ │ │ + ldr r2, [ip], #4 │ │ │ │ │ cmp lr, ip │ │ │ │ │ str r2, [r3, #4] │ │ │ │ │ + str r2, [r3, #8] │ │ │ │ │ str r2, [r3], #12 │ │ │ │ │ - bne 1b3c │ │ │ │ │ + bne 1cc8 │ │ │ │ │ bl 0 │ │ │ │ │ R_ARM_CALL fftwf_malloc_plain │ │ │ │ │ cmp r4, #1 │ │ │ │ │ - str r8, [r6, #4] │ │ │ │ │ mov r5, r0 │ │ │ │ │ - beq 1c20 │ │ │ │ │ - ldr r3, [r9, #4] │ │ │ │ │ + str r9, [r6, #4] │ │ │ │ │ + beq 1dc4 │ │ │ │ │ + ldr r3, [r8, #4] │ │ │ │ │ + add r7, r5, r7 │ │ │ │ │ ldr r2, [sp, #64] @ 0x40 │ │ │ │ │ - add r0, r0, fp │ │ │ │ │ cmp r3, r2 │ │ │ │ │ movgt r3, r2 │ │ │ │ │ + strle r9, [r6, #8] │ │ │ │ │ strgt r3, [r6, #20] │ │ │ │ │ - add r3, r5, fp, lsl #1 │ │ │ │ │ - mov r2, #0 │ │ │ │ │ - add r1, r3, fp │ │ │ │ │ - strle r8, [r6, #8] │ │ │ │ │ - stmib sp, {r0, r3} │ │ │ │ │ - str r2, [sp, #20] │ │ │ │ │ + add r3, r0, fp │ │ │ │ │ + mov r0, #0 │ │ │ │ │ + add r2, r3, fp │ │ │ │ │ + str r5, [sp] │ │ │ │ │ + add r1, r2, fp │ │ │ │ │ + str r3, [sp, #4] │ │ │ │ │ ldr r3, [sp, #68] @ 0x44 │ │ │ │ │ - mov r0, r4 │ │ │ │ │ - str r2, [sp, #16] │ │ │ │ │ - str r1, [sp, #12] │ │ │ │ │ + str r2, [sp, #8] │ │ │ │ │ mov r2, sl │ │ │ │ │ + str r1, [sp, #12] │ │ │ │ │ mov r1, r6 │ │ │ │ │ - str r5, [sp] │ │ │ │ │ - bl 15a0 │ │ │ │ │ - ldr r2, [sp, #72] @ 0x48 │ │ │ │ │ + str r0, [sp, #16] │ │ │ │ │ + str r0, [sp, #20] │ │ │ │ │ + mov r0, r4 │ │ │ │ │ + bl 1724 │ │ │ │ │ ldr r3, [r5] │ │ │ │ │ + mov r8, r0 │ │ │ │ │ + ldr r2, [sp, #72] @ 0x48 │ │ │ │ │ str r3, [r2] │ │ │ │ │ - ldr r2, [sp, #76] @ 0x4c │ │ │ │ │ ldr r3, [r5, r4, lsl #2] │ │ │ │ │ - str r3, [r2] │ │ │ │ │ add r4, r5, r4, lsl #3 │ │ │ │ │ - ldr r2, [sp, #80] @ 0x50 │ │ │ │ │ + ldr r2, [sp, #76] @ 0x4c │ │ │ │ │ + str r3, [r2] │ │ │ │ │ ldr r3, [r4, #4] │ │ │ │ │ - add r7, r5, r7 │ │ │ │ │ + ldr r2, [sp, #80] @ 0x50 │ │ │ │ │ str r3, [r2] │ │ │ │ │ ldr r2, [r7, #4] │ │ │ │ │ - mov r8, r0 │ │ │ │ │ - ldr r3, [sp, #84] @ 0x54 │ │ │ │ │ mov r0, r5 │ │ │ │ │ + ldr r3, [sp, #84] @ 0x54 │ │ │ │ │ str r2, [r3] │ │ │ │ │ bl 0 │ │ │ │ │ R_ARM_CALL fftwf_ifree │ │ │ │ │ mov r0, r6 │ │ │ │ │ bl 0 │ │ │ │ │ R_ARM_CALL fftwf_ifree │ │ │ │ │ mov r0, r8 │ │ │ │ │ add sp, sp, #28 │ │ │ │ │ - pop {r4, r5, r6, r7, r8, r9, sl, fp, pc} │ │ │ │ │ + ldrd r4, [sp] │ │ │ │ │ + ldrd r6, [sp, #8] │ │ │ │ │ + ldrd r8, [sp, #16] │ │ │ │ │ + ldrd sl, [sp, #24] │ │ │ │ │ + add sp, sp, #32 │ │ │ │ │ + pop {pc} @ (ldr pc, [sp], #4) │ │ │ │ │ bl 0 │ │ │ │ │ R_ARM_CALL fftwf_malloc_plain │ │ │ │ │ lsl fp, r4, #2 │ │ │ │ │ - str r8, [r6, #4] │ │ │ │ │ mov r5, r0 │ │ │ │ │ - add r3, r5, fp, lsl #1 │ │ │ │ │ - mov r2, #0 │ │ │ │ │ - add r1, r3, fp │ │ │ │ │ - add r0, r5, fp │ │ │ │ │ - str r8, [r6, #8] │ │ │ │ │ - stmib sp, {r0, r3} │ │ │ │ │ - str r2, [sp, #20] │ │ │ │ │ + str r9, [r6, #4] │ │ │ │ │ + add r3, r5, fp │ │ │ │ │ + mov r0, #0 │ │ │ │ │ + str r9, [r6, #8] │ │ │ │ │ + add r2, r3, fp │ │ │ │ │ + str r5, [sp] │ │ │ │ │ + add r1, r2, fp │ │ │ │ │ + str r3, [sp, #4] │ │ │ │ │ ldr r3, [sp, #68] @ 0x44 │ │ │ │ │ - str r2, [sp, #16] │ │ │ │ │ - str r1, [sp, #12] │ │ │ │ │ + str r2, [sp, #8] │ │ │ │ │ mov r2, sl │ │ │ │ │ + str r1, [sp, #12] │ │ │ │ │ mov r1, r6 │ │ │ │ │ + str r0, [sp, #16] │ │ │ │ │ + str r0, [sp, #20] │ │ │ │ │ mov r0, r4 │ │ │ │ │ - str r5, [sp] │ │ │ │ │ - bl 15a0 │ │ │ │ │ - ldr r2, [sp, #72] @ 0x48 │ │ │ │ │ + bl 1724 │ │ │ │ │ ldr r3, [r5] │ │ │ │ │ + mov r8, r0 │ │ │ │ │ + ldr r2, [sp, #72] @ 0x48 │ │ │ │ │ str r3, [r2] │ │ │ │ │ - ldr r2, [sp, #76] @ 0x4c │ │ │ │ │ ldr r3, [r5, r4, lsl #2] │ │ │ │ │ + ldr r2, [sp, #76] @ 0x4c │ │ │ │ │ str r3, [r2] │ │ │ │ │ ldr r3, [sp, #72] @ 0x48 │ │ │ │ │ ldr r2, [sp, #80] @ 0x50 │ │ │ │ │ ldr r3, [r3] │ │ │ │ │ str r3, [r2] │ │ │ │ │ ldr r3, [sp, #76] @ 0x4c │ │ │ │ │ ldr r2, [r3] │ │ │ │ │ - mov r8, r0 │ │ │ │ │ - b 1bec │ │ │ │ │ + b 1d7c │ │ │ │ │ │ │ │ │ │ -00001c94 : │ │ │ │ │ +00001e3c : │ │ │ │ │ plan_guru_rdft2.constprop.0(): │ │ │ │ │ - push {r4, r5, r6, r7, r8, lr} │ │ │ │ │ - ldr r6, [pc, #428] @ 1e4c │ │ │ │ │ + strd r4, [sp, #-24]! @ 0xffffffe8 │ │ │ │ │ mov r5, r3 │ │ │ │ │ + mov r4, r0 │ │ │ │ │ + strd r6, [sp, #8] │ │ │ │ │ + mov r7, r2 │ │ │ │ │ + ldr r6, [pc, #440] @ 2010 │ │ │ │ │ + str r8, [sp, #16] │ │ │ │ │ + mov r8, r1 │ │ │ │ │ + str lr, [sp, #20] │ │ │ │ │ + sub sp, sp, #24 │ │ │ │ │ add r6, pc, r6 │ │ │ │ │ ldr r3, [r6] │ │ │ │ │ - sub sp, sp, #24 │ │ │ │ │ cmp r3, #0 │ │ │ │ │ - mov r4, r0 │ │ │ │ │ - mov r8, r1 │ │ │ │ │ - mov r7, r2 │ │ │ │ │ - beq 1e08 │ │ │ │ │ + beq 1fb4 │ │ │ │ │ ldr r3, [r4] │ │ │ │ │ cmp r3, #0 │ │ │ │ │ - ble 1dfc │ │ │ │ │ + ble 1f98 │ │ │ │ │ ldr r3, [r4, #4] │ │ │ │ │ cmp r3, #0 │ │ │ │ │ - blt 1dfc │ │ │ │ │ + blt 1f98 │ │ │ │ │ ldr r3, [r4, #8] │ │ │ │ │ cmp r3, #0 │ │ │ │ │ - blt 1dfc │ │ │ │ │ + blt 1f98 │ │ │ │ │ ldr r3, [r4, #12] │ │ │ │ │ cmp r3, #0 │ │ │ │ │ - ble 1dfc │ │ │ │ │ + ble 1f98 │ │ │ │ │ ldr r3, [r4, #16] │ │ │ │ │ cmp r3, #0 │ │ │ │ │ - blt 1dfc │ │ │ │ │ + blt 1f98 │ │ │ │ │ ldr r3, [r4, #20] │ │ │ │ │ cmp r3, #0 │ │ │ │ │ - blt 1dfc │ │ │ │ │ + blt 1f98 │ │ │ │ │ ldr r3, [r4, #24] │ │ │ │ │ cmp r3, #0 │ │ │ │ │ - ble 1dfc │ │ │ │ │ + ble 1f98 │ │ │ │ │ ldr r3, [r4, #28] │ │ │ │ │ cmp r3, #0 │ │ │ │ │ - blt 1dfc │ │ │ │ │ + blt 1f98 │ │ │ │ │ ldr r3, [r4, #32] │ │ │ │ │ cmp r3, #0 │ │ │ │ │ - blt 1dfc │ │ │ │ │ + blt 1f98 │ │ │ │ │ add r1, sp, #20 │ │ │ │ │ mov r0, r5 │ │ │ │ │ bl 0 │ │ │ │ │ R_ARM_CALL MPI_Comm_size │ │ │ │ │ ldr r1, [sp, #20] │ │ │ │ │ mov r2, #1 │ │ │ │ │ mov r0, r4 │ │ │ │ │ - bl 3a8 │ │ │ │ │ + bl 3f0 │ │ │ │ │ ldr ip, [r4, #24] │ │ │ │ │ mov r1, #0 │ │ │ │ │ + mov r6, r0 │ │ │ │ │ add ip, ip, ip, lsr #31 │ │ │ │ │ asr ip, ip, #1 │ │ │ │ │ add ip, ip, #1 │ │ │ │ │ str ip, [r0, #28] │ │ │ │ │ - mov r6, r0 │ │ │ │ │ bl 0 │ │ │ │ │ R_ARM_CALL fftwf_mpi_num_blocks_total │ │ │ │ │ ldr r3, [sp, #20] │ │ │ │ │ cmp r0, r3 │ │ │ │ │ - bgt 1df4 │ │ │ │ │ + bgt 1f90 │ │ │ │ │ mov r1, #1 │ │ │ │ │ mov r0, r6 │ │ │ │ │ bl 0 │ │ │ │ │ R_ARM_CALL fftwf_mpi_num_blocks_total │ │ │ │ │ ldr r3, [sp, #20] │ │ │ │ │ cmp r0, r3 │ │ │ │ │ - bgt 1df4 │ │ │ │ │ + bgt 1f90 │ │ │ │ │ ldr r3, [r4, #24] │ │ │ │ │ - str r3, [r6, #28] │ │ │ │ │ ldr r2, [sp, #48] @ 0x30 │ │ │ │ │ + str r3, [r6, #28] │ │ │ │ │ ldr r3, [sp, #52] @ 0x34 │ │ │ │ │ cmp r2, #0 │ │ │ │ │ lsr r3, r3, #27 │ │ │ │ │ str r3, [sp, #8] │ │ │ │ │ - moveq r3, r2 │ │ │ │ │ - movne r3, #4 │ │ │ │ │ - moveq r2, r8 │ │ │ │ │ - movne r2, r7 │ │ │ │ │ - streq r3, [sp, #4] │ │ │ │ │ - strne r3, [sp, #4] │ │ │ │ │ - moveq r3, r7 │ │ │ │ │ - movne r3, r8 │ │ │ │ │ - streq r5, [sp] │ │ │ │ │ - strne r5, [sp] │ │ │ │ │ + bne 1ff8 │ │ │ │ │ + mov r3, r7 │ │ │ │ │ + str r5, [sp] │ │ │ │ │ + str r2, [sp, #4] │ │ │ │ │ + mov r2, r8 │ │ │ │ │ mov r1, #1 │ │ │ │ │ mov r0, r6 │ │ │ │ │ bl 0 │ │ │ │ │ R_ARM_CALL fftwf_mpi_mkproblem_rdft2_d │ │ │ │ │ ldr r1, [sp, #52] @ 0x34 │ │ │ │ │ mov r2, r0 │ │ │ │ │ mov r0, #0 │ │ │ │ │ bl 0 │ │ │ │ │ R_ARM_CALL fftwf_mkapiplan │ │ │ │ │ - add sp, sp, #24 │ │ │ │ │ - pop {r4, r5, r6, r7, r8, pc} │ │ │ │ │ + b 1f9c │ │ │ │ │ mov r0, r6 │ │ │ │ │ bl 0 │ │ │ │ │ R_ARM_CALL fftwf_mpi_dtensor_destroy │ │ │ │ │ mov r0, #0 │ │ │ │ │ add sp, sp, #24 │ │ │ │ │ - pop {r4, r5, r6, r7, r8, pc} │ │ │ │ │ + ldrd r4, [sp] │ │ │ │ │ + ldrd r6, [sp, #8] │ │ │ │ │ + ldr r8, [sp, #16] │ │ │ │ │ + add sp, sp, #20 │ │ │ │ │ + pop {pc} @ (ldr pc, [sp], #4) │ │ │ │ │ bl 0 │ │ │ │ │ R_ARM_CALL fftwf_the_planner │ │ │ │ │ - ldr r2, [pc, #60] @ 1e50 │ │ │ │ │ + ldr r2, [pc, #84] @ 2014 │ │ │ │ │ add r2, pc, r2 │ │ │ │ │ str r2, [r0, #8] │ │ │ │ │ - ldr r2, [pc, #52] @ 1e54 │ │ │ │ │ + ldr r2, [pc, #76] @ 2018 │ │ │ │ │ add r2, pc, r2 │ │ │ │ │ str r2, [r0, #12] │ │ │ │ │ - ldr r2, [pc, #44] @ 1e58 │ │ │ │ │ + ldr r2, [pc, #68] @ 201c │ │ │ │ │ add r2, pc, r2 │ │ │ │ │ str r2, [r0, #16] │ │ │ │ │ - ldr r2, [pc, #36] @ 1e5c │ │ │ │ │ + ldr r2, [pc, #60] @ 2020 │ │ │ │ │ add r2, pc, r2 │ │ │ │ │ str r2, [r0, #20] │ │ │ │ │ bl 0 │ │ │ │ │ R_ARM_CALL fftwf_mpi_conf_standard │ │ │ │ │ mov r3, #1 │ │ │ │ │ str r3, [r6] │ │ │ │ │ - b 1cc0 │ │ │ │ │ + b 1e74 │ │ │ │ │ + mov r3, #4 │ │ │ │ │ + mov r2, r7 │ │ │ │ │ + str r5, [sp] │ │ │ │ │ + str r3, [sp, #4] │ │ │ │ │ + mov r3, r8 │ │ │ │ │ + b 1f70 │ │ │ │ │ .word 0x000001a4 │ │ │ │ │ R_ARM_REL32 .bss │ │ │ │ │ - .word 0xffffe41c │ │ │ │ │ - .word 0xffffe2b8 │ │ │ │ │ - .word 0xffffe248 │ │ │ │ │ - .word 0xffffe1c4 │ │ │ │ │ + .word 0xffffe294 │ │ │ │ │ + .word 0xffffe10c │ │ │ │ │ + .word 0xffffe0a8 │ │ │ │ │ + .word 0xffffe018 │ │ │ │ │ │ │ │ │ │ -00001e60 : │ │ │ │ │ +00002024 : │ │ │ │ │ plan_guru_rdft2.constprop.1(): │ │ │ │ │ - push {r4, r5, r6, r7, r8, lr} │ │ │ │ │ - ldr r5, [pc, #392] @ 1ff4 │ │ │ │ │ + strd r4, [sp, #-24]! @ 0xffffffe8 │ │ │ │ │ + mov r4, r0 │ │ │ │ │ + ldr r5, [pc, #416] @ 21d4 │ │ │ │ │ + strd r6, [sp, #8] │ │ │ │ │ mov r6, r3 │ │ │ │ │ + mov r7, r2 │ │ │ │ │ + str r8, [sp, #16] │ │ │ │ │ + mov r8, r1 │ │ │ │ │ + str lr, [sp, #20] │ │ │ │ │ + sub sp, sp, #24 │ │ │ │ │ add r5, pc, r5 │ │ │ │ │ ldr r3, [r5] │ │ │ │ │ - sub sp, sp, #24 │ │ │ │ │ cmp r3, #0 │ │ │ │ │ - mov r4, r0 │ │ │ │ │ - mov r8, r1 │ │ │ │ │ - mov r7, r2 │ │ │ │ │ - beq 1f9c │ │ │ │ │ + beq 2154 │ │ │ │ │ ldr r3, [r4] │ │ │ │ │ cmp r3, #0 │ │ │ │ │ - ble 1fe8 │ │ │ │ │ + ble 21a0 │ │ │ │ │ ldr r3, [r4, #4] │ │ │ │ │ cmp r3, #0 │ │ │ │ │ - blt 1fe8 │ │ │ │ │ + blt 21a0 │ │ │ │ │ ldr r3, [r4, #8] │ │ │ │ │ cmp r3, #0 │ │ │ │ │ - blt 1fe8 │ │ │ │ │ + blt 21a0 │ │ │ │ │ ldr r3, [r4, #12] │ │ │ │ │ cmp r3, #0 │ │ │ │ │ - ble 1fe8 │ │ │ │ │ + ble 21a0 │ │ │ │ │ ldr r3, [r4, #16] │ │ │ │ │ cmp r3, #0 │ │ │ │ │ - blt 1fe8 │ │ │ │ │ + blt 21a0 │ │ │ │ │ ldr r3, [r4, #20] │ │ │ │ │ cmp r3, #0 │ │ │ │ │ - blt 1fe8 │ │ │ │ │ + blt 21a0 │ │ │ │ │ add r1, sp, #20 │ │ │ │ │ mov r0, r6 │ │ │ │ │ bl 0 │ │ │ │ │ R_ARM_CALL MPI_Comm_size │ │ │ │ │ ldr r1, [sp, #20] │ │ │ │ │ mov r2, #1 │ │ │ │ │ mov r0, r4 │ │ │ │ │ - bl 9ec │ │ │ │ │ + bl a90 │ │ │ │ │ ldr ip, [r4, #12] │ │ │ │ │ mov r1, #0 │ │ │ │ │ + mov r5, r0 │ │ │ │ │ add ip, ip, ip, lsr #31 │ │ │ │ │ asr ip, ip, #1 │ │ │ │ │ add ip, ip, #1 │ │ │ │ │ str ip, [r0, #16] │ │ │ │ │ - mov r5, r0 │ │ │ │ │ bl 0 │ │ │ │ │ R_ARM_CALL fftwf_mpi_num_blocks_total │ │ │ │ │ ldr r3, [sp, #20] │ │ │ │ │ cmp r0, r3 │ │ │ │ │ - bgt 1fe0 │ │ │ │ │ + bgt 2198 │ │ │ │ │ mov r1, #1 │ │ │ │ │ mov r0, r5 │ │ │ │ │ bl 0 │ │ │ │ │ R_ARM_CALL fftwf_mpi_num_blocks_total │ │ │ │ │ ldr r3, [sp, #20] │ │ │ │ │ cmp r0, r3 │ │ │ │ │ - bgt 1fe0 │ │ │ │ │ + bgt 2198 │ │ │ │ │ ldr r3, [r4, #12] │ │ │ │ │ - str r3, [r5, #16] │ │ │ │ │ ldr r2, [sp, #48] @ 0x30 │ │ │ │ │ + str r3, [r5, #16] │ │ │ │ │ ldr r3, [sp, #52] @ 0x34 │ │ │ │ │ cmp r2, #0 │ │ │ │ │ lsr r3, r3, #27 │ │ │ │ │ str r3, [sp, #8] │ │ │ │ │ - moveq r3, r2 │ │ │ │ │ - movne r3, #4 │ │ │ │ │ - moveq r2, r8 │ │ │ │ │ - movne r2, r7 │ │ │ │ │ - streq r3, [sp, #4] │ │ │ │ │ - strne r3, [sp, #4] │ │ │ │ │ - moveq r3, r7 │ │ │ │ │ - movne r3, r8 │ │ │ │ │ - streq r6, [sp] │ │ │ │ │ - strne r6, [sp] │ │ │ │ │ + bne 21bc │ │ │ │ │ + mov r3, r7 │ │ │ │ │ + str r6, [sp] │ │ │ │ │ + str r2, [sp, #4] │ │ │ │ │ + mov r2, r8 │ │ │ │ │ mov r1, #1 │ │ │ │ │ mov r0, r5 │ │ │ │ │ bl 0 │ │ │ │ │ R_ARM_CALL fftwf_mpi_mkproblem_rdft2_d │ │ │ │ │ ldr r1, [sp, #52] @ 0x34 │ │ │ │ │ mov r2, r0 │ │ │ │ │ mov r0, #0 │ │ │ │ │ bl 0 │ │ │ │ │ R_ARM_CALL fftwf_mkapiplan │ │ │ │ │ - add sp, sp, #24 │ │ │ │ │ - pop {r4, r5, r6, r7, r8, pc} │ │ │ │ │ + b 21a4 │ │ │ │ │ bl 0 │ │ │ │ │ R_ARM_CALL fftwf_the_planner │ │ │ │ │ - ldr r2, [pc, #80] @ 1ff8 │ │ │ │ │ + ldr r2, [pc, #120] @ 21d8 │ │ │ │ │ add r2, pc, r2 │ │ │ │ │ str r2, [r0, #8] │ │ │ │ │ - ldr r2, [pc, #72] @ 1ffc │ │ │ │ │ + ldr r2, [pc, #112] @ 21dc │ │ │ │ │ add r2, pc, r2 │ │ │ │ │ str r2, [r0, #12] │ │ │ │ │ - ldr r2, [pc, #64] @ 2000 │ │ │ │ │ + ldr r2, [pc, #104] @ 21e0 │ │ │ │ │ add r2, pc, r2 │ │ │ │ │ str r2, [r0, #16] │ │ │ │ │ - ldr r2, [pc, #56] @ 2004 │ │ │ │ │ + ldr r2, [pc, #96] @ 21e4 │ │ │ │ │ add r2, pc, r2 │ │ │ │ │ str r2, [r0, #20] │ │ │ │ │ bl 0 │ │ │ │ │ R_ARM_CALL fftwf_mpi_conf_standard │ │ │ │ │ mov r3, #1 │ │ │ │ │ str r3, [r5] │ │ │ │ │ - b 1e8c │ │ │ │ │ + b 205c │ │ │ │ │ mov r0, r5 │ │ │ │ │ bl 0 │ │ │ │ │ R_ARM_CALL fftwf_mpi_dtensor_destroy │ │ │ │ │ mov r0, #0 │ │ │ │ │ add sp, sp, #24 │ │ │ │ │ - pop {r4, r5, r6, r7, r8, pc} │ │ │ │ │ + ldrd r4, [sp] │ │ │ │ │ + ldrd r6, [sp, #8] │ │ │ │ │ + ldr r8, [sp, #16] │ │ │ │ │ + add sp, sp, #20 │ │ │ │ │ + pop {pc} @ (ldr pc, [sp], #4) │ │ │ │ │ + mov r3, #4 │ │ │ │ │ + mov r2, r7 │ │ │ │ │ + str r6, [sp] │ │ │ │ │ + str r3, [sp, #4] │ │ │ │ │ + mov r3, r8 │ │ │ │ │ + b 2134 │ │ │ │ │ .word 0x00000180 │ │ │ │ │ R_ARM_REL32 .bss │ │ │ │ │ - .word 0xffffe288 │ │ │ │ │ - .word 0xffffe124 │ │ │ │ │ - .word 0xffffe0b4 │ │ │ │ │ - .word 0xffffe030 │ │ │ │ │ + .word 0xffffe0f4 │ │ │ │ │ + .word 0xffffdf6c │ │ │ │ │ + .word 0xffffdf08 │ │ │ │ │ + .word 0xffffde78 │ │ │ │ │ │ │ │ │ │ -00002008 : │ │ │ │ │ +000021e8 : │ │ │ │ │ plan_guru_rdft2(): │ │ │ │ │ - push {r4, r5, r6, r7, r8, r9, lr} │ │ │ │ │ - ldr r8, [pc, #428] @ 21c0 │ │ │ │ │ + strd r4, [sp, #-28]! @ 0xffffffe4 │ │ │ │ │ + mov r4, r0 │ │ │ │ │ + mov r5, r2 │ │ │ │ │ + strd r6, [sp, #8] │ │ │ │ │ mov r7, r3 │ │ │ │ │ + mov r6, r1 │ │ │ │ │ + strd r8, [sp, #16] │ │ │ │ │ + ldr r8, [pc, #428] @ 23b8 │ │ │ │ │ + str lr, [sp, #24] │ │ │ │ │ + sub sp, sp, #28 │ │ │ │ │ add r8, pc, r8 │ │ │ │ │ ldr r3, [r8] │ │ │ │ │ - sub sp, sp, #28 │ │ │ │ │ cmp r3, #0 │ │ │ │ │ - mov r4, r0 │ │ │ │ │ - mov r6, r1 │ │ │ │ │ - mov r5, r2 │ │ │ │ │ - beq 2160 │ │ │ │ │ + beq 2358 │ │ │ │ │ cmp r4, #1 │ │ │ │ │ movgt lr, #0 │ │ │ │ │ movle lr, #1 │ │ │ │ │ orrs lr, lr, r5, lsr #31 │ │ │ │ │ - bne 2154 │ │ │ │ │ + bne 233c │ │ │ │ │ mov ip, r6 │ │ │ │ │ ldr r3, [ip] │ │ │ │ │ cmp r3, #0 │ │ │ │ │ - ble 2154 │ │ │ │ │ + ble 233c │ │ │ │ │ ldr r3, [ip, #4] │ │ │ │ │ cmp r3, #0 │ │ │ │ │ - blt 2154 │ │ │ │ │ + blt 233c │ │ │ │ │ ldr r3, [ip, #8] │ │ │ │ │ cmp r3, #0 │ │ │ │ │ - blt 2154 │ │ │ │ │ + blt 233c │ │ │ │ │ add lr, lr, #1 │ │ │ │ │ - cmp r4, lr │ │ │ │ │ add ip, ip, #12 │ │ │ │ │ - bgt 204c │ │ │ │ │ - add r1, sp, #20 │ │ │ │ │ + cmp r4, lr │ │ │ │ │ + bgt 2238 │ │ │ │ │ ldr r0, [sp, #60] @ 0x3c │ │ │ │ │ + add r1, sp, #20 │ │ │ │ │ bl 0 │ │ │ │ │ R_ARM_CALL MPI_Comm_size │ │ │ │ │ + mov r0, r4 │ │ │ │ │ + add r4, r4, r4, lsl #1 │ │ │ │ │ ldr r2, [sp, #20] │ │ │ │ │ mov r3, #1 │ │ │ │ │ mov r1, r6 │ │ │ │ │ - mov r0, r4 │ │ │ │ │ - bl 1254 │ │ │ │ │ - add r4, r4, r4, lsl #1 │ │ │ │ │ lsl r4, r4, #2 │ │ │ │ │ + bl 13a8 │ │ │ │ │ sub r9, r4, #12 │ │ │ │ │ + add r4, r0, r4 │ │ │ │ │ ldr r3, [r6, r9] │ │ │ │ │ mov r1, #0 │ │ │ │ │ + mov r8, r0 │ │ │ │ │ add r3, r3, r3, lsr #31 │ │ │ │ │ asr r3, r3, #1 │ │ │ │ │ add r3, r3, #1 │ │ │ │ │ - add r4, r0, r4 │ │ │ │ │ str r3, [r4, #-8] │ │ │ │ │ - mov r8, r0 │ │ │ │ │ bl 0 │ │ │ │ │ R_ARM_CALL fftwf_mpi_num_blocks_total │ │ │ │ │ ldr r3, [sp, #20] │ │ │ │ │ cmp r0, r3 │ │ │ │ │ - bgt 214c │ │ │ │ │ + bgt 2334 │ │ │ │ │ mov r1, #1 │ │ │ │ │ mov r0, r8 │ │ │ │ │ bl 0 │ │ │ │ │ R_ARM_CALL fftwf_mpi_num_blocks_total │ │ │ │ │ ldr r3, [sp, #20] │ │ │ │ │ cmp r0, r3 │ │ │ │ │ - bgt 214c │ │ │ │ │ + bgt 2334 │ │ │ │ │ ldr r3, [r6, r9] │ │ │ │ │ - str r3, [r4, #-8] │ │ │ │ │ ldr r2, [sp, #64] @ 0x40 │ │ │ │ │ + str r3, [r4, #-8] │ │ │ │ │ ldr r3, [sp, #68] @ 0x44 │ │ │ │ │ cmp r2, #0 │ │ │ │ │ lsr r3, r3, #27 │ │ │ │ │ str r3, [sp, #8] │ │ │ │ │ - bne 21a4 │ │ │ │ │ + bne 239c │ │ │ │ │ ldr r3, [sp, #60] @ 0x3c │ │ │ │ │ str r3, [sp] │ │ │ │ │ ldr r3, [sp, #56] @ 0x38 │ │ │ │ │ str r2, [sp, #4] │ │ │ │ │ mov r2, r7 │ │ │ │ │ mov r1, r5 │ │ │ │ │ mov r0, r8 │ │ │ │ │ bl 0 │ │ │ │ │ R_ARM_CALL fftwf_mpi_mkproblem_rdft2_d │ │ │ │ │ ldr r1, [sp, #68] @ 0x44 │ │ │ │ │ mov r2, r0 │ │ │ │ │ mov r0, #0 │ │ │ │ │ bl 0 │ │ │ │ │ R_ARM_CALL fftwf_mkapiplan │ │ │ │ │ - add sp, sp, #28 │ │ │ │ │ - pop {r4, r5, r6, r7, r8, r9, pc} │ │ │ │ │ + b 2340 │ │ │ │ │ mov r0, r8 │ │ │ │ │ bl 0 │ │ │ │ │ R_ARM_CALL fftwf_mpi_dtensor_destroy │ │ │ │ │ mov r0, #0 │ │ │ │ │ add sp, sp, #28 │ │ │ │ │ - pop {r4, r5, r6, r7, r8, r9, pc} │ │ │ │ │ + ldrd r4, [sp] │ │ │ │ │ + ldrd r6, [sp, #8] │ │ │ │ │ + ldrd r8, [sp, #16] │ │ │ │ │ + add sp, sp, #24 │ │ │ │ │ + pop {pc} @ (ldr pc, [sp], #4) │ │ │ │ │ bl 0 │ │ │ │ │ R_ARM_CALL fftwf_the_planner │ │ │ │ │ - ldr r2, [pc, #88] @ 21c4 │ │ │ │ │ + ldr r2, [pc, #88] @ 23bc │ │ │ │ │ add r2, pc, r2 │ │ │ │ │ str r2, [r0, #8] │ │ │ │ │ - ldr r2, [pc, #80] @ 21c8 │ │ │ │ │ + ldr r2, [pc, #80] @ 23c0 │ │ │ │ │ add r2, pc, r2 │ │ │ │ │ str r2, [r0, #12] │ │ │ │ │ - ldr r2, [pc, #72] @ 21cc │ │ │ │ │ + ldr r2, [pc, #72] @ 23c4 │ │ │ │ │ add r2, pc, r2 │ │ │ │ │ str r2, [r0, #16] │ │ │ │ │ - ldr r2, [pc, #64] @ 21d0 │ │ │ │ │ + ldr r2, [pc, #64] @ 23c8 │ │ │ │ │ add r2, pc, r2 │ │ │ │ │ str r2, [r0, #20] │ │ │ │ │ bl 0 │ │ │ │ │ R_ARM_CALL fftwf_mpi_conf_standard │ │ │ │ │ mov r3, #1 │ │ │ │ │ str r3, [r8] │ │ │ │ │ - b 2034 │ │ │ │ │ + b 2220 │ │ │ │ │ mov r3, #4 │ │ │ │ │ + ldr r2, [sp, #56] @ 0x38 │ │ │ │ │ str r3, [sp, #4] │ │ │ │ │ ldr r3, [sp, #60] @ 0x3c │ │ │ │ │ str r3, [sp] │ │ │ │ │ - ldr r2, [sp, #56] @ 0x38 │ │ │ │ │ mov r3, r7 │ │ │ │ │ - b 2128 │ │ │ │ │ - .word 0x000001a4 │ │ │ │ │ + b 2314 │ │ │ │ │ + .word 0x000001a0 │ │ │ │ │ R_ARM_REL32 .bss │ │ │ │ │ - .word 0xffffe0c4 │ │ │ │ │ - .word 0xffffdf60 │ │ │ │ │ .word 0xffffdef0 │ │ │ │ │ - .word 0xffffde6c │ │ │ │ │ + .word 0xffffdd68 │ │ │ │ │ + .word 0xffffdd04 │ │ │ │ │ + .word 0xffffdc74 │ │ │ │ │ │ │ │ │ │ -000021d4 : │ │ │ │ │ +000023cc : │ │ │ │ │ fftwf_mpi_init(): │ │ │ │ │ - push {r4, lr} │ │ │ │ │ - ldr r4, [pc, #80] @ 2230 │ │ │ │ │ + str r4, [sp, #-8]! │ │ │ │ │ + ldr r4, [pc, #104] @ 2440 │ │ │ │ │ + str lr, [sp, #4] │ │ │ │ │ add r4, pc, r4 │ │ │ │ │ ldr r3, [r4] │ │ │ │ │ cmp r3, #0 │ │ │ │ │ - popne {r4, pc} │ │ │ │ │ + beq 23f4 │ │ │ │ │ + ldr r4, [sp] │ │ │ │ │ + add sp, sp, #4 │ │ │ │ │ + pop {pc} @ (ldr pc, [sp], #4) │ │ │ │ │ bl 0 │ │ │ │ │ R_ARM_CALL fftwf_the_planner │ │ │ │ │ - ldr r2, [pc, #60] @ 2234 │ │ │ │ │ + ldr r2, [pc, #68] @ 2444 │ │ │ │ │ add r2, pc, r2 │ │ │ │ │ str r2, [r0, #8] │ │ │ │ │ - ldr r2, [pc, #52] @ 2238 │ │ │ │ │ + ldr r2, [pc, #60] @ 2448 │ │ │ │ │ add r2, pc, r2 │ │ │ │ │ str r2, [r0, #12] │ │ │ │ │ - ldr r2, [pc, #44] @ 223c │ │ │ │ │ + ldr r2, [pc, #52] @ 244c │ │ │ │ │ add r2, pc, r2 │ │ │ │ │ str r2, [r0, #16] │ │ │ │ │ - ldr r2, [pc, #36] @ 2240 │ │ │ │ │ + ldr r2, [pc, #44] @ 2450 │ │ │ │ │ add r2, pc, r2 │ │ │ │ │ str r2, [r0, #20] │ │ │ │ │ bl 0 │ │ │ │ │ R_ARM_CALL fftwf_mpi_conf_standard │ │ │ │ │ mov r3, #1 │ │ │ │ │ str r3, [r4] │ │ │ │ │ - pop {r4, pc} │ │ │ │ │ - .word 0x0000004c │ │ │ │ │ + ldr r4, [sp] │ │ │ │ │ + add sp, sp, #4 │ │ │ │ │ + pop {pc} @ (ldr pc, [sp], #4) │ │ │ │ │ + .word 0x00000060 │ │ │ │ │ R_ARM_REL32 .bss │ │ │ │ │ - .word 0xffffe038 │ │ │ │ │ - .word 0xffffded4 │ │ │ │ │ - .word 0xffffde64 │ │ │ │ │ - .word 0xffffdde0 │ │ │ │ │ + .word 0xffffde54 │ │ │ │ │ + .word 0xffffdccc │ │ │ │ │ + .word 0xffffdc68 │ │ │ │ │ + .word 0xffffdbd8 │ │ │ │ │ │ │ │ │ │ -00002244 : │ │ │ │ │ +00002454 : │ │ │ │ │ fftwf_mpi_cleanup(): │ │ │ │ │ - push {r4, lr} │ │ │ │ │ + str r4, [sp, #-8]! │ │ │ │ │ + str lr, [sp, #4] │ │ │ │ │ bl 0 │ │ │ │ │ R_ARM_CALL fftwf_cleanup │ │ │ │ │ - ldr r3, [pc, #12] @ 2260 │ │ │ │ │ + ldr r3, [pc, #20] @ 247c │ │ │ │ │ mov r2, #0 │ │ │ │ │ + ldr r4, [sp] │ │ │ │ │ + add sp, sp, #4 │ │ │ │ │ add r3, pc, r3 │ │ │ │ │ str r2, [r3] │ │ │ │ │ - pop {r4, pc} │ │ │ │ │ + pop {pc} @ (ldr pc, [sp], #4) │ │ │ │ │ .word 0x00000004 │ │ │ │ │ R_ARM_REL32 .bss │ │ │ │ │ │ │ │ │ │ -00002264 : │ │ │ │ │ +00002480 : │ │ │ │ │ fftwf_mpi_local_size_guru(): │ │ │ │ │ - push {r4, r5, r6, r7, r8, lr} │ │ │ │ │ cmp r0, #0 │ │ │ │ │ + strd r4, [sp, #-24]! @ 0xffffffe8 │ │ │ │ │ add r4, sp, #28 │ │ │ │ │ + strd r6, [sp, #8] │ │ │ │ │ ldm r4, {r4, r5, r6, r7} │ │ │ │ │ - ldr lr, [sp, #24] │ │ │ │ │ + str r8, [sp, #16] │ │ │ │ │ ldr r8, [sp, #44] @ 0x2c │ │ │ │ │ - bne 2288 │ │ │ │ │ + str lr, [sp, #20] │ │ │ │ │ + ldr lr, [sp, #24] │ │ │ │ │ + bne 24c0 │ │ │ │ │ mov r0, r2 │ │ │ │ │ - pop {r4, r5, r6, r7, r8, pc} │ │ │ │ │ - str r8, [sp, #44] @ 0x2c │ │ │ │ │ - str r7, [sp, #40] @ 0x28 │ │ │ │ │ - str r6, [sp, #36] @ 0x24 │ │ │ │ │ - str r5, [sp, #32] │ │ │ │ │ - str r4, [sp, #28] │ │ │ │ │ + ldrd r4, [sp] │ │ │ │ │ + ldrd r6, [sp, #8] │ │ │ │ │ + ldr r8, [sp, #16] │ │ │ │ │ + add sp, sp, #20 │ │ │ │ │ + pop {pc} @ (ldr pc, [sp], #4) │ │ │ │ │ str lr, [sp, #24] │ │ │ │ │ - pop {r4, r5, r6, r7, r8, lr} │ │ │ │ │ - b 15a0 │ │ │ │ │ + ldr lr, [sp, #20] │ │ │ │ │ + str r4, [sp, #28] │ │ │ │ │ + str r5, [sp, #32] │ │ │ │ │ + ldrd r4, [sp] │ │ │ │ │ + str r6, [sp, #36] @ 0x24 │ │ │ │ │ + str r7, [sp, #40] @ 0x28 │ │ │ │ │ + ldrd r6, [sp, #8] │ │ │ │ │ + str r8, [sp, #44] @ 0x2c │ │ │ │ │ + ldr r8, [sp, #16] │ │ │ │ │ + add sp, sp, #24 │ │ │ │ │ + b 1724 │ │ │ │ │ │ │ │ │ │ -000022a8 : │ │ │ │ │ +000024f0 : │ │ │ │ │ fftwf_mpi_local_size_many_transposed(): │ │ │ │ │ - push {r4, r5, r6, r7, r8, r9, lr} │ │ │ │ │ subs ip, r0, #0 │ │ │ │ │ + strd r4, [sp, #-28]! @ 0xffffffe4 │ │ │ │ │ add r4, sp, #36 @ 0x24 │ │ │ │ │ + strd r6, [sp, #8] │ │ │ │ │ ldm r4, {r4, r5, r6, r7} │ │ │ │ │ + strd r8, [sp, #16] │ │ │ │ │ ldr r8, [sp, #28] │ │ │ │ │ + str lr, [sp, #24] │ │ │ │ │ ldr r9, [sp, #32] │ │ │ │ │ - bne 22e4 │ │ │ │ │ + bne 2548 │ │ │ │ │ mov r3, #1 │ │ │ │ │ - str r3, [r6] │ │ │ │ │ + mov r0, r2 │ │ │ │ │ + ldrd r8, [sp, #16] │ │ │ │ │ mov lr, r2 │ │ │ │ │ + str r3, [r6] │ │ │ │ │ str r3, [r4] │ │ │ │ │ - mov r0, r2 │ │ │ │ │ str ip, [r7] │ │ │ │ │ + ldrd r6, [sp, #8] │ │ │ │ │ str ip, [r5] │ │ │ │ │ - pop {r4, r5, r6, r7, r8, r9, pc} │ │ │ │ │ - str r7, [sp, #48] @ 0x30 │ │ │ │ │ - str r6, [sp, #44] @ 0x2c │ │ │ │ │ - str r5, [sp, #40] @ 0x28 │ │ │ │ │ - str r4, [sp, #36] @ 0x24 │ │ │ │ │ - str r9, [sp, #32] │ │ │ │ │ + ldrd r4, [sp] │ │ │ │ │ + add sp, sp, #24 │ │ │ │ │ + pop {pc} @ (ldr pc, [sp], #4) │ │ │ │ │ + ldr lr, [sp, #24] │ │ │ │ │ str r8, [sp, #28] │ │ │ │ │ - pop {r4, r5, r6, r7, r8, r9, lr} │ │ │ │ │ - b 1af4 │ │ │ │ │ + str r9, [sp, #32] │ │ │ │ │ + ldrd r8, [sp, #16] │ │ │ │ │ + str r4, [sp, #36] @ 0x24 │ │ │ │ │ + str r5, [sp, #40] @ 0x28 │ │ │ │ │ + ldrd r4, [sp] │ │ │ │ │ + str r6, [sp, #44] @ 0x2c │ │ │ │ │ + str r7, [sp, #48] @ 0x30 │ │ │ │ │ + ldrd r6, [sp, #8] │ │ │ │ │ + add sp, sp, #28 │ │ │ │ │ + b 1c70 │ │ │ │ │ │ │ │ │ │ -00002304 : │ │ │ │ │ +00002578 : │ │ │ │ │ fftwf_mpi_local_size_many(): │ │ │ │ │ cmp r0, #1 │ │ │ │ │ push {lr} @ (str lr, [sp, #-4]!) │ │ │ │ │ sub sp, sp, #36 @ 0x24 │ │ │ │ │ - ble 234c │ │ │ │ │ + ble 25c0 │ │ │ │ │ ldr ip, [r1, #4] │ │ │ │ │ add lr, sp, #28 │ │ │ │ │ str lr, [sp, #20] │ │ │ │ │ add lr, sp, #24 │ │ │ │ │ str lr, [sp, #16] │ │ │ │ │ ldr lr, [sp, #48] @ 0x30 │ │ │ │ │ str lr, [sp, #12] │ │ │ │ │ ldr lr, [sp, #44] @ 0x2c │ │ │ │ │ str lr, [sp, #8] │ │ │ │ │ ldr lr, [sp, #40] @ 0x28 │ │ │ │ │ stm sp, {ip, lr} │ │ │ │ │ - bl 1af4 │ │ │ │ │ + bl 1c70 │ │ │ │ │ add sp, sp, #36 @ 0x24 │ │ │ │ │ pop {pc} @ (ldr pc, [sp], #4) │ │ │ │ │ cmp r0, #0 │ │ │ │ │ - bne 2374 │ │ │ │ │ + bne 25e8 │ │ │ │ │ ldr r1, [sp, #44] @ 0x2c │ │ │ │ │ mov r3, #1 │ │ │ │ │ str r3, [r1] │ │ │ │ │ ldr r3, [sp, #48] @ 0x30 │ │ │ │ │ str r0, [r3] │ │ │ │ │ mov r0, r2 │ │ │ │ │ add sp, sp, #36 @ 0x24 │ │ │ │ │ pop {pc} @ (ldr pc, [sp], #4) │ │ │ │ │ mov ip, #0 │ │ │ │ │ - b 2318 │ │ │ │ │ + b 258c │ │ │ │ │ │ │ │ │ │ -0000237c : │ │ │ │ │ +000025f0 : │ │ │ │ │ fftwf_mpi_local_size_transposed(): │ │ │ │ │ subs ip, r0, #0 │ │ │ │ │ push {lr} @ (str lr, [sp, #-4]!) │ │ │ │ │ sub sp, sp, #28 │ │ │ │ │ - bne 23b4 │ │ │ │ │ + bne 2628 │ │ │ │ │ ldr r2, [sp, #36] @ 0x24 │ │ │ │ │ mov r0, #1 │ │ │ │ │ str r0, [r2] │ │ │ │ │ str r0, [r3] │ │ │ │ │ ldr r3, [sp, #40] @ 0x28 │ │ │ │ │ str ip, [r3] │ │ │ │ │ ldr r3, [sp, #32] │ │ │ │ │ @@ -2549,1925 +2706,2067 @@ │ │ │ │ │ ldr ip, [sp, #36] @ 0x24 │ │ │ │ │ str ip, [sp, #16] │ │ │ │ │ ldr ip, [sp, #32] │ │ │ │ │ stmib sp, {r2, r3, ip} │ │ │ │ │ mov r3, #0 │ │ │ │ │ mov r2, #1 │ │ │ │ │ str r3, [sp] │ │ │ │ │ - bl 1af4 │ │ │ │ │ + bl 1c70 │ │ │ │ │ add sp, sp, #28 │ │ │ │ │ pop {pc} @ (ldr pc, [sp], #4) │ │ │ │ │ │ │ │ │ │ -000023e4 : │ │ │ │ │ +00002658 : │ │ │ │ │ fftwf_mpi_local_size(): │ │ │ │ │ cmp r0, #1 │ │ │ │ │ push {lr} @ (str lr, [sp, #-4]!) │ │ │ │ │ sub sp, sp, #36 @ 0x24 │ │ │ │ │ - ble 2428 │ │ │ │ │ + ble 269c │ │ │ │ │ ldr ip, [r1, #4] │ │ │ │ │ add lr, sp, #28 │ │ │ │ │ + str ip, [sp] │ │ │ │ │ str lr, [sp, #20] │ │ │ │ │ add lr, sp, #24 │ │ │ │ │ str lr, [sp, #16] │ │ │ │ │ ldr lr, [sp, #40] @ 0x28 │ │ │ │ │ - str ip, [sp] │ │ │ │ │ stmib sp, {r2, r3, lr} │ │ │ │ │ mov r3, #0 │ │ │ │ │ mov r2, #1 │ │ │ │ │ - bl 1af4 │ │ │ │ │ + bl 1c70 │ │ │ │ │ add sp, sp, #36 @ 0x24 │ │ │ │ │ pop {pc} @ (ldr pc, [sp], #4) │ │ │ │ │ cmp r0, #0 │ │ │ │ │ - bne 244c │ │ │ │ │ + bne 26c0 │ │ │ │ │ mov r2, #1 │ │ │ │ │ str r2, [r3] │ │ │ │ │ ldr r3, [sp, #40] @ 0x28 │ │ │ │ │ str r0, [r3] │ │ │ │ │ mov r0, r2 │ │ │ │ │ add sp, sp, #36 @ 0x24 │ │ │ │ │ pop {pc} @ (ldr pc, [sp], #4) │ │ │ │ │ mov ip, #0 │ │ │ │ │ - b 23f8 │ │ │ │ │ + b 266c │ │ │ │ │ │ │ │ │ │ -00002454 : │ │ │ │ │ +000026c8 : │ │ │ │ │ fftwf_mpi_local_size_many_1d(): │ │ │ │ │ push {lr} @ (str lr, [sp, #-4]!) │ │ │ │ │ sub sp, sp, #44 @ 0x2c │ │ │ │ │ str r3, [sp, #12] │ │ │ │ │ ldr r3, [sp, #64] @ 0x40 │ │ │ │ │ - str r0, [sp, #28] │ │ │ │ │ str r3, [sp, #8] │ │ │ │ │ - mov r0, #0 │ │ │ │ │ ldr r3, [sp, #60] @ 0x3c │ │ │ │ │ - str r0, [sp, #36] @ 0x24 │ │ │ │ │ - str r0, [sp, #32] │ │ │ │ │ + str r0, [sp, #28] │ │ │ │ │ + mov r0, #0 │ │ │ │ │ str r3, [sp, #4] │ │ │ │ │ - ldr r0, [sp, #48] @ 0x30 │ │ │ │ │ ldr r3, [sp, #56] @ 0x38 │ │ │ │ │ - str r0, [sp, #16] │ │ │ │ │ + str r0, [sp, #32] │ │ │ │ │ + str r0, [sp, #36] @ 0x24 │ │ │ │ │ + ldr r0, [sp, #48] @ 0x30 │ │ │ │ │ str r3, [sp] │ │ │ │ │ - add r0, sp, #28 │ │ │ │ │ ldr r3, [sp, #52] @ 0x34 │ │ │ │ │ - bl 1034 │ │ │ │ │ + str r0, [sp, #16] │ │ │ │ │ + add r0, sp, #28 │ │ │ │ │ + bl 115c │ │ │ │ │ add sp, sp, #44 @ 0x2c │ │ │ │ │ pop {pc} @ (ldr pc, [sp], #4) │ │ │ │ │ │ │ │ │ │ -000024a4 : │ │ │ │ │ +00002718 : │ │ │ │ │ fftwf_mpi_local_size_1d(): │ │ │ │ │ push {lr} @ (str lr, [sp, #-4]!) │ │ │ │ │ sub sp, sp, #44 @ 0x2c │ │ │ │ │ + str r2, [sp, #12] │ │ │ │ │ + mov r2, r1 │ │ │ │ │ + mov r1, #1 │ │ │ │ │ str r3, [sp, #16] │ │ │ │ │ ldr r3, [sp, #60] @ 0x3c │ │ │ │ │ + str r0, [sp, #28] │ │ │ │ │ + mov r0, #0 │ │ │ │ │ str r3, [sp, #8] │ │ │ │ │ ldr r3, [sp, #56] @ 0x38 │ │ │ │ │ - str r0, [sp, #28] │ │ │ │ │ + str r0, [sp, #32] │ │ │ │ │ + str r0, [sp, #36] @ 0x24 │ │ │ │ │ + add r0, sp, #28 │ │ │ │ │ str r3, [sp, #4] │ │ │ │ │ - mov r0, #0 │ │ │ │ │ ldr r3, [sp, #52] @ 0x34 │ │ │ │ │ - str r0, [sp, #36] @ 0x24 │ │ │ │ │ - str r0, [sp, #32] │ │ │ │ │ - str r2, [sp, #12] │ │ │ │ │ str r3, [sp] │ │ │ │ │ - mov r2, r1 │ │ │ │ │ ldr r3, [sp, #48] @ 0x30 │ │ │ │ │ - mov r1, #1 │ │ │ │ │ - add r0, sp, #28 │ │ │ │ │ - bl 1034 │ │ │ │ │ + bl 115c │ │ │ │ │ add sp, sp, #44 @ 0x2c │ │ │ │ │ pop {pc} @ (ldr pc, [sp], #4) │ │ │ │ │ │ │ │ │ │ -000024f8 : │ │ │ │ │ +0000276c : │ │ │ │ │ fftwf_mpi_local_size_2d_transposed(): │ │ │ │ │ push {lr} @ (str lr, [sp, #-4]!) │ │ │ │ │ sub sp, sp, #28 │ │ │ │ │ strd r0, [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] │ │ │ │ │ - add r0, sp, #16 │ │ │ │ │ mov r1, #0 │ │ │ │ │ - bl b8c │ │ │ │ │ + bl c58 │ │ │ │ │ add sp, sp, #28 │ │ │ │ │ pop {pc} @ (ldr pc, [sp], #4) │ │ │ │ │ │ │ │ │ │ -00002530 : │ │ │ │ │ +000027a4 : │ │ │ │ │ fftwf_mpi_local_size_2d(): │ │ │ │ │ push {lr} @ (str lr, [sp, #-4]!) │ │ │ │ │ sub sp, sp, #36 @ 0x24 │ │ │ │ │ strd r0, [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] │ │ │ │ │ add r0, sp, #24 │ │ │ │ │ - bl b8c │ │ │ │ │ + bl c58 │ │ │ │ │ add sp, sp, #36 @ 0x24 │ │ │ │ │ pop {pc} @ (ldr pc, [sp], #4) │ │ │ │ │ │ │ │ │ │ -00002564 : │ │ │ │ │ +000027d8 : │ │ │ │ │ fftwf_mpi_local_size_3d_transposed(): │ │ │ │ │ push {lr} @ (str lr, [sp, #-4]!) │ │ │ │ │ sub sp, sp, #36 @ 0x24 │ │ │ │ │ mov ip, r2 │ │ │ │ │ mov r2, r3 │ │ │ │ │ ldr r3, [sp, #52] @ 0x34 │ │ │ │ │ str r3, [sp, #8] │ │ │ │ │ ldr r3, [sp, #48] @ 0x30 │ │ │ │ │ - str r3, [sp, #4] │ │ │ │ │ - ldr r3, [sp, #44] @ 0x2c │ │ │ │ │ strd r0, [sp, #16] │ │ │ │ │ - str r3, [sp] │ │ │ │ │ mov r1, #0 │ │ │ │ │ - ldr r3, [sp, #40] @ 0x28 │ │ │ │ │ add r0, sp, #16 │ │ │ │ │ str ip, [sp, #24] │ │ │ │ │ - bl 63c │ │ │ │ │ + str r3, [sp, #4] │ │ │ │ │ + ldr r3, [sp, #44] @ 0x2c │ │ │ │ │ + str r3, [sp] │ │ │ │ │ + ldr r3, [sp, #40] @ 0x28 │ │ │ │ │ + bl 6ac │ │ │ │ │ add sp, sp, #36 @ 0x24 │ │ │ │ │ pop {pc} @ (ldr pc, [sp], #4) │ │ │ │ │ │ │ │ │ │ -000025ac : │ │ │ │ │ +00002820 : │ │ │ │ │ fftwf_mpi_local_size_3d(): │ │ │ │ │ push {lr} @ (str lr, [sp, #-4]!) │ │ │ │ │ sub sp, sp, #44 @ 0x2c │ │ │ │ │ mov ip, r2 │ │ │ │ │ mov r2, r3 │ │ │ │ │ add r3, sp, #20 │ │ │ │ │ str r3, [sp, #8] │ │ │ │ │ add r3, sp, #16 │ │ │ │ │ + strd r0, [sp, #24] │ │ │ │ │ + add r0, sp, #24 │ │ │ │ │ str r3, [sp, #4] │ │ │ │ │ ldr r3, [sp, #52] @ 0x34 │ │ │ │ │ - strd r0, [sp, #24] │ │ │ │ │ + str ip, [sp, #32] │ │ │ │ │ str r3, [sp] │ │ │ │ │ - add r0, sp, #24 │ │ │ │ │ ldr r3, [sp, #48] @ 0x30 │ │ │ │ │ - str ip, [sp, #32] │ │ │ │ │ - bl 63c │ │ │ │ │ + bl 6ac │ │ │ │ │ add sp, sp, #44 @ 0x2c │ │ │ │ │ pop {pc} @ (ldr pc, [sp], #4) │ │ │ │ │ │ │ │ │ │ -000025f0 : │ │ │ │ │ +00002864 : │ │ │ │ │ fftwf_mpi_plan_many_transpose(): │ │ │ │ │ - push {r4, r5, r6, r7, r8, r9, lr} │ │ │ │ │ - ldr r9, [pc, #340] @ 2750 │ │ │ │ │ + strd r4, [sp, #-28]! @ 0xffffffe4 │ │ │ │ │ mov r4, r3 │ │ │ │ │ - add r9, pc, r9 │ │ │ │ │ - ldr r3, [r9] │ │ │ │ │ - sub sp, sp, #36 @ 0x24 │ │ │ │ │ - cmp r3, #0 │ │ │ │ │ - ldr r8, [sp, #64] @ 0x40 │ │ │ │ │ mov r5, r0 │ │ │ │ │ + strd r6, [sp, #8] │ │ │ │ │ mov r6, r1 │ │ │ │ │ mov r7, r2 │ │ │ │ │ - beq 26dc │ │ │ │ │ + strd r8, [sp, #16] │ │ │ │ │ + ldr r9, [pc, #340] @ 29dc │ │ │ │ │ + str lr, [sp, #24] │ │ │ │ │ + sub sp, sp, #36 @ 0x24 │ │ │ │ │ + ldr r8, [sp, #64] @ 0x40 │ │ │ │ │ + add r9, pc, r9 │ │ │ │ │ + ldr r3, [r9] │ │ │ │ │ + cmp r3, #0 │ │ │ │ │ + beq 2968 │ │ │ │ │ orr r3, r4, r8 │ │ │ │ │ orrs r3, r3, r7 │ │ │ │ │ - bmi 26d0 │ │ │ │ │ + bmi 294c │ │ │ │ │ cmp r6, #0 │ │ │ │ │ cmpgt r5, #0 │ │ │ │ │ - ble 26d0 │ │ │ │ │ + ble 294c │ │ │ │ │ ldr r0, [sp, #76] @ 0x4c │ │ │ │ │ add r1, sp, #28 │ │ │ │ │ bl 0 │ │ │ │ │ R_ARM_CALL MPI_Comm_size │ │ │ │ │ cmp r4, #0 │ │ │ │ │ - beq 2734 │ │ │ │ │ + beq 29c0 │ │ │ │ │ cmp r8, #0 │ │ │ │ │ - beq 2720 │ │ │ │ │ + beq 29ac │ │ │ │ │ mov r1, r4 │ │ │ │ │ mov r0, r5 │ │ │ │ │ bl 0 │ │ │ │ │ R_ARM_CALL fftwf_mpi_num_blocks │ │ │ │ │ ldr r3, [sp, #28] │ │ │ │ │ cmp r0, r3 │ │ │ │ │ - bgt 26d0 │ │ │ │ │ + bgt 294c │ │ │ │ │ mov r1, r8 │ │ │ │ │ mov r0, r6 │ │ │ │ │ bl 0 │ │ │ │ │ R_ARM_CALL fftwf_mpi_num_blocks │ │ │ │ │ ldr r3, [sp, #28] │ │ │ │ │ cmp r0, r3 │ │ │ │ │ - bgt 26d0 │ │ │ │ │ + bgt 294c │ │ │ │ │ ldr r3, [sp, #80] @ 0x50 │ │ │ │ │ mov r2, r7 │ │ │ │ │ + mov r1, r6 │ │ │ │ │ + mov r0, r5 │ │ │ │ │ + stmib sp, {r4, r8} │ │ │ │ │ lsr r3, r3, #27 │ │ │ │ │ str r3, [sp, #16] │ │ │ │ │ ldr r3, [sp, #76] @ 0x4c │ │ │ │ │ str r3, [sp, #12] │ │ │ │ │ ldr r3, [sp, #72] @ 0x48 │ │ │ │ │ - mov r1, r6 │ │ │ │ │ str r3, [sp] │ │ │ │ │ - mov r0, r5 │ │ │ │ │ ldr r3, [sp, #68] @ 0x44 │ │ │ │ │ - stmib sp, {r4, r8} │ │ │ │ │ bl 0 │ │ │ │ │ R_ARM_CALL fftwf_mpi_mkproblem_transpose │ │ │ │ │ ldr r1, [sp, #80] @ 0x50 │ │ │ │ │ mov r2, r0 │ │ │ │ │ mvn r0, #0 │ │ │ │ │ bl 0 │ │ │ │ │ R_ARM_CALL fftwf_mkapiplan │ │ │ │ │ - add sp, sp, #36 @ 0x24 │ │ │ │ │ - pop {r4, r5, r6, r7, r8, r9, pc} │ │ │ │ │ + b 2950 │ │ │ │ │ mov r0, #0 │ │ │ │ │ add sp, sp, #36 @ 0x24 │ │ │ │ │ - pop {r4, r5, r6, r7, r8, r9, pc} │ │ │ │ │ + ldrd r4, [sp] │ │ │ │ │ + ldrd r6, [sp, #8] │ │ │ │ │ + ldrd r8, [sp, #16] │ │ │ │ │ + add sp, sp, #24 │ │ │ │ │ + pop {pc} @ (ldr pc, [sp], #4) │ │ │ │ │ bl 0 │ │ │ │ │ R_ARM_CALL fftwf_the_planner │ │ │ │ │ - ldr r2, [pc, #108] @ 2754 │ │ │ │ │ + ldr r2, [pc, #108] @ 29e0 │ │ │ │ │ add r2, pc, r2 │ │ │ │ │ str r2, [r0, #8] │ │ │ │ │ - ldr r2, [pc, #100] @ 2758 │ │ │ │ │ + ldr r2, [pc, #100] @ 29e4 │ │ │ │ │ add r2, pc, r2 │ │ │ │ │ str r2, [r0, #12] │ │ │ │ │ - ldr r2, [pc, #92] @ 275c │ │ │ │ │ + ldr r2, [pc, #92] @ 29e8 │ │ │ │ │ add r2, pc, r2 │ │ │ │ │ str r2, [r0, #16] │ │ │ │ │ - ldr r2, [pc, #84] @ 2760 │ │ │ │ │ + ldr r2, [pc, #84] @ 29ec │ │ │ │ │ add r2, pc, r2 │ │ │ │ │ str r2, [r0, #20] │ │ │ │ │ bl 0 │ │ │ │ │ R_ARM_CALL fftwf_mpi_conf_standard │ │ │ │ │ mov r3, #1 │ │ │ │ │ str r3, [r9] │ │ │ │ │ - b 2620 │ │ │ │ │ + b 28a0 │ │ │ │ │ ldr r1, [sp, #28] │ │ │ │ │ mov r0, r6 │ │ │ │ │ bl 0 │ │ │ │ │ R_ARM_CALL fftwf_mpi_default_block │ │ │ │ │ mov r8, r0 │ │ │ │ │ - b 2654 │ │ │ │ │ + b 28d4 │ │ │ │ │ ldr r1, [sp, #28] │ │ │ │ │ mov r0, r5 │ │ │ │ │ bl 0 │ │ │ │ │ R_ARM_CALL fftwf_mpi_default_block │ │ │ │ │ cmp r8, #0 │ │ │ │ │ mov r4, r0 │ │ │ │ │ - bne 2654 │ │ │ │ │ - b 2720 │ │ │ │ │ - .word 0x0000014c │ │ │ │ │ + bne 28d4 │ │ │ │ │ + b 29ac │ │ │ │ │ + .word 0x00000144 │ │ │ │ │ R_ARM_REL32 .bss │ │ │ │ │ - .word 0xffffdb48 │ │ │ │ │ - .word 0xffffd9e4 │ │ │ │ │ - .word 0xffffd974 │ │ │ │ │ - .word 0xffffd8f0 │ │ │ │ │ + .word 0xffffd8e0 │ │ │ │ │ + .word 0xffffd758 │ │ │ │ │ + .word 0xffffd6f4 │ │ │ │ │ + .word 0xffffd664 │ │ │ │ │ │ │ │ │ │ -00002764 : │ │ │ │ │ +000029f0 : │ │ │ │ │ fftwf_mpi_plan_transpose(): │ │ │ │ │ - push {r4, r5, r6, r7, r8, r9, lr} │ │ │ │ │ - ldr r8, [pc, #284] @ 288c │ │ │ │ │ + strd r4, [sp, #-28]! @ 0xffffffe4 │ │ │ │ │ + mov r4, r0 │ │ │ │ │ + mov r5, r1 │ │ │ │ │ + strd r6, [sp, #8] │ │ │ │ │ mov r7, r3 │ │ │ │ │ + mov r6, r2 │ │ │ │ │ + strd r8, [sp, #16] │ │ │ │ │ + ldr r8, [pc, #284] @ 2b30 │ │ │ │ │ + str lr, [sp, #24] │ │ │ │ │ + sub sp, sp, #36 @ 0x24 │ │ │ │ │ add r8, pc, r8 │ │ │ │ │ ldr r3, [r8] │ │ │ │ │ - sub sp, sp, #36 @ 0x24 │ │ │ │ │ cmp r3, #0 │ │ │ │ │ - mov r4, r0 │ │ │ │ │ - mov r5, r1 │ │ │ │ │ - mov r6, r2 │ │ │ │ │ - beq 2848 │ │ │ │ │ + beq 2aec │ │ │ │ │ cmp r4, #0 │ │ │ │ │ cmpgt r5, #0 │ │ │ │ │ - ble 283c │ │ │ │ │ - add r1, sp, #28 │ │ │ │ │ + ble 2ad0 │ │ │ │ │ ldr r0, [sp, #64] @ 0x40 │ │ │ │ │ + add r1, sp, #28 │ │ │ │ │ bl 0 │ │ │ │ │ R_ARM_CALL MPI_Comm_size │ │ │ │ │ ldr r1, [sp, #28] │ │ │ │ │ mov r0, r4 │ │ │ │ │ bl 0 │ │ │ │ │ R_ARM_CALL fftwf_mpi_default_block │ │ │ │ │ ldr r1, [sp, #28] │ │ │ │ │ mov r8, r0 │ │ │ │ │ mov r0, r5 │ │ │ │ │ bl 0 │ │ │ │ │ R_ARM_CALL fftwf_mpi_default_block │ │ │ │ │ - mov r1, r8 │ │ │ │ │ mov r9, r0 │ │ │ │ │ + mov r1, r8 │ │ │ │ │ mov r0, r4 │ │ │ │ │ bl 0 │ │ │ │ │ R_ARM_CALL fftwf_mpi_num_blocks │ │ │ │ │ ldr r3, [sp, #28] │ │ │ │ │ cmp r0, r3 │ │ │ │ │ - bgt 283c │ │ │ │ │ + bgt 2ad0 │ │ │ │ │ mov r1, r9 │ │ │ │ │ mov r0, r5 │ │ │ │ │ bl 0 │ │ │ │ │ R_ARM_CALL fftwf_mpi_num_blocks │ │ │ │ │ ldr r3, [sp, #28] │ │ │ │ │ cmp r0, r3 │ │ │ │ │ - bgt 283c │ │ │ │ │ + bgt 2ad0 │ │ │ │ │ ldr r3, [sp, #68] @ 0x44 │ │ │ │ │ mov r1, r5 │ │ │ │ │ + mov r2, #1 │ │ │ │ │ + mov r0, r4 │ │ │ │ │ + stm sp, {r7, r8, r9} │ │ │ │ │ lsr r3, r3, #27 │ │ │ │ │ str r3, [sp, #16] │ │ │ │ │ ldr r3, [sp, #64] @ 0x40 │ │ │ │ │ str r3, [sp, #12] │ │ │ │ │ - mov r2, #1 │ │ │ │ │ mov r3, r6 │ │ │ │ │ - mov r0, r4 │ │ │ │ │ - stm sp, {r7, r8, r9} │ │ │ │ │ bl 0 │ │ │ │ │ R_ARM_CALL fftwf_mpi_mkproblem_transpose │ │ │ │ │ ldr r1, [sp, #68] @ 0x44 │ │ │ │ │ mov r2, r0 │ │ │ │ │ mvn r0, #0 │ │ │ │ │ bl 0 │ │ │ │ │ R_ARM_CALL fftwf_mkapiplan │ │ │ │ │ - add sp, sp, #36 @ 0x24 │ │ │ │ │ - pop {r4, r5, r6, r7, r8, r9, pc} │ │ │ │ │ + b 2ad4 │ │ │ │ │ mov r0, #0 │ │ │ │ │ add sp, sp, #36 @ 0x24 │ │ │ │ │ - pop {r4, r5, r6, r7, r8, r9, pc} │ │ │ │ │ + ldrd r4, [sp] │ │ │ │ │ + ldrd r6, [sp, #8] │ │ │ │ │ + ldrd r8, [sp, #16] │ │ │ │ │ + add sp, sp, #24 │ │ │ │ │ + pop {pc} @ (ldr pc, [sp], #4) │ │ │ │ │ bl 0 │ │ │ │ │ R_ARM_CALL fftwf_the_planner │ │ │ │ │ - ldr r2, [pc, #60] @ 2890 │ │ │ │ │ + ldr r2, [pc, #60] @ 2b34 │ │ │ │ │ add r2, pc, r2 │ │ │ │ │ str r2, [r0, #8] │ │ │ │ │ - ldr r2, [pc, #52] @ 2894 │ │ │ │ │ + ldr r2, [pc, #52] @ 2b38 │ │ │ │ │ add r2, pc, r2 │ │ │ │ │ str r2, [r0, #12] │ │ │ │ │ - ldr r2, [pc, #44] @ 2898 │ │ │ │ │ + ldr r2, [pc, #44] @ 2b3c │ │ │ │ │ add r2, pc, r2 │ │ │ │ │ str r2, [r0, #16] │ │ │ │ │ - ldr r2, [pc, #36] @ 289c │ │ │ │ │ + ldr r2, [pc, #36] @ 2b40 │ │ │ │ │ add r2, pc, r2 │ │ │ │ │ str r2, [r0, #20] │ │ │ │ │ bl 0 │ │ │ │ │ R_ARM_CALL fftwf_mpi_conf_standard │ │ │ │ │ mov r3, #1 │ │ │ │ │ str r3, [r8] │ │ │ │ │ - b 2790 │ │ │ │ │ - .word 0x00000114 │ │ │ │ │ + b 2a28 │ │ │ │ │ + .word 0x00000110 │ │ │ │ │ R_ARM_REL32 .bss │ │ │ │ │ - .word 0xffffd9dc │ │ │ │ │ - .word 0xffffd878 │ │ │ │ │ - .word 0xffffd808 │ │ │ │ │ - .word 0xffffd784 │ │ │ │ │ + .word 0xffffd75c │ │ │ │ │ + .word 0xffffd5d4 │ │ │ │ │ + .word 0xffffd570 │ │ │ │ │ + .word 0xffffd4e0 │ │ │ │ │ │ │ │ │ │ -000028a0 : │ │ │ │ │ +00002b44 : │ │ │ │ │ fftwf_mpi_plan_guru_dft(): │ │ │ │ │ - push {r4, r5, r6, r7, r8, lr} │ │ │ │ │ - ldr r8, [pc, #344] @ 2a04 │ │ │ │ │ + strd r4, [sp, #-24]! @ 0xffffffe8 │ │ │ │ │ + mov r4, r0 │ │ │ │ │ + mov r5, r2 │ │ │ │ │ + strd r6, [sp, #8] │ │ │ │ │ mov r7, r3 │ │ │ │ │ + mov r6, r1 │ │ │ │ │ + str r8, [sp, #16] │ │ │ │ │ + ldr r8, [pc, #344] @ 2cc0 │ │ │ │ │ + str lr, [sp, #20] │ │ │ │ │ + sub sp, sp, #24 │ │ │ │ │ add r8, pc, r8 │ │ │ │ │ ldr r3, [r8] │ │ │ │ │ - sub sp, sp, #24 │ │ │ │ │ cmp r3, #0 │ │ │ │ │ - mov r4, r0 │ │ │ │ │ - mov r6, r1 │ │ │ │ │ - mov r5, r2 │ │ │ │ │ - beq 29c0 │ │ │ │ │ + beq 2c7c │ │ │ │ │ cmp r4, #0 │ │ │ │ │ movgt lr, #0 │ │ │ │ │ movle lr, #1 │ │ │ │ │ orrs lr, lr, r5, lsr #31 │ │ │ │ │ - bne 29b4 │ │ │ │ │ + bne 2c60 │ │ │ │ │ mov ip, r6 │ │ │ │ │ ldr r3, [ip] │ │ │ │ │ cmp r3, #0 │ │ │ │ │ - ble 29b4 │ │ │ │ │ + ble 2c60 │ │ │ │ │ ldr r3, [ip, #4] │ │ │ │ │ cmp r3, #0 │ │ │ │ │ - blt 29b4 │ │ │ │ │ + blt 2c60 │ │ │ │ │ ldr r3, [ip, #8] │ │ │ │ │ cmp r3, #0 │ │ │ │ │ - blt 29b4 │ │ │ │ │ + blt 2c60 │ │ │ │ │ add lr, lr, #1 │ │ │ │ │ - cmp r4, lr │ │ │ │ │ add ip, ip, #12 │ │ │ │ │ - bgt 28e4 │ │ │ │ │ - add r1, sp, #20 │ │ │ │ │ + cmp r4, lr │ │ │ │ │ + bgt 2b94 │ │ │ │ │ ldr r0, [sp, #52] @ 0x34 │ │ │ │ │ + add r1, sp, #20 │ │ │ │ │ bl 0 │ │ │ │ │ R_ARM_CALL MPI_Comm_size │ │ │ │ │ - mov r3, #0 │ │ │ │ │ ldr r2, [sp, #20] │ │ │ │ │ + mov r3, #0 │ │ │ │ │ mov r1, r6 │ │ │ │ │ mov r0, r4 │ │ │ │ │ - bl 1254 │ │ │ │ │ + bl 13a8 │ │ │ │ │ mov r1, #0 │ │ │ │ │ mov r4, r0 │ │ │ │ │ bl 0 │ │ │ │ │ R_ARM_CALL fftwf_mpi_num_blocks_total │ │ │ │ │ ldr r3, [sp, #20] │ │ │ │ │ cmp r0, r3 │ │ │ │ │ - bgt 29ac │ │ │ │ │ + bgt 2c58 │ │ │ │ │ mov r1, #1 │ │ │ │ │ mov r0, r4 │ │ │ │ │ bl 0 │ │ │ │ │ R_ARM_CALL fftwf_mpi_num_blocks_total │ │ │ │ │ ldr r3, [sp, #20] │ │ │ │ │ cmp r0, r3 │ │ │ │ │ - bgt 29ac │ │ │ │ │ + bgt 2c58 │ │ │ │ │ ldr r3, [sp, #60] @ 0x3c │ │ │ │ │ mov r2, r7 │ │ │ │ │ + mov r1, r5 │ │ │ │ │ + mov r0, r4 │ │ │ │ │ lsr r3, r3, #27 │ │ │ │ │ str r3, [sp, #8] │ │ │ │ │ ldr r3, [sp, #56] @ 0x38 │ │ │ │ │ str r3, [sp, #4] │ │ │ │ │ ldr r3, [sp, #52] @ 0x34 │ │ │ │ │ - mov r1, r5 │ │ │ │ │ str r3, [sp] │ │ │ │ │ - mov r0, r4 │ │ │ │ │ ldr r3, [sp, #48] @ 0x30 │ │ │ │ │ bl 0 │ │ │ │ │ R_ARM_CALL fftwf_mpi_mkproblem_dft_d │ │ │ │ │ mov r2, r0 │ │ │ │ │ ldrd r0, [sp, #56] @ 0x38 │ │ │ │ │ bl 0 │ │ │ │ │ R_ARM_CALL fftwf_mkapiplan │ │ │ │ │ - add sp, sp, #24 │ │ │ │ │ - pop {r4, r5, r6, r7, r8, pc} │ │ │ │ │ + b 2c64 │ │ │ │ │ mov r0, r4 │ │ │ │ │ bl 0 │ │ │ │ │ R_ARM_CALL fftwf_mpi_dtensor_destroy │ │ │ │ │ mov r0, #0 │ │ │ │ │ add sp, sp, #24 │ │ │ │ │ - pop {r4, r5, r6, r7, r8, pc} │ │ │ │ │ + ldrd r4, [sp] │ │ │ │ │ + ldrd r6, [sp, #8] │ │ │ │ │ + ldr r8, [sp, #16] │ │ │ │ │ + add sp, sp, #20 │ │ │ │ │ + pop {pc} @ (ldr pc, [sp], #4) │ │ │ │ │ bl 0 │ │ │ │ │ R_ARM_CALL fftwf_the_planner │ │ │ │ │ - ldr r2, [pc, #60] @ 2a08 │ │ │ │ │ + ldr r2, [pc, #60] @ 2cc4 │ │ │ │ │ add r2, pc, r2 │ │ │ │ │ str r2, [r0, #8] │ │ │ │ │ - ldr r2, [pc, #52] @ 2a0c │ │ │ │ │ + ldr r2, [pc, #52] @ 2cc8 │ │ │ │ │ add r2, pc, r2 │ │ │ │ │ str r2, [r0, #12] │ │ │ │ │ - ldr r2, [pc, #44] @ 2a10 │ │ │ │ │ + ldr r2, [pc, #44] @ 2ccc │ │ │ │ │ add r2, pc, r2 │ │ │ │ │ str r2, [r0, #16] │ │ │ │ │ - ldr r2, [pc, #36] @ 2a14 │ │ │ │ │ + ldr r2, [pc, #36] @ 2cd0 │ │ │ │ │ add r2, pc, r2 │ │ │ │ │ str r2, [r0, #20] │ │ │ │ │ bl 0 │ │ │ │ │ R_ARM_CALL fftwf_mpi_conf_standard │ │ │ │ │ mov r3, #1 │ │ │ │ │ str r3, [r8] │ │ │ │ │ - b 28cc │ │ │ │ │ - .word 0x00000150 │ │ │ │ │ + b 2b7c │ │ │ │ │ + .word 0x0000014c │ │ │ │ │ R_ARM_REL32 .bss │ │ │ │ │ - .word 0xffffd864 │ │ │ │ │ - .word 0xffffd700 │ │ │ │ │ - .word 0xffffd690 │ │ │ │ │ - .word 0xffffd60c │ │ │ │ │ + .word 0xffffd5cc │ │ │ │ │ + .word 0xffffd444 │ │ │ │ │ + .word 0xffffd3e0 │ │ │ │ │ + .word 0xffffd350 │ │ │ │ │ │ │ │ │ │ -00002a18 : │ │ │ │ │ +00002cd4 : │ │ │ │ │ fftwf_mpi_plan_many_dft(): │ │ │ │ │ - push {r4, r5, r6, r7, r8, r9, lr} │ │ │ │ │ + strd r4, [sp, #-28]! @ 0xffffffe4 │ │ │ │ │ mov r5, r0 │ │ │ │ │ add r0, r0, r0, lsl #1 │ │ │ │ │ - sub sp, sp, #20 │ │ │ │ │ - lsl r0, r0, #2 │ │ │ │ │ - ldr r8, [sp, #68] @ 0x44 │ │ │ │ │ + strd r6, [sp, #8] │ │ │ │ │ mov r4, r1 │ │ │ │ │ - mov r9, r2 │ │ │ │ │ mov r7, r3 │ │ │ │ │ + lsl r0, r0, #2 │ │ │ │ │ + strd r8, [sp, #16] │ │ │ │ │ + mov r9, r2 │ │ │ │ │ + str lr, [sp, #24] │ │ │ │ │ + sub sp, sp, #20 │ │ │ │ │ + ldr r8, [sp, #68] @ 0x44 │ │ │ │ │ bl 0 │ │ │ │ │ R_ARM_CALL fftwf_malloc_plain │ │ │ │ │ cmp r5, #0 │ │ │ │ │ mov r6, r0 │ │ │ │ │ - ble 2a9c │ │ │ │ │ - sub r4, r4, #4 │ │ │ │ │ - mov ip, r0 │ │ │ │ │ + ble 2d60 │ │ │ │ │ add r3, r4, r5, lsl #2 │ │ │ │ │ - ldr lr, [r4, #4]! │ │ │ │ │ - str lr, [ip, #8] │ │ │ │ │ + mov ip, r0 │ │ │ │ │ + ldr lr, [r4], #4 │ │ │ │ │ cmp r4, r3 │ │ │ │ │ str lr, [ip, #4] │ │ │ │ │ + str lr, [ip, #8] │ │ │ │ │ str lr, [ip], #12 │ │ │ │ │ - bne 2a58 │ │ │ │ │ + bne 2d1c │ │ │ │ │ cmp r5, #1 │ │ │ │ │ - beq 2ae4 │ │ │ │ │ + beq 2db8 │ │ │ │ │ tst r8, #536870912 @ 0x20000000 │ │ │ │ │ addne r3, r6, #12 │ │ │ │ │ moveq r3, r6 │ │ │ │ │ + ldr r2, [sp, #48] @ 0x30 │ │ │ │ │ tst r8, #1073741824 @ 0x40000000 │ │ │ │ │ str r7, [r3, #4] │ │ │ │ │ - ldr r2, [sp, #48] @ 0x30 │ │ │ │ │ addne r3, r6, #12 │ │ │ │ │ moveq r3, r6 │ │ │ │ │ str r2, [r3, #8] │ │ │ │ │ ldr r3, [sp, #64] @ 0x40 │ │ │ │ │ + mov r2, r9 │ │ │ │ │ + mov r1, r6 │ │ │ │ │ + mov r0, r5 │ │ │ │ │ str r3, [sp, #8] │ │ │ │ │ ldr r3, [sp, #60] @ 0x3c │ │ │ │ │ str r3, [sp, #4] │ │ │ │ │ ldr r3, [sp, #56] @ 0x38 │ │ │ │ │ - mov r2, r9 │ │ │ │ │ - mov r1, r6 │ │ │ │ │ + str r8, [sp, #12] │ │ │ │ │ str r3, [sp] │ │ │ │ │ - mov r0, r5 │ │ │ │ │ ldr r3, [sp, #52] @ 0x34 │ │ │ │ │ - str r8, [sp, #12] │ │ │ │ │ - bl 28a0 │ │ │ │ │ + bl 2b44 │ │ │ │ │ R_ARM_CALL fftwf_mpi_plan_guru_dft │ │ │ │ │ mov r4, r0 │ │ │ │ │ mov r0, r6 │ │ │ │ │ bl 0 │ │ │ │ │ R_ARM_CALL fftwf_ifree │ │ │ │ │ mov r0, r4 │ │ │ │ │ add sp, sp, #20 │ │ │ │ │ - pop {r4, r5, r6, r7, r8, r9, pc} │ │ │ │ │ + ldrd r4, [sp] │ │ │ │ │ + ldrd r6, [sp, #8] │ │ │ │ │ + ldrd r8, [sp, #16] │ │ │ │ │ + add sp, sp, #24 │ │ │ │ │ + pop {pc} @ (ldr pc, [sp], #4) │ │ │ │ │ ldr r3, [sp, #48] @ 0x30 │ │ │ │ │ str r7, [r6, #4] │ │ │ │ │ str r3, [r6, #8] │ │ │ │ │ - b 2a9c │ │ │ │ │ + b 2d60 │ │ │ │ │ │ │ │ │ │ -00002af4 : │ │ │ │ │ +00002dc8 : │ │ │ │ │ fftwf_mpi_plan_dft(): │ │ │ │ │ - push {r4, r5, r6, r7, r8, r9, sl, lr} │ │ │ │ │ + strd r4, [sp, #-32]! @ 0xffffffe0 │ │ │ │ │ + mov r4, r1 │ │ │ │ │ + strd r6, [sp, #8] │ │ │ │ │ mov r6, r0 │ │ │ │ │ add r0, r0, r0, lsl #1 │ │ │ │ │ - sub sp, sp, #16 │ │ │ │ │ - lsl r0, r0, #2 │ │ │ │ │ - ldr r8, [sp, #56] @ 0x38 │ │ │ │ │ - mov r4, r1 │ │ │ │ │ + strd r8, [sp, #16] │ │ │ │ │ mov r7, r2 │ │ │ │ │ + lsl r0, r0, #2 │ │ │ │ │ + str sl, [sp, #24] │ │ │ │ │ mov sl, r3 │ │ │ │ │ + str lr, [sp, #28] │ │ │ │ │ + sub sp, sp, #16 │ │ │ │ │ + ldr r8, [sp, #56] @ 0x38 │ │ │ │ │ bl 0 │ │ │ │ │ R_ARM_CALL fftwf_malloc_plain │ │ │ │ │ cmp r6, #0 │ │ │ │ │ mov r9, r0 │ │ │ │ │ - ble 2b7c │ │ │ │ │ - sub r4, r4, #4 │ │ │ │ │ - mov ip, r0 │ │ │ │ │ + ble 2e5c │ │ │ │ │ add r5, r4, r6, lsl #2 │ │ │ │ │ - ldr lr, [r4, #4]! │ │ │ │ │ - str lr, [ip, #8] │ │ │ │ │ + mov ip, r0 │ │ │ │ │ + ldr lr, [r4], #4 │ │ │ │ │ cmp r4, r5 │ │ │ │ │ str lr, [ip, #4] │ │ │ │ │ + str lr, [ip, #8] │ │ │ │ │ str lr, [ip], #12 │ │ │ │ │ - bne 2b34 │ │ │ │ │ + bne 2e14 │ │ │ │ │ cmp r6, #1 │ │ │ │ │ - beq 2bc0 │ │ │ │ │ + beq 2eb4 │ │ │ │ │ tst r8, #536870912 @ 0x20000000 │ │ │ │ │ addne r3, r9, #12 │ │ │ │ │ moveq r3, r9 │ │ │ │ │ mov r2, #0 │ │ │ │ │ tst r8, #1073741824 @ 0x40000000 │ │ │ │ │ str r2, [r3, #4] │ │ │ │ │ addne r3, r9, #12 │ │ │ │ │ moveq r3, r9 │ │ │ │ │ mov r2, #0 │ │ │ │ │ str r2, [r3, #8] │ │ │ │ │ ldr r3, [sp, #52] @ 0x34 │ │ │ │ │ - str r3, [sp, #8] │ │ │ │ │ - ldr r3, [sp, #48] @ 0x30 │ │ │ │ │ mov r2, #1 │ │ │ │ │ mov r1, r9 │ │ │ │ │ - str r3, [sp, #4] │ │ │ │ │ mov r0, r6 │ │ │ │ │ - mov r3, r7 │ │ │ │ │ - str r8, [sp, #12] │ │ │ │ │ str sl, [sp] │ │ │ │ │ - bl 28a0 │ │ │ │ │ + str r3, [sp, #8] │ │ │ │ │ + ldr r3, [sp, #48] @ 0x30 │ │ │ │ │ + str r8, [sp, #12] │ │ │ │ │ + str r3, [sp, #4] │ │ │ │ │ + mov r3, r7 │ │ │ │ │ + bl 2b44 │ │ │ │ │ R_ARM_CALL fftwf_mpi_plan_guru_dft │ │ │ │ │ mov r4, r0 │ │ │ │ │ mov r0, r9 │ │ │ │ │ bl 0 │ │ │ │ │ R_ARM_CALL fftwf_ifree │ │ │ │ │ mov r0, r4 │ │ │ │ │ add sp, sp, #16 │ │ │ │ │ - pop {r4, r5, r6, r7, r8, r9, sl, pc} │ │ │ │ │ + ldrd r4, [sp] │ │ │ │ │ + ldrd r6, [sp, #8] │ │ │ │ │ + ldrd r8, [sp, #16] │ │ │ │ │ + ldr sl, [sp, #24] │ │ │ │ │ + add sp, sp, #28 │ │ │ │ │ + pop {pc} @ (ldr pc, [sp], #4) │ │ │ │ │ mov r3, #0 │ │ │ │ │ str r3, [r9, #4] │ │ │ │ │ str r3, [r9, #8] │ │ │ │ │ - b 2b7c │ │ │ │ │ + b 2e5c │ │ │ │ │ │ │ │ │ │ -00002bd0 : │ │ │ │ │ +00002ec4 : │ │ │ │ │ fftwf_mpi_plan_dft_1d(): │ │ │ │ │ - push {r4, r5, r6, r7, r8, r9, lr} │ │ │ │ │ + strd r4, [sp, #-28]! @ 0xffffffe4 │ │ │ │ │ mov r5, r0 │ │ │ │ │ - sub sp, sp, #28 │ │ │ │ │ mov r0, #12 │ │ │ │ │ + strd r6, [sp, #8] │ │ │ │ │ mov r6, r3 │ │ │ │ │ mov r7, r1 │ │ │ │ │ + strd r8, [sp, #16] │ │ │ │ │ mov r8, r2 │ │ │ │ │ + ldr r9, [pc, #340] @ 3040 │ │ │ │ │ + str lr, [sp, #24] │ │ │ │ │ + sub sp, sp, #28 │ │ │ │ │ bl 0 │ │ │ │ │ R_ARM_CALL fftwf_malloc_plain │ │ │ │ │ - ldr r9, [pc, #312] @ 2d30 │ │ │ │ │ mov r3, #0 │ │ │ │ │ + mov r4, r0 │ │ │ │ │ + str r5, [r0] │ │ │ │ │ add r9, pc, r9 │ │ │ │ │ str r3, [r0, #4] │ │ │ │ │ str r3, [r0, #8] │ │ │ │ │ ldr r3, [r9] │ │ │ │ │ - mov r4, r0 │ │ │ │ │ cmp r3, #0 │ │ │ │ │ - str r5, [r0] │ │ │ │ │ - beq 2cc8 │ │ │ │ │ + beq 2fd8 │ │ │ │ │ cmp r5, #0 │ │ │ │ │ - ble 2cb0 │ │ │ │ │ + ble 2fb0 │ │ │ │ │ add r1, sp, #20 │ │ │ │ │ mov r0, r6 │ │ │ │ │ bl 0 │ │ │ │ │ R_ARM_CALL MPI_Comm_size │ │ │ │ │ ldr r1, [sp, #20] │ │ │ │ │ mov r0, r4 │ │ │ │ │ - bl f2c │ │ │ │ │ + bl 102c │ │ │ │ │ mov r1, #0 │ │ │ │ │ mov r5, r0 │ │ │ │ │ bl 0 │ │ │ │ │ R_ARM_CALL fftwf_mpi_num_blocks_total │ │ │ │ │ ldr r3, [sp, #20] │ │ │ │ │ cmp r0, r3 │ │ │ │ │ - bgt 2ca8 │ │ │ │ │ + bgt 2fa8 │ │ │ │ │ mov r1, #1 │ │ │ │ │ mov r0, r5 │ │ │ │ │ bl 0 │ │ │ │ │ R_ARM_CALL fftwf_mpi_num_blocks_total │ │ │ │ │ ldr r3, [sp, #20] │ │ │ │ │ cmp r0, r3 │ │ │ │ │ - bgt 2ca8 │ │ │ │ │ + bgt 2fa8 │ │ │ │ │ ldr r3, [sp, #60] @ 0x3c │ │ │ │ │ mov r2, r7 │ │ │ │ │ + mov r1, #1 │ │ │ │ │ + mov r0, r5 │ │ │ │ │ + str r6, [sp] │ │ │ │ │ lsr r3, r3, #27 │ │ │ │ │ str r3, [sp, #8] │ │ │ │ │ ldr r3, [sp, #56] @ 0x38 │ │ │ │ │ - mov r1, #1 │ │ │ │ │ - mov r0, r5 │ │ │ │ │ str r3, [sp, #4] │ │ │ │ │ - str r6, [sp] │ │ │ │ │ mov r3, r8 │ │ │ │ │ bl 0 │ │ │ │ │ R_ARM_CALL fftwf_mpi_mkproblem_dft_d │ │ │ │ │ mov r2, r0 │ │ │ │ │ ldrd r0, [sp, #56] @ 0x38 │ │ │ │ │ bl 0 │ │ │ │ │ R_ARM_CALL fftwf_mkapiplan │ │ │ │ │ mov r5, r0 │ │ │ │ │ - b 2cb4 │ │ │ │ │ + b 2fb4 │ │ │ │ │ mov r0, r5 │ │ │ │ │ bl 0 │ │ │ │ │ R_ARM_CALL fftwf_mpi_dtensor_destroy │ │ │ │ │ mov r5, #0 │ │ │ │ │ mov r0, r4 │ │ │ │ │ bl 0 │ │ │ │ │ R_ARM_CALL fftwf_ifree │ │ │ │ │ mov r0, r5 │ │ │ │ │ add sp, sp, #28 │ │ │ │ │ - pop {r4, r5, r6, r7, r8, r9, pc} │ │ │ │ │ + ldrd r4, [sp] │ │ │ │ │ + ldrd r6, [sp, #8] │ │ │ │ │ + ldrd r8, [sp, #16] │ │ │ │ │ + add sp, sp, #24 │ │ │ │ │ + pop {pc} @ (ldr pc, [sp], #4) │ │ │ │ │ bl 0 │ │ │ │ │ R_ARM_CALL fftwf_the_planner │ │ │ │ │ - ldr r2, [pc, #96] @ 2d34 │ │ │ │ │ + ldr r2, [pc, #96] @ 3044 │ │ │ │ │ add r2, pc, r2 │ │ │ │ │ str r2, [r0, #8] │ │ │ │ │ - ldr r2, [pc, #88] @ 2d38 │ │ │ │ │ + ldr r2, [pc, #88] @ 3048 │ │ │ │ │ add r2, pc, r2 │ │ │ │ │ str r2, [r0, #12] │ │ │ │ │ - ldr r2, [pc, #80] @ 2d3c │ │ │ │ │ + ldr r2, [pc, #80] @ 304c │ │ │ │ │ add r2, pc, r2 │ │ │ │ │ str r2, [r0, #16] │ │ │ │ │ - ldr r2, [pc, #72] @ 2d40 │ │ │ │ │ + ldr r2, [pc, #72] @ 3050 │ │ │ │ │ add r2, pc, r2 │ │ │ │ │ str r2, [r0, #20] │ │ │ │ │ bl 0 │ │ │ │ │ R_ARM_CALL fftwf_mpi_conf_standard │ │ │ │ │ mov r3, #1 │ │ │ │ │ str r3, [r9] │ │ │ │ │ ldr r3, [r4] │ │ │ │ │ cmp r3, #0 │ │ │ │ │ - ble 2cb0 │ │ │ │ │ + ble 2fb0 │ │ │ │ │ ldr r3, [r4, #4] │ │ │ │ │ cmp r3, #0 │ │ │ │ │ - blt 2cb0 │ │ │ │ │ + blt 2fb0 │ │ │ │ │ ldr r3, [r4, #8] │ │ │ │ │ cmp r3, #0 │ │ │ │ │ - bge 2c20 │ │ │ │ │ - b 2cb0 │ │ │ │ │ - .word 0x00000130 │ │ │ │ │ + bge 2f20 │ │ │ │ │ + b 2fb0 │ │ │ │ │ + .word 0x00000138 │ │ │ │ │ R_ARM_REL32 .bss │ │ │ │ │ - .word 0xffffd55c │ │ │ │ │ - .word 0xffffd3f8 │ │ │ │ │ - .word 0xffffd388 │ │ │ │ │ - .word 0xffffd304 │ │ │ │ │ + .word 0xffffd270 │ │ │ │ │ + .word 0xffffd0e8 │ │ │ │ │ + .word 0xffffd084 │ │ │ │ │ + .word 0xffffcff4 │ │ │ │ │ │ │ │ │ │ -00002d44 : │ │ │ │ │ +00003054 : │ │ │ │ │ fftwf_mpi_plan_dft_2d(): │ │ │ │ │ - push {r4, r5, r6, r7, r8, r9, lr} │ │ │ │ │ + strd r4, [sp, #-28]! @ 0xffffffe4 │ │ │ │ │ mov r5, r0 │ │ │ │ │ - sub sp, sp, #28 │ │ │ │ │ mov r0, #24 │ │ │ │ │ + strd r6, [sp, #8] │ │ │ │ │ mov r6, r1 │ │ │ │ │ - ldr r7, [sp, #64] @ 0x40 │ │ │ │ │ + strd r8, [sp, #16] │ │ │ │ │ mov r8, r2 │ │ │ │ │ mov r9, r3 │ │ │ │ │ + str lr, [sp, #24] │ │ │ │ │ + sub sp, sp, #28 │ │ │ │ │ + ldr r7, [sp, #64] @ 0x40 │ │ │ │ │ bl 0 │ │ │ │ │ R_ARM_CALL fftwf_malloc_plain │ │ │ │ │ - tst r7, #536870912 @ 0x20000000 │ │ │ │ │ - mov r3, #0 │ │ │ │ │ mov r4, r0 │ │ │ │ │ - str r5, [r0, #8] │ │ │ │ │ str r5, [r0, #4] │ │ │ │ │ + mov r3, #0 │ │ │ │ │ + str r5, [r0, #8] │ │ │ │ │ str r5, [r0], #12 │ │ │ │ │ - str r6, [r4, #20] │ │ │ │ │ - str r6, [r4, #16] │ │ │ │ │ str r6, [r4, #12] │ │ │ │ │ - ldr r6, [pc, #352] @ 2ef4 │ │ │ │ │ + tst r7, #536870912 @ 0x20000000 │ │ │ │ │ + str r6, [r4, #16] │ │ │ │ │ moveq r2, r4 │ │ │ │ │ movne r2, r0 │ │ │ │ │ + str r6, [r4, #20] │ │ │ │ │ tst r7, #1073741824 @ 0x40000000 │ │ │ │ │ + ldr r6, [pc, #356] @ 3220 │ │ │ │ │ moveq r0, r4 │ │ │ │ │ - add r6, pc, r6 │ │ │ │ │ str r3, [r2, #4] │ │ │ │ │ str r3, [r0, #8] │ │ │ │ │ + add r6, pc, r6 │ │ │ │ │ ldr r3, [r6] │ │ │ │ │ cmp r3, #0 │ │ │ │ │ - beq 2eac │ │ │ │ │ + beq 31d8 │ │ │ │ │ cmp r5, #0 │ │ │ │ │ - ble 2e94 │ │ │ │ │ + ble 31b0 │ │ │ │ │ ldr r3, [r4, #4] │ │ │ │ │ cmp r3, #0 │ │ │ │ │ - blt 2e94 │ │ │ │ │ + blt 31b0 │ │ │ │ │ ldr r3, [r4, #8] │ │ │ │ │ cmp r3, #0 │ │ │ │ │ - blt 2e94 │ │ │ │ │ + blt 31b0 │ │ │ │ │ ldr r3, [r4, #12] │ │ │ │ │ cmp r3, #0 │ │ │ │ │ - ble 2e94 │ │ │ │ │ + ble 31b0 │ │ │ │ │ ldr r3, [r4, #16] │ │ │ │ │ cmp r3, #0 │ │ │ │ │ - blt 2e94 │ │ │ │ │ + blt 31b0 │ │ │ │ │ ldr r3, [r4, #20] │ │ │ │ │ cmp r3, #0 │ │ │ │ │ - blt 2e94 │ │ │ │ │ - add r1, sp, #20 │ │ │ │ │ + blt 31b0 │ │ │ │ │ ldr r0, [sp, #56] @ 0x38 │ │ │ │ │ + add r1, sp, #20 │ │ │ │ │ bl 0 │ │ │ │ │ R_ARM_CALL MPI_Comm_size │ │ │ │ │ ldr r1, [sp, #20] │ │ │ │ │ mov r2, #0 │ │ │ │ │ mov r0, r4 │ │ │ │ │ - bl 9ec │ │ │ │ │ + bl a90 │ │ │ │ │ mov r1, #0 │ │ │ │ │ mov r5, r0 │ │ │ │ │ bl 0 │ │ │ │ │ R_ARM_CALL fftwf_mpi_num_blocks_total │ │ │ │ │ ldr r3, [sp, #20] │ │ │ │ │ cmp r0, r3 │ │ │ │ │ - bgt 2e8c │ │ │ │ │ + bgt 31a8 │ │ │ │ │ mov r1, #1 │ │ │ │ │ mov r0, r5 │ │ │ │ │ bl 0 │ │ │ │ │ R_ARM_CALL fftwf_mpi_num_blocks_total │ │ │ │ │ ldr r3, [sp, #20] │ │ │ │ │ cmp r0, r3 │ │ │ │ │ - bgt 2e8c │ │ │ │ │ + bgt 31a8 │ │ │ │ │ lsr r3, r7, #27 │ │ │ │ │ + mov r2, r8 │ │ │ │ │ + mov r1, #1 │ │ │ │ │ + mov r0, r5 │ │ │ │ │ str r3, [sp, #8] │ │ │ │ │ ldr r3, [sp, #60] @ 0x3c │ │ │ │ │ str r3, [sp, #4] │ │ │ │ │ ldr r3, [sp, #56] @ 0x38 │ │ │ │ │ - mov r2, r8 │ │ │ │ │ - mov r1, #1 │ │ │ │ │ - mov r0, r5 │ │ │ │ │ str r3, [sp] │ │ │ │ │ mov r3, r9 │ │ │ │ │ bl 0 │ │ │ │ │ R_ARM_CALL fftwf_mpi_mkproblem_dft_d │ │ │ │ │ - mov r1, r7 │ │ │ │ │ mov r2, r0 │ │ │ │ │ ldr r0, [sp, #60] @ 0x3c │ │ │ │ │ + mov r1, r7 │ │ │ │ │ bl 0 │ │ │ │ │ R_ARM_CALL fftwf_mkapiplan │ │ │ │ │ mov r5, r0 │ │ │ │ │ - b 2e98 │ │ │ │ │ + b 31b4 │ │ │ │ │ mov r0, r5 │ │ │ │ │ bl 0 │ │ │ │ │ R_ARM_CALL fftwf_mpi_dtensor_destroy │ │ │ │ │ mov r5, #0 │ │ │ │ │ mov r0, r4 │ │ │ │ │ bl 0 │ │ │ │ │ R_ARM_CALL fftwf_ifree │ │ │ │ │ mov r0, r5 │ │ │ │ │ add sp, sp, #28 │ │ │ │ │ - pop {r4, r5, r6, r7, r8, r9, pc} │ │ │ │ │ + ldrd r4, [sp] │ │ │ │ │ + ldrd r6, [sp, #8] │ │ │ │ │ + ldrd r8, [sp, #16] │ │ │ │ │ + add sp, sp, #24 │ │ │ │ │ + pop {pc} @ (ldr pc, [sp], #4) │ │ │ │ │ bl 0 │ │ │ │ │ R_ARM_CALL fftwf_the_planner │ │ │ │ │ - ldr r2, [pc, #64] @ 2ef8 │ │ │ │ │ + ldr r2, [pc, #64] @ 3224 │ │ │ │ │ add r2, pc, r2 │ │ │ │ │ str r2, [r0, #8] │ │ │ │ │ - ldr r2, [pc, #56] @ 2efc │ │ │ │ │ + ldr r2, [pc, #56] @ 3228 │ │ │ │ │ add r2, pc, r2 │ │ │ │ │ str r2, [r0, #12] │ │ │ │ │ - ldr r2, [pc, #48] @ 2f00 │ │ │ │ │ + ldr r2, [pc, #48] @ 322c │ │ │ │ │ add r2, pc, r2 │ │ │ │ │ str r2, [r0, #16] │ │ │ │ │ - ldr r2, [pc, #40] @ 2f04 │ │ │ │ │ + ldr r2, [pc, #40] @ 3230 │ │ │ │ │ add r2, pc, r2 │ │ │ │ │ str r2, [r0, #20] │ │ │ │ │ bl 0 │ │ │ │ │ R_ARM_CALL fftwf_mpi_conf_standard │ │ │ │ │ mov r3, #1 │ │ │ │ │ ldr r5, [r4] │ │ │ │ │ str r3, [r6] │ │ │ │ │ - b 2db8 │ │ │ │ │ - .word 0x0000014c │ │ │ │ │ + b 30d4 │ │ │ │ │ + .word 0x00000154 │ │ │ │ │ R_ARM_REL32 .bss │ │ │ │ │ - .word 0xffffd378 │ │ │ │ │ - .word 0xffffd214 │ │ │ │ │ - .word 0xffffd1a4 │ │ │ │ │ - .word 0xffffd120 │ │ │ │ │ + .word 0xffffd070 │ │ │ │ │ + .word 0xffffcee8 │ │ │ │ │ + .word 0xffffce84 │ │ │ │ │ + .word 0xffffcdf4 │ │ │ │ │ │ │ │ │ │ -00002f08 : │ │ │ │ │ +00003234 : │ │ │ │ │ fftwf_mpi_plan_dft_3d(): │ │ │ │ │ - push {r4, r5, r6, r7, r8, r9, lr} │ │ │ │ │ + strd r4, [sp, #-28]! @ 0xffffffe4 │ │ │ │ │ + mov r5, r2 │ │ │ │ │ + strd r6, [sp, #8] │ │ │ │ │ mov r7, r0 │ │ │ │ │ - sub sp, sp, #28 │ │ │ │ │ mov r0, #36 @ 0x24 │ │ │ │ │ - mov r5, r2 │ │ │ │ │ + strd r8, [sp, #16] │ │ │ │ │ mov r6, r1 │ │ │ │ │ - ldr r8, [sp, #68] @ 0x44 │ │ │ │ │ mov r9, r3 │ │ │ │ │ + str lr, [sp, #24] │ │ │ │ │ + sub sp, sp, #28 │ │ │ │ │ + ldr r8, [sp, #68] @ 0x44 │ │ │ │ │ bl 0 │ │ │ │ │ R_ARM_CALL fftwf_malloc_plain │ │ │ │ │ - tst r8, #536870912 @ 0x20000000 │ │ │ │ │ - mov r3, #0 │ │ │ │ │ mov ip, r0 │ │ │ │ │ - str r7, [r0, #8] │ │ │ │ │ str r7, [r0, #4] │ │ │ │ │ + mov r3, #0 │ │ │ │ │ + str r7, [r0, #8] │ │ │ │ │ + mov r4, r0 │ │ │ │ │ str r7, [ip], #12 │ │ │ │ │ - str r5, [r0, #32] │ │ │ │ │ - str r5, [r0, #28] │ │ │ │ │ + tst r8, #536870912 @ 0x20000000 │ │ │ │ │ + str r6, [r0, #12] │ │ │ │ │ str r5, [r0, #24] │ │ │ │ │ - ldr r5, [pc, #404] @ 30ec │ │ │ │ │ moveq r2, r0 │ │ │ │ │ movne r2, ip │ │ │ │ │ + str r5, [r0, #28] │ │ │ │ │ tst r8, #1073741824 @ 0x40000000 │ │ │ │ │ + str r5, [r0, #32] │ │ │ │ │ moveq ip, r0 │ │ │ │ │ - add r5, pc, r5 │ │ │ │ │ - str r6, [r0, #20] │ │ │ │ │ + ldr r5, [pc, #396] @ 3434 │ │ │ │ │ str r6, [r0, #16] │ │ │ │ │ - str r6, [r0, #12] │ │ │ │ │ + str r6, [r0, #20] │ │ │ │ │ str r3, [r2, #4] │ │ │ │ │ str r3, [ip, #8] │ │ │ │ │ + add r5, pc, r5 │ │ │ │ │ ldr r3, [r5] │ │ │ │ │ - mov r4, r0 │ │ │ │ │ cmp r3, #0 │ │ │ │ │ - beq 30a8 │ │ │ │ │ + beq 33f0 │ │ │ │ │ ldr r3, [r4] │ │ │ │ │ cmp r3, #0 │ │ │ │ │ - ble 3090 │ │ │ │ │ + ble 33c8 │ │ │ │ │ ldr r3, [r4, #4] │ │ │ │ │ cmp r3, #0 │ │ │ │ │ - blt 3090 │ │ │ │ │ + blt 33c8 │ │ │ │ │ ldr r3, [r4, #8] │ │ │ │ │ cmp r3, #0 │ │ │ │ │ - blt 3090 │ │ │ │ │ + blt 33c8 │ │ │ │ │ ldr r3, [r4, #12] │ │ │ │ │ cmp r3, #0 │ │ │ │ │ - ble 3090 │ │ │ │ │ + ble 33c8 │ │ │ │ │ ldr r3, [r4, #16] │ │ │ │ │ cmp r3, #0 │ │ │ │ │ - blt 3090 │ │ │ │ │ + blt 33c8 │ │ │ │ │ ldr r3, [r4, #20] │ │ │ │ │ cmp r3, #0 │ │ │ │ │ - blt 3090 │ │ │ │ │ + blt 33c8 │ │ │ │ │ ldr r3, [r4, #24] │ │ │ │ │ cmp r3, #0 │ │ │ │ │ - ble 3090 │ │ │ │ │ + ble 33c8 │ │ │ │ │ ldr r3, [r4, #28] │ │ │ │ │ cmp r3, #0 │ │ │ │ │ - blt 3090 │ │ │ │ │ + blt 33c8 │ │ │ │ │ ldr r3, [r4, #32] │ │ │ │ │ cmp r3, #0 │ │ │ │ │ - blt 3090 │ │ │ │ │ - add r1, sp, #20 │ │ │ │ │ + blt 33c8 │ │ │ │ │ ldr r0, [sp, #60] @ 0x3c │ │ │ │ │ + add r1, sp, #20 │ │ │ │ │ bl 0 │ │ │ │ │ R_ARM_CALL MPI_Comm_size │ │ │ │ │ ldr r1, [sp, #20] │ │ │ │ │ mov r2, #0 │ │ │ │ │ mov r0, r4 │ │ │ │ │ - bl 3a8 │ │ │ │ │ + bl 3f0 │ │ │ │ │ mov r1, #0 │ │ │ │ │ mov r5, r0 │ │ │ │ │ bl 0 │ │ │ │ │ R_ARM_CALL fftwf_mpi_num_blocks_total │ │ │ │ │ ldr r3, [sp, #20] │ │ │ │ │ cmp r0, r3 │ │ │ │ │ - bgt 3088 │ │ │ │ │ + bgt 33c0 │ │ │ │ │ mov r1, #1 │ │ │ │ │ mov r0, r5 │ │ │ │ │ bl 0 │ │ │ │ │ R_ARM_CALL fftwf_mpi_num_blocks_total │ │ │ │ │ ldr r3, [sp, #20] │ │ │ │ │ cmp r0, r3 │ │ │ │ │ - bgt 3088 │ │ │ │ │ + bgt 33c0 │ │ │ │ │ lsr r3, r8, #27 │ │ │ │ │ + mov r2, r9 │ │ │ │ │ + mov r1, #1 │ │ │ │ │ + mov r0, r5 │ │ │ │ │ str r3, [sp, #8] │ │ │ │ │ ldr r3, [sp, #64] @ 0x40 │ │ │ │ │ str r3, [sp, #4] │ │ │ │ │ ldr r3, [sp, #60] @ 0x3c │ │ │ │ │ - mov r2, r9 │ │ │ │ │ - mov r1, #1 │ │ │ │ │ - mov r0, r5 │ │ │ │ │ str r3, [sp] │ │ │ │ │ ldr r3, [sp, #56] @ 0x38 │ │ │ │ │ bl 0 │ │ │ │ │ R_ARM_CALL fftwf_mpi_mkproblem_dft_d │ │ │ │ │ - mov r1, r8 │ │ │ │ │ mov r2, r0 │ │ │ │ │ ldr r0, [sp, #64] @ 0x40 │ │ │ │ │ + mov r1, r8 │ │ │ │ │ bl 0 │ │ │ │ │ R_ARM_CALL fftwf_mkapiplan │ │ │ │ │ mov r5, r0 │ │ │ │ │ - b 3094 │ │ │ │ │ + b 33cc │ │ │ │ │ mov r0, r5 │ │ │ │ │ bl 0 │ │ │ │ │ R_ARM_CALL fftwf_mpi_dtensor_destroy │ │ │ │ │ mov r5, #0 │ │ │ │ │ mov r0, r4 │ │ │ │ │ bl 0 │ │ │ │ │ R_ARM_CALL fftwf_ifree │ │ │ │ │ mov r0, r5 │ │ │ │ │ add sp, sp, #28 │ │ │ │ │ - pop {r4, r5, r6, r7, r8, r9, pc} │ │ │ │ │ + ldrd r4, [sp] │ │ │ │ │ + ldrd r6, [sp, #8] │ │ │ │ │ + ldrd r8, [sp, #16] │ │ │ │ │ + add sp, sp, #24 │ │ │ │ │ + pop {pc} @ (ldr pc, [sp], #4) │ │ │ │ │ bl 0 │ │ │ │ │ R_ARM_CALL fftwf_the_planner │ │ │ │ │ - ldr r2, [pc, #60] @ 30f0 │ │ │ │ │ + ldr r2, [pc, #60] @ 3438 │ │ │ │ │ add r2, pc, r2 │ │ │ │ │ str r2, [r0, #8] │ │ │ │ │ - ldr r2, [pc, #52] @ 30f4 │ │ │ │ │ + ldr r2, [pc, #52] @ 343c │ │ │ │ │ add r2, pc, r2 │ │ │ │ │ str r2, [r0, #12] │ │ │ │ │ - ldr r2, [pc, #44] @ 30f8 │ │ │ │ │ + ldr r2, [pc, #44] @ 3440 │ │ │ │ │ add r2, pc, r2 │ │ │ │ │ str r2, [r0, #16] │ │ │ │ │ - ldr r2, [pc, #36] @ 30fc │ │ │ │ │ + ldr r2, [pc, #36] @ 3444 │ │ │ │ │ add r2, pc, r2 │ │ │ │ │ str r2, [r0, #20] │ │ │ │ │ bl 0 │ │ │ │ │ R_ARM_CALL fftwf_mpi_conf_standard │ │ │ │ │ mov r3, #1 │ │ │ │ │ str r3, [r5] │ │ │ │ │ - b 2f8c │ │ │ │ │ - .word 0x00000180 │ │ │ │ │ + b 32c4 │ │ │ │ │ + .word 0x00000178 │ │ │ │ │ R_ARM_REL32 .bss │ │ │ │ │ - .word 0xffffd17c │ │ │ │ │ - .word 0xffffd018 │ │ │ │ │ - .word 0xffffcfa8 │ │ │ │ │ - .word 0xffffcf24 │ │ │ │ │ + .word 0xffffce58 │ │ │ │ │ + .word 0xffffccd0 │ │ │ │ │ + .word 0xffffcc6c │ │ │ │ │ + .word 0xffffcbdc │ │ │ │ │ │ │ │ │ │ -00003100 : │ │ │ │ │ +00003448 : │ │ │ │ │ fftwf_mpi_plan_guru_r2r(): │ │ │ │ │ - push {r4, r5, r6, r7, r8, lr} │ │ │ │ │ - ldr r8, [pc, #380] @ 3288 │ │ │ │ │ + strd r4, [sp, #-24]! @ 0xffffffe8 │ │ │ │ │ + mov r4, r0 │ │ │ │ │ + mov r5, r2 │ │ │ │ │ + strd r6, [sp, #8] │ │ │ │ │ mov r7, r3 │ │ │ │ │ + mov r6, r1 │ │ │ │ │ + str r8, [sp, #16] │ │ │ │ │ + ldr r8, [pc, #376] @ 35e4 │ │ │ │ │ + str lr, [sp, #20] │ │ │ │ │ + sub sp, sp, #24 │ │ │ │ │ add r8, pc, r8 │ │ │ │ │ ldr r3, [r8] │ │ │ │ │ - sub sp, sp, #24 │ │ │ │ │ cmp r3, #0 │ │ │ │ │ - mov r4, r0 │ │ │ │ │ - mov r6, r1 │ │ │ │ │ - mov r5, r2 │ │ │ │ │ - beq 3244 │ │ │ │ │ + beq 35a0 │ │ │ │ │ cmp r4, #0 │ │ │ │ │ movgt lr, #0 │ │ │ │ │ movle lr, #1 │ │ │ │ │ orrs lr, lr, r5, lsr #31 │ │ │ │ │ - bne 3234 │ │ │ │ │ + bne 3580 │ │ │ │ │ mov ip, r6 │ │ │ │ │ ldr r3, [ip] │ │ │ │ │ cmp r3, #0 │ │ │ │ │ - ble 3234 │ │ │ │ │ + ble 3580 │ │ │ │ │ ldr r3, [ip, #4] │ │ │ │ │ cmp r3, #0 │ │ │ │ │ - blt 3234 │ │ │ │ │ + blt 3580 │ │ │ │ │ ldr r3, [ip, #8] │ │ │ │ │ cmp r3, #0 │ │ │ │ │ - blt 3234 │ │ │ │ │ + blt 3580 │ │ │ │ │ add lr, lr, #1 │ │ │ │ │ - cmp r4, lr │ │ │ │ │ add ip, ip, #12 │ │ │ │ │ - bgt 3144 │ │ │ │ │ + cmp r4, lr │ │ │ │ │ + bgt 3498 │ │ │ │ │ ldr r1, [sp, #56] @ 0x38 │ │ │ │ │ mov r0, r4 │ │ │ │ │ bl 0 │ │ │ │ │ R_ARM_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_CALL MPI_Comm_size │ │ │ │ │ - mov r3, #0 │ │ │ │ │ ldr r2, [sp, #20] │ │ │ │ │ + mov r3, #0 │ │ │ │ │ mov r1, r6 │ │ │ │ │ mov r0, r4 │ │ │ │ │ - bl 1254 │ │ │ │ │ + bl 13a8 │ │ │ │ │ mov r1, #0 │ │ │ │ │ mov r4, r0 │ │ │ │ │ bl 0 │ │ │ │ │ R_ARM_CALL fftwf_mpi_num_blocks_total │ │ │ │ │ ldr r3, [sp, #20] │ │ │ │ │ cmp r0, r3 │ │ │ │ │ - bgt 322c │ │ │ │ │ + bgt 3578 │ │ │ │ │ mov r1, #1 │ │ │ │ │ mov r0, r4 │ │ │ │ │ bl 0 │ │ │ │ │ R_ARM_CALL fftwf_mpi_num_blocks_total │ │ │ │ │ ldr r3, [sp, #20] │ │ │ │ │ cmp r0, r3 │ │ │ │ │ - bgt 322c │ │ │ │ │ + bgt 3578 │ │ │ │ │ ldr r3, [sp, #60] @ 0x3c │ │ │ │ │ mov r2, r7 │ │ │ │ │ + mov r1, r5 │ │ │ │ │ + mov r0, r4 │ │ │ │ │ + str r8, [sp, #4] │ │ │ │ │ lsr r3, r3, #27 │ │ │ │ │ str r3, [sp, #8] │ │ │ │ │ ldr r3, [sp, #52] @ 0x34 │ │ │ │ │ - mov r1, r5 │ │ │ │ │ str r3, [sp] │ │ │ │ │ - mov r0, r4 │ │ │ │ │ ldr r3, [sp, #48] @ 0x30 │ │ │ │ │ - str r8, [sp, #4] │ │ │ │ │ bl 0 │ │ │ │ │ R_ARM_CALL fftwf_mpi_mkproblem_rdft_d │ │ │ │ │ ldr r1, [sp, #60] @ 0x3c │ │ │ │ │ mov r2, r0 │ │ │ │ │ mov r0, #0 │ │ │ │ │ bl 0 │ │ │ │ │ R_ARM_CALL fftwf_mkapiplan │ │ │ │ │ mov r4, r0 │ │ │ │ │ mov r0, r8 │ │ │ │ │ bl 0 │ │ │ │ │ R_ARM_CALL fftwf_ifree0 │ │ │ │ │ - mov r0, r4 │ │ │ │ │ - add sp, sp, #24 │ │ │ │ │ - pop {r4, r5, r6, r7, r8, pc} │ │ │ │ │ + b 3584 │ │ │ │ │ mov r0, r4 │ │ │ │ │ bl 0 │ │ │ │ │ R_ARM_CALL fftwf_mpi_dtensor_destroy │ │ │ │ │ mov r4, #0 │ │ │ │ │ mov r0, r4 │ │ │ │ │ add sp, sp, #24 │ │ │ │ │ - pop {r4, r5, r6, r7, r8, pc} │ │ │ │ │ + ldrd r4, [sp] │ │ │ │ │ + ldrd r6, [sp, #8] │ │ │ │ │ + ldr r8, [sp, #16] │ │ │ │ │ + add sp, sp, #20 │ │ │ │ │ + pop {pc} @ (ldr pc, [sp], #4) │ │ │ │ │ bl 0 │ │ │ │ │ R_ARM_CALL fftwf_the_planner │ │ │ │ │ - ldr r2, [pc, #60] @ 328c │ │ │ │ │ + ldr r2, [pc, #60] @ 35e8 │ │ │ │ │ add r2, pc, r2 │ │ │ │ │ str r2, [r0, #8] │ │ │ │ │ - ldr r2, [pc, #52] @ 3290 │ │ │ │ │ + ldr r2, [pc, #52] @ 35ec │ │ │ │ │ add r2, pc, r2 │ │ │ │ │ str r2, [r0, #12] │ │ │ │ │ - ldr r2, [pc, #44] @ 3294 │ │ │ │ │ + ldr r2, [pc, #44] @ 35f0 │ │ │ │ │ add r2, pc, r2 │ │ │ │ │ str r2, [r0, #16] │ │ │ │ │ - ldr r2, [pc, #36] @ 3298 │ │ │ │ │ + ldr r2, [pc, #36] @ 35f4 │ │ │ │ │ add r2, pc, r2 │ │ │ │ │ str r2, [r0, #20] │ │ │ │ │ bl 0 │ │ │ │ │ R_ARM_CALL fftwf_mpi_conf_standard │ │ │ │ │ mov r3, #1 │ │ │ │ │ str r3, [r8] │ │ │ │ │ - b 312c │ │ │ │ │ - .word 0x00000174 │ │ │ │ │ + b 3480 │ │ │ │ │ + .word 0x0000016c │ │ │ │ │ R_ARM_REL32 .bss │ │ │ │ │ - .word 0xffffcfe0 │ │ │ │ │ - .word 0xffffce7c │ │ │ │ │ - .word 0xffffce0c │ │ │ │ │ - .word 0xffffcd88 │ │ │ │ │ + .word 0xffffcca8 │ │ │ │ │ + .word 0xffffcb20 │ │ │ │ │ + .word 0xffffcabc │ │ │ │ │ + .word 0xffffca2c │ │ │ │ │ │ │ │ │ │ -0000329c : │ │ │ │ │ +000035f8 : │ │ │ │ │ fftwf_mpi_plan_many_r2r(): │ │ │ │ │ - push {r4, r5, r6, r7, r8, r9, lr} │ │ │ │ │ + strd r4, [sp, #-28]! @ 0xffffffe4 │ │ │ │ │ mov r5, r0 │ │ │ │ │ add r0, r0, r0, lsl #1 │ │ │ │ │ - sub sp, sp, #20 │ │ │ │ │ - lsl r0, r0, #2 │ │ │ │ │ - ldr r8, [sp, #68] @ 0x44 │ │ │ │ │ + strd r6, [sp, #8] │ │ │ │ │ mov r4, r1 │ │ │ │ │ - mov r9, r2 │ │ │ │ │ mov r7, r3 │ │ │ │ │ + lsl r0, r0, #2 │ │ │ │ │ + strd r8, [sp, #16] │ │ │ │ │ + mov r9, r2 │ │ │ │ │ + str lr, [sp, #24] │ │ │ │ │ + sub sp, sp, #20 │ │ │ │ │ + ldr r8, [sp, #68] @ 0x44 │ │ │ │ │ bl 0 │ │ │ │ │ R_ARM_CALL fftwf_malloc_plain │ │ │ │ │ cmp r5, #0 │ │ │ │ │ mov r6, r0 │ │ │ │ │ - ble 3320 │ │ │ │ │ - sub r4, r4, #4 │ │ │ │ │ - mov ip, r0 │ │ │ │ │ + ble 3684 │ │ │ │ │ add r3, r4, r5, lsl #2 │ │ │ │ │ - ldr lr, [r4, #4]! │ │ │ │ │ - str lr, [ip, #8] │ │ │ │ │ + mov ip, r0 │ │ │ │ │ + ldr lr, [r4], #4 │ │ │ │ │ cmp r4, r3 │ │ │ │ │ str lr, [ip, #4] │ │ │ │ │ + str lr, [ip, #8] │ │ │ │ │ str lr, [ip], #12 │ │ │ │ │ - bne 32dc │ │ │ │ │ + bne 3640 │ │ │ │ │ cmp r5, #1 │ │ │ │ │ - beq 3368 │ │ │ │ │ + beq 36dc │ │ │ │ │ tst r8, #536870912 @ 0x20000000 │ │ │ │ │ addne r3, r6, #12 │ │ │ │ │ moveq r3, r6 │ │ │ │ │ + ldr r2, [sp, #48] @ 0x30 │ │ │ │ │ tst r8, #1073741824 @ 0x40000000 │ │ │ │ │ str r7, [r3, #4] │ │ │ │ │ - ldr r2, [sp, #48] @ 0x30 │ │ │ │ │ addne r3, r6, #12 │ │ │ │ │ moveq r3, r6 │ │ │ │ │ str r2, [r3, #8] │ │ │ │ │ ldr r3, [sp, #64] @ 0x40 │ │ │ │ │ + mov r2, r9 │ │ │ │ │ + mov r1, r6 │ │ │ │ │ + mov r0, r5 │ │ │ │ │ str r3, [sp, #8] │ │ │ │ │ ldr r3, [sp, #60] @ 0x3c │ │ │ │ │ str r3, [sp, #4] │ │ │ │ │ ldr r3, [sp, #56] @ 0x38 │ │ │ │ │ - mov r2, r9 │ │ │ │ │ - mov r1, r6 │ │ │ │ │ + str r8, [sp, #12] │ │ │ │ │ str r3, [sp] │ │ │ │ │ - mov r0, r5 │ │ │ │ │ ldr r3, [sp, #52] @ 0x34 │ │ │ │ │ - str r8, [sp, #12] │ │ │ │ │ - bl 3100 │ │ │ │ │ + bl 3448 │ │ │ │ │ R_ARM_CALL fftwf_mpi_plan_guru_r2r │ │ │ │ │ mov r4, r0 │ │ │ │ │ mov r0, r6 │ │ │ │ │ bl 0 │ │ │ │ │ R_ARM_CALL fftwf_ifree │ │ │ │ │ mov r0, r4 │ │ │ │ │ add sp, sp, #20 │ │ │ │ │ - pop {r4, r5, r6, r7, r8, r9, pc} │ │ │ │ │ + ldrd r4, [sp] │ │ │ │ │ + ldrd r6, [sp, #8] │ │ │ │ │ + ldrd r8, [sp, #16] │ │ │ │ │ + add sp, sp, #24 │ │ │ │ │ + pop {pc} @ (ldr pc, [sp], #4) │ │ │ │ │ ldr r3, [sp, #48] @ 0x30 │ │ │ │ │ str r7, [r6, #4] │ │ │ │ │ str r3, [r6, #8] │ │ │ │ │ - b 3320 │ │ │ │ │ + b 3684 │ │ │ │ │ │ │ │ │ │ -00003378 : │ │ │ │ │ +000036ec : │ │ │ │ │ fftwf_mpi_plan_r2r(): │ │ │ │ │ - push {r4, r5, r6, r7, r8, r9, sl, lr} │ │ │ │ │ + strd r4, [sp, #-32]! @ 0xffffffe0 │ │ │ │ │ + mov r4, r1 │ │ │ │ │ + strd r6, [sp, #8] │ │ │ │ │ mov r6, r0 │ │ │ │ │ add r0, r0, r0, lsl #1 │ │ │ │ │ - sub sp, sp, #16 │ │ │ │ │ - lsl r0, r0, #2 │ │ │ │ │ - ldr r8, [sp, #56] @ 0x38 │ │ │ │ │ - mov r4, r1 │ │ │ │ │ + strd r8, [sp, #16] │ │ │ │ │ mov r7, r2 │ │ │ │ │ + lsl r0, r0, #2 │ │ │ │ │ + str sl, [sp, #24] │ │ │ │ │ mov sl, r3 │ │ │ │ │ + str lr, [sp, #28] │ │ │ │ │ + sub sp, sp, #16 │ │ │ │ │ + ldr r8, [sp, #56] @ 0x38 │ │ │ │ │ bl 0 │ │ │ │ │ R_ARM_CALL fftwf_malloc_plain │ │ │ │ │ cmp r6, #0 │ │ │ │ │ mov r9, r0 │ │ │ │ │ - ble 3400 │ │ │ │ │ - sub r4, r4, #4 │ │ │ │ │ - mov ip, r0 │ │ │ │ │ + ble 3780 │ │ │ │ │ add r5, r4, r6, lsl #2 │ │ │ │ │ - ldr lr, [r4, #4]! │ │ │ │ │ - str lr, [ip, #8] │ │ │ │ │ + mov ip, r0 │ │ │ │ │ + ldr lr, [r4], #4 │ │ │ │ │ cmp r4, r5 │ │ │ │ │ str lr, [ip, #4] │ │ │ │ │ + str lr, [ip, #8] │ │ │ │ │ str lr, [ip], #12 │ │ │ │ │ - bne 33b8 │ │ │ │ │ + bne 3738 │ │ │ │ │ cmp r6, #1 │ │ │ │ │ - beq 3444 │ │ │ │ │ + beq 37d8 │ │ │ │ │ tst r8, #536870912 @ 0x20000000 │ │ │ │ │ addne r3, r9, #12 │ │ │ │ │ moveq r3, r9 │ │ │ │ │ mov r2, #0 │ │ │ │ │ tst r8, #1073741824 @ 0x40000000 │ │ │ │ │ str r2, [r3, #4] │ │ │ │ │ addne r3, r9, #12 │ │ │ │ │ moveq r3, r9 │ │ │ │ │ mov r2, #0 │ │ │ │ │ str r2, [r3, #8] │ │ │ │ │ ldr r3, [sp, #52] @ 0x34 │ │ │ │ │ - str r3, [sp, #8] │ │ │ │ │ - ldr r3, [sp, #48] @ 0x30 │ │ │ │ │ mov r2, #1 │ │ │ │ │ mov r1, r9 │ │ │ │ │ - str r3, [sp, #4] │ │ │ │ │ mov r0, r6 │ │ │ │ │ - mov r3, r7 │ │ │ │ │ - str r8, [sp, #12] │ │ │ │ │ str sl, [sp] │ │ │ │ │ - bl 3100 │ │ │ │ │ + str r3, [sp, #8] │ │ │ │ │ + ldr r3, [sp, #48] @ 0x30 │ │ │ │ │ + str r8, [sp, #12] │ │ │ │ │ + str r3, [sp, #4] │ │ │ │ │ + mov r3, r7 │ │ │ │ │ + bl 3448 │ │ │ │ │ R_ARM_CALL fftwf_mpi_plan_guru_r2r │ │ │ │ │ mov r4, r0 │ │ │ │ │ mov r0, r9 │ │ │ │ │ bl 0 │ │ │ │ │ R_ARM_CALL fftwf_ifree │ │ │ │ │ mov r0, r4 │ │ │ │ │ add sp, sp, #16 │ │ │ │ │ - pop {r4, r5, r6, r7, r8, r9, sl, pc} │ │ │ │ │ + ldrd r4, [sp] │ │ │ │ │ + ldrd r6, [sp, #8] │ │ │ │ │ + ldrd r8, [sp, #16] │ │ │ │ │ + ldr sl, [sp, #24] │ │ │ │ │ + add sp, sp, #28 │ │ │ │ │ + pop {pc} @ (ldr pc, [sp], #4) │ │ │ │ │ mov r3, #0 │ │ │ │ │ str r3, [r9, #4] │ │ │ │ │ str r3, [r9, #8] │ │ │ │ │ - b 3400 │ │ │ │ │ + b 3780 │ │ │ │ │ │ │ │ │ │ -00003454 : │ │ │ │ │ +000037e8 : │ │ │ │ │ fftwf_mpi_plan_r2r_2d(): │ │ │ │ │ - push {r4, r5, r6, r7, r8, r9, lr} │ │ │ │ │ - sub sp, sp, #36 @ 0x24 │ │ │ │ │ - mov r9, r3 │ │ │ │ │ - ldr r3, [sp, #68] @ 0x44 │ │ │ │ │ + strd r4, [sp, #-28]! @ 0xffffffe4 │ │ │ │ │ mov r5, r0 │ │ │ │ │ - str r3, [sp, #24] │ │ │ │ │ mov r0, #24 │ │ │ │ │ - ldr r3, [sp, #72] @ 0x48 │ │ │ │ │ + strd r6, [sp, #8] │ │ │ │ │ mov r6, r1 │ │ │ │ │ - ldr r7, [sp, #76] @ 0x4c │ │ │ │ │ + strd r8, [sp, #16] │ │ │ │ │ + mov r9, r3 │ │ │ │ │ mov r8, r2 │ │ │ │ │ + str lr, [sp, #24] │ │ │ │ │ + sub sp, sp, #36 @ 0x24 │ │ │ │ │ + ldr r3, [sp, #68] @ 0x44 │ │ │ │ │ + ldr r7, [sp, #76] @ 0x4c │ │ │ │ │ + str r3, [sp, #24] │ │ │ │ │ + ldr r3, [sp, #72] @ 0x48 │ │ │ │ │ str r3, [sp, #28] │ │ │ │ │ bl 0 │ │ │ │ │ R_ARM_CALL fftwf_malloc_plain │ │ │ │ │ - tst r7, #536870912 @ 0x20000000 │ │ │ │ │ - mov r3, #0 │ │ │ │ │ mov r4, r0 │ │ │ │ │ - str r5, [r0, #8] │ │ │ │ │ str r5, [r0, #4] │ │ │ │ │ - str r5, [r0], #12 │ │ │ │ │ - str r6, [r4, #20] │ │ │ │ │ - str r6, [r4, #16] │ │ │ │ │ - str r6, [r4, #12] │ │ │ │ │ - ldr r6, [pc, #372] @ 3628 │ │ │ │ │ + tst r7, #536870912 @ 0x20000000 │ │ │ │ │ + str r5, [r0, #8] │ │ │ │ │ moveq r2, r4 │ │ │ │ │ + mov r3, #0 │ │ │ │ │ + str r5, [r0], #12 │ │ │ │ │ movne r2, r0 │ │ │ │ │ tst r7, #1073741824 @ 0x40000000 │ │ │ │ │ + str r6, [r4, #12] │ │ │ │ │ moveq r0, r4 │ │ │ │ │ - add r6, pc, r6 │ │ │ │ │ + str r6, [r4, #16] │ │ │ │ │ + str r6, [r4, #20] │ │ │ │ │ + ldr r6, [pc, #372] @ 39d8 │ │ │ │ │ str r3, [r2, #4] │ │ │ │ │ str r3, [r0, #8] │ │ │ │ │ + add r6, pc, r6 │ │ │ │ │ ldr r3, [r6] │ │ │ │ │ cmp r3, #0 │ │ │ │ │ - beq 35e0 │ │ │ │ │ + beq 3990 │ │ │ │ │ cmp r5, #0 │ │ │ │ │ - ble 35c8 │ │ │ │ │ + ble 3968 │ │ │ │ │ ldr r3, [r4, #4] │ │ │ │ │ cmp r3, #0 │ │ │ │ │ - blt 35c8 │ │ │ │ │ + blt 3968 │ │ │ │ │ ldr r3, [r4, #8] │ │ │ │ │ cmp r3, #0 │ │ │ │ │ - blt 35c8 │ │ │ │ │ + blt 3968 │ │ │ │ │ ldr r3, [r4, #12] │ │ │ │ │ cmp r3, #0 │ │ │ │ │ - ble 35c8 │ │ │ │ │ + ble 3968 │ │ │ │ │ ldr r3, [r4, #16] │ │ │ │ │ cmp r3, #0 │ │ │ │ │ - blt 35c8 │ │ │ │ │ + blt 3968 │ │ │ │ │ ldr r3, [r4, #20] │ │ │ │ │ cmp r3, #0 │ │ │ │ │ - blt 35c8 │ │ │ │ │ + blt 3968 │ │ │ │ │ add r1, sp, #24 │ │ │ │ │ mov r0, #2 │ │ │ │ │ bl 0 │ │ │ │ │ R_ARM_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_CALL MPI_Comm_size │ │ │ │ │ ldr r1, [sp, #20] │ │ │ │ │ mov r2, #0 │ │ │ │ │ mov r0, r4 │ │ │ │ │ - bl 9ec │ │ │ │ │ + bl a90 │ │ │ │ │ mov r1, #0 │ │ │ │ │ mov r6, r0 │ │ │ │ │ bl 0 │ │ │ │ │ R_ARM_CALL fftwf_mpi_num_blocks_total │ │ │ │ │ ldr r3, [sp, #20] │ │ │ │ │ cmp r0, r3 │ │ │ │ │ - bgt 35c0 │ │ │ │ │ + bgt 3960 │ │ │ │ │ mov r1, #1 │ │ │ │ │ mov r0, r6 │ │ │ │ │ bl 0 │ │ │ │ │ R_ARM_CALL fftwf_mpi_num_blocks_total │ │ │ │ │ ldr r3, [sp, #20] │ │ │ │ │ cmp r0, r3 │ │ │ │ │ - bgt 35c0 │ │ │ │ │ + bgt 3960 │ │ │ │ │ lsr r3, r7, #27 │ │ │ │ │ - str r3, [sp, #8] │ │ │ │ │ - ldr r3, [sp, #64] @ 0x40 │ │ │ │ │ mov r2, r8 │ │ │ │ │ - str r3, [sp] │ │ │ │ │ mov r1, #1 │ │ │ │ │ - mov r3, r9 │ │ │ │ │ mov r0, r6 │ │ │ │ │ str r5, [sp, #4] │ │ │ │ │ + str r3, [sp, #8] │ │ │ │ │ + ldr r3, [sp, #64] @ 0x40 │ │ │ │ │ + str r3, [sp] │ │ │ │ │ + mov r3, r9 │ │ │ │ │ bl 0 │ │ │ │ │ R_ARM_CALL fftwf_mpi_mkproblem_rdft_d │ │ │ │ │ - mov r1, r7 │ │ │ │ │ mov r2, r0 │ │ │ │ │ + mov r1, r7 │ │ │ │ │ mov r0, #0 │ │ │ │ │ bl 0 │ │ │ │ │ R_ARM_CALL fftwf_mkapiplan │ │ │ │ │ mov r6, r0 │ │ │ │ │ mov r0, r5 │ │ │ │ │ bl 0 │ │ │ │ │ R_ARM_CALL fftwf_ifree0 │ │ │ │ │ - b 35cc │ │ │ │ │ + b 396c │ │ │ │ │ mov r0, r6 │ │ │ │ │ bl 0 │ │ │ │ │ R_ARM_CALL fftwf_mpi_dtensor_destroy │ │ │ │ │ mov r6, #0 │ │ │ │ │ mov r0, r4 │ │ │ │ │ bl 0 │ │ │ │ │ R_ARM_CALL fftwf_ifree │ │ │ │ │ mov r0, r6 │ │ │ │ │ add sp, sp, #36 @ 0x24 │ │ │ │ │ - pop {r4, r5, r6, r7, r8, r9, pc} │ │ │ │ │ + ldrd r4, [sp] │ │ │ │ │ + ldrd r6, [sp, #8] │ │ │ │ │ + ldrd r8, [sp, #16] │ │ │ │ │ + add sp, sp, #24 │ │ │ │ │ + pop {pc} @ (ldr pc, [sp], #4) │ │ │ │ │ bl 0 │ │ │ │ │ R_ARM_CALL fftwf_the_planner │ │ │ │ │ - ldr r2, [pc, #64] @ 362c │ │ │ │ │ + ldr r2, [pc, #64] @ 39dc │ │ │ │ │ add r2, pc, r2 │ │ │ │ │ str r2, [r0, #8] │ │ │ │ │ - ldr r2, [pc, #56] @ 3630 │ │ │ │ │ + ldr r2, [pc, #56] @ 39e0 │ │ │ │ │ add r2, pc, r2 │ │ │ │ │ str r2, [r0, #12] │ │ │ │ │ - ldr r2, [pc, #48] @ 3634 │ │ │ │ │ + ldr r2, [pc, #48] @ 39e4 │ │ │ │ │ add r2, pc, r2 │ │ │ │ │ str r2, [r0, #16] │ │ │ │ │ - ldr r2, [pc, #40] @ 3638 │ │ │ │ │ + ldr r2, [pc, #40] @ 39e8 │ │ │ │ │ add r2, pc, r2 │ │ │ │ │ str r2, [r0, #20] │ │ │ │ │ bl 0 │ │ │ │ │ R_ARM_CALL fftwf_mpi_conf_standard │ │ │ │ │ mov r3, #1 │ │ │ │ │ ldr r5, [r4] │ │ │ │ │ str r3, [r6] │ │ │ │ │ - b 34d8 │ │ │ │ │ - .word 0x00000160 │ │ │ │ │ + b 3878 │ │ │ │ │ + .word 0x00000168 │ │ │ │ │ R_ARM_REL32 .bss │ │ │ │ │ - .word 0xffffcc44 │ │ │ │ │ - .word 0xffffcae0 │ │ │ │ │ - .word 0xffffca70 │ │ │ │ │ - .word 0xffffc9ec │ │ │ │ │ + .word 0xffffc8b8 │ │ │ │ │ + .word 0xffffc730 │ │ │ │ │ + .word 0xffffc6cc │ │ │ │ │ + .word 0xffffc63c │ │ │ │ │ │ │ │ │ │ -0000363c : │ │ │ │ │ +000039ec : │ │ │ │ │ fftwf_mpi_plan_r2r_3d(): │ │ │ │ │ - push {r4, r5, r6, r7, r8, r9, lr} │ │ │ │ │ - sub sp, sp, #44 @ 0x2c │ │ │ │ │ + strd r4, [sp, #-28]! @ 0xffffffe4 │ │ │ │ │ + mov r5, r2 │ │ │ │ │ + strd r6, [sp, #8] │ │ │ │ │ + mov r7, r0 │ │ │ │ │ + mov r0, #36 @ 0x24 │ │ │ │ │ + strd r8, [sp, #16] │ │ │ │ │ mov r9, r3 │ │ │ │ │ + mov r6, r1 │ │ │ │ │ + str lr, [sp, #24] │ │ │ │ │ + sub sp, sp, #44 @ 0x2c │ │ │ │ │ ldr r3, [sp, #80] @ 0x50 │ │ │ │ │ + ldr r8, [sp, #92] @ 0x5c │ │ │ │ │ str r3, [sp, #24] │ │ │ │ │ ldr r3, [sp, #84] @ 0x54 │ │ │ │ │ - mov r7, r0 │ │ │ │ │ str r3, [sp, #28] │ │ │ │ │ - mov r0, #36 @ 0x24 │ │ │ │ │ ldr r3, [sp, #88] @ 0x58 │ │ │ │ │ - mov r5, r2 │ │ │ │ │ - mov r6, r1 │ │ │ │ │ - ldr r8, [sp, #92] @ 0x5c │ │ │ │ │ str r3, [sp, #32] │ │ │ │ │ bl 0 │ │ │ │ │ R_ARM_CALL fftwf_malloc_plain │ │ │ │ │ - tst r8, #536870912 @ 0x20000000 │ │ │ │ │ - mov r3, #0 │ │ │ │ │ mov ip, r0 │ │ │ │ │ - str r7, [r0, #8] │ │ │ │ │ str r7, [r0, #4] │ │ │ │ │ - str r7, [ip], #12 │ │ │ │ │ - str r5, [r0, #32] │ │ │ │ │ - str r5, [r0, #28] │ │ │ │ │ - str r5, [r0, #24] │ │ │ │ │ - ldr r5, [pc, #424] @ 384c │ │ │ │ │ + tst r8, #536870912 @ 0x20000000 │ │ │ │ │ + str r7, [r0, #8] │ │ │ │ │ moveq r2, r0 │ │ │ │ │ + mov r3, #0 │ │ │ │ │ + str r7, [ip], #12 │ │ │ │ │ movne r2, ip │ │ │ │ │ tst r8, #1073741824 @ 0x40000000 │ │ │ │ │ moveq ip, r0 │ │ │ │ │ - add r5, pc, r5 │ │ │ │ │ - str r6, [r0, #20] │ │ │ │ │ - str r6, [r0, #16] │ │ │ │ │ str r6, [r0, #12] │ │ │ │ │ + mov r4, r0 │ │ │ │ │ + str r5, [r0, #24] │ │ │ │ │ + str r5, [r0, #28] │ │ │ │ │ + str r5, [r0, #32] │ │ │ │ │ + ldr r5, [pc, #416] @ 3c18 │ │ │ │ │ + str r6, [r0, #16] │ │ │ │ │ + str r6, [r0, #20] │ │ │ │ │ str r3, [r2, #4] │ │ │ │ │ str r3, [ip, #8] │ │ │ │ │ + add r5, pc, r5 │ │ │ │ │ ldr r3, [r5] │ │ │ │ │ - mov r4, r0 │ │ │ │ │ cmp r3, #0 │ │ │ │ │ - beq 3808 │ │ │ │ │ + beq 3bd4 │ │ │ │ │ ldr r3, [r4] │ │ │ │ │ cmp r3, #0 │ │ │ │ │ - ble 37f0 │ │ │ │ │ + ble 3bac │ │ │ │ │ ldr r3, [r4, #4] │ │ │ │ │ cmp r3, #0 │ │ │ │ │ - blt 37f0 │ │ │ │ │ + blt 3bac │ │ │ │ │ ldr r3, [r4, #8] │ │ │ │ │ cmp r3, #0 │ │ │ │ │ - blt 37f0 │ │ │ │ │ + blt 3bac │ │ │ │ │ ldr r3, [r4, #12] │ │ │ │ │ cmp r3, #0 │ │ │ │ │ - ble 37f0 │ │ │ │ │ + ble 3bac │ │ │ │ │ ldr r3, [r4, #16] │ │ │ │ │ cmp r3, #0 │ │ │ │ │ - blt 37f0 │ │ │ │ │ + blt 3bac │ │ │ │ │ ldr r3, [r4, #20] │ │ │ │ │ cmp r3, #0 │ │ │ │ │ - blt 37f0 │ │ │ │ │ + blt 3bac │ │ │ │ │ ldr r3, [r4, #24] │ │ │ │ │ cmp r3, #0 │ │ │ │ │ - ble 37f0 │ │ │ │ │ + ble 3bac │ │ │ │ │ ldr r3, [r4, #28] │ │ │ │ │ cmp r3, #0 │ │ │ │ │ - blt 37f0 │ │ │ │ │ + blt 3bac │ │ │ │ │ ldr r3, [r4, #32] │ │ │ │ │ cmp r3, #0 │ │ │ │ │ - blt 37f0 │ │ │ │ │ + blt 3bac │ │ │ │ │ add r1, sp, #24 │ │ │ │ │ mov r0, #3 │ │ │ │ │ bl 0 │ │ │ │ │ R_ARM_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_CALL MPI_Comm_size │ │ │ │ │ ldr r1, [sp, #20] │ │ │ │ │ mov r2, #0 │ │ │ │ │ mov r0, r4 │ │ │ │ │ - bl 3a8 │ │ │ │ │ + bl 3f0 │ │ │ │ │ mov r1, #0 │ │ │ │ │ mov r6, r0 │ │ │ │ │ bl 0 │ │ │ │ │ R_ARM_CALL fftwf_mpi_num_blocks_total │ │ │ │ │ ldr r3, [sp, #20] │ │ │ │ │ cmp r0, r3 │ │ │ │ │ - bgt 37e8 │ │ │ │ │ + bgt 3ba4 │ │ │ │ │ mov r1, #1 │ │ │ │ │ mov r0, r6 │ │ │ │ │ bl 0 │ │ │ │ │ R_ARM_CALL fftwf_mpi_num_blocks_total │ │ │ │ │ ldr r3, [sp, #20] │ │ │ │ │ cmp r0, r3 │ │ │ │ │ - bgt 37e8 │ │ │ │ │ + bgt 3ba4 │ │ │ │ │ lsr r3, r8, #27 │ │ │ │ │ - str r3, [sp, #8] │ │ │ │ │ - ldr r3, [sp, #76] @ 0x4c │ │ │ │ │ mov r2, r9 │ │ │ │ │ - str r3, [sp] │ │ │ │ │ mov r1, #1 │ │ │ │ │ - ldr r3, [sp, #72] @ 0x48 │ │ │ │ │ mov r0, r6 │ │ │ │ │ str r5, [sp, #4] │ │ │ │ │ + str r3, [sp, #8] │ │ │ │ │ + ldr r3, [sp, #76] @ 0x4c │ │ │ │ │ + str r3, [sp] │ │ │ │ │ + ldr r3, [sp, #72] @ 0x48 │ │ │ │ │ bl 0 │ │ │ │ │ R_ARM_CALL fftwf_mpi_mkproblem_rdft_d │ │ │ │ │ - mov r1, r8 │ │ │ │ │ mov r2, r0 │ │ │ │ │ + mov r1, r8 │ │ │ │ │ mov r0, #0 │ │ │ │ │ bl 0 │ │ │ │ │ R_ARM_CALL fftwf_mkapiplan │ │ │ │ │ mov r6, r0 │ │ │ │ │ mov r0, r5 │ │ │ │ │ bl 0 │ │ │ │ │ R_ARM_CALL fftwf_ifree0 │ │ │ │ │ - b 37f4 │ │ │ │ │ + b 3bb0 │ │ │ │ │ mov r0, r6 │ │ │ │ │ bl 0 │ │ │ │ │ R_ARM_CALL fftwf_mpi_dtensor_destroy │ │ │ │ │ mov r6, #0 │ │ │ │ │ mov r0, r4 │ │ │ │ │ bl 0 │ │ │ │ │ R_ARM_CALL fftwf_ifree │ │ │ │ │ mov r0, r6 │ │ │ │ │ add sp, sp, #44 @ 0x2c │ │ │ │ │ - pop {r4, r5, r6, r7, r8, r9, pc} │ │ │ │ │ + ldrd r4, [sp] │ │ │ │ │ + ldrd r6, [sp, #8] │ │ │ │ │ + ldrd r8, [sp, #16] │ │ │ │ │ + add sp, sp, #24 │ │ │ │ │ + pop {pc} @ (ldr pc, [sp], #4) │ │ │ │ │ bl 0 │ │ │ │ │ R_ARM_CALL fftwf_the_planner │ │ │ │ │ - ldr r2, [pc, #60] @ 3850 │ │ │ │ │ + ldr r2, [pc, #60] @ 3c1c │ │ │ │ │ add r2, pc, r2 │ │ │ │ │ str r2, [r0, #8] │ │ │ │ │ - ldr r2, [pc, #52] @ 3854 │ │ │ │ │ + ldr r2, [pc, #52] @ 3c20 │ │ │ │ │ add r2, pc, r2 │ │ │ │ │ str r2, [r0, #12] │ │ │ │ │ - ldr r2, [pc, #44] @ 3858 │ │ │ │ │ + ldr r2, [pc, #44] @ 3c24 │ │ │ │ │ add r2, pc, r2 │ │ │ │ │ str r2, [r0, #16] │ │ │ │ │ - ldr r2, [pc, #36] @ 385c │ │ │ │ │ + ldr r2, [pc, #36] @ 3c28 │ │ │ │ │ add r2, pc, r2 │ │ │ │ │ str r2, [r0, #20] │ │ │ │ │ bl 0 │ │ │ │ │ R_ARM_CALL fftwf_mpi_conf_standard │ │ │ │ │ mov r3, #1 │ │ │ │ │ str r3, [r5] │ │ │ │ │ - b 36d8 │ │ │ │ │ - .word 0x00000194 │ │ │ │ │ + b 3a94 │ │ │ │ │ + .word 0x0000018c │ │ │ │ │ R_ARM_REL32 .bss │ │ │ │ │ - .word 0xffffca1c │ │ │ │ │ - .word 0xffffc8b8 │ │ │ │ │ - .word 0xffffc848 │ │ │ │ │ - .word 0xffffc7c4 │ │ │ │ │ + .word 0xffffc674 │ │ │ │ │ + .word 0xffffc4ec │ │ │ │ │ + .word 0xffffc488 │ │ │ │ │ + .word 0xffffc3f8 │ │ │ │ │ │ │ │ │ │ -00003860 : │ │ │ │ │ +00003c2c : │ │ │ │ │ fftwf_mpi_plan_many_dft_r2c(): │ │ │ │ │ - push {r4, r5, r6, r7, r8, r9, lr} │ │ │ │ │ + strd r4, [sp, #-28]! @ 0xffffffe4 │ │ │ │ │ mov r5, r0 │ │ │ │ │ add r0, r0, r0, lsl #1 │ │ │ │ │ - sub sp, sp, #20 │ │ │ │ │ - lsl r0, r0, #2 │ │ │ │ │ - ldr r8, [sp, #64] @ 0x40 │ │ │ │ │ + strd r6, [sp, #8] │ │ │ │ │ mov r4, r1 │ │ │ │ │ - mov r9, r2 │ │ │ │ │ mov r7, r3 │ │ │ │ │ + lsl r0, r0, #2 │ │ │ │ │ + strd r8, [sp, #16] │ │ │ │ │ + mov r9, r2 │ │ │ │ │ + str lr, [sp, #24] │ │ │ │ │ + sub sp, sp, #20 │ │ │ │ │ + ldr r8, [sp, #64] @ 0x40 │ │ │ │ │ bl 0 │ │ │ │ │ R_ARM_CALL fftwf_malloc_plain │ │ │ │ │ cmp r5, #0 │ │ │ │ │ mov r6, r0 │ │ │ │ │ - ble 38e4 │ │ │ │ │ - sub r4, r4, #4 │ │ │ │ │ - mov ip, r0 │ │ │ │ │ + ble 3cb8 │ │ │ │ │ add r3, r4, r5, lsl #2 │ │ │ │ │ - ldr lr, [r4, #4]! │ │ │ │ │ - str lr, [ip, #8] │ │ │ │ │ + mov ip, r0 │ │ │ │ │ + ldr lr, [r4], #4 │ │ │ │ │ cmp r4, r3 │ │ │ │ │ str lr, [ip, #4] │ │ │ │ │ + str lr, [ip, #8] │ │ │ │ │ str lr, [ip], #12 │ │ │ │ │ - bne 38a0 │ │ │ │ │ + bne 3c74 │ │ │ │ │ cmp r5, #1 │ │ │ │ │ - beq 392c │ │ │ │ │ + beq 3d10 │ │ │ │ │ tst r8, #536870912 @ 0x20000000 │ │ │ │ │ addne r3, r6, #12 │ │ │ │ │ moveq r3, r6 │ │ │ │ │ + ldr r2, [sp, #48] @ 0x30 │ │ │ │ │ tst r8, #1073741824 @ 0x40000000 │ │ │ │ │ str r7, [r3, #4] │ │ │ │ │ - ldr r2, [sp, #48] @ 0x30 │ │ │ │ │ addne r3, r6, #12 │ │ │ │ │ moveq r3, r6 │ │ │ │ │ str r2, [r3, #8] │ │ │ │ │ mov r3, #0 │ │ │ │ │ + mov r2, r9 │ │ │ │ │ + mov r1, r6 │ │ │ │ │ + mov r0, r5 │ │ │ │ │ str r3, [sp, #8] │ │ │ │ │ ldr r3, [sp, #60] @ 0x3c │ │ │ │ │ str r3, [sp, #4] │ │ │ │ │ ldr r3, [sp, #56] @ 0x38 │ │ │ │ │ - mov r2, r9 │ │ │ │ │ - mov r1, r6 │ │ │ │ │ + str r8, [sp, #12] │ │ │ │ │ str r3, [sp] │ │ │ │ │ - mov r0, r5 │ │ │ │ │ ldr r3, [sp, #52] @ 0x34 │ │ │ │ │ - str r8, [sp, #12] │ │ │ │ │ - bl 2008 │ │ │ │ │ + bl 21e8 │ │ │ │ │ mov r4, r0 │ │ │ │ │ mov r0, r6 │ │ │ │ │ bl 0 │ │ │ │ │ R_ARM_CALL fftwf_ifree │ │ │ │ │ mov r0, r4 │ │ │ │ │ add sp, sp, #20 │ │ │ │ │ - pop {r4, r5, r6, r7, r8, r9, pc} │ │ │ │ │ + ldrd r4, [sp] │ │ │ │ │ + ldrd r6, [sp, #8] │ │ │ │ │ + ldrd r8, [sp, #16] │ │ │ │ │ + add sp, sp, #24 │ │ │ │ │ + pop {pc} @ (ldr pc, [sp], #4) │ │ │ │ │ ldr r3, [sp, #48] @ 0x30 │ │ │ │ │ str r7, [r6, #4] │ │ │ │ │ str r3, [r6, #8] │ │ │ │ │ - b 38e4 │ │ │ │ │ + b 3cb8 │ │ │ │ │ │ │ │ │ │ -0000393c : │ │ │ │ │ +00003d20 : │ │ │ │ │ fftwf_mpi_plan_many_dft_c2r(): │ │ │ │ │ - push {r4, r5, r6, r7, r8, r9, lr} │ │ │ │ │ + strd r4, [sp, #-28]! @ 0xffffffe4 │ │ │ │ │ mov r5, r0 │ │ │ │ │ add r0, r0, r0, lsl #1 │ │ │ │ │ - sub sp, sp, #20 │ │ │ │ │ - lsl r0, r0, #2 │ │ │ │ │ - ldr r8, [sp, #64] @ 0x40 │ │ │ │ │ + strd r6, [sp, #8] │ │ │ │ │ mov r4, r1 │ │ │ │ │ - mov r9, r2 │ │ │ │ │ mov r7, r3 │ │ │ │ │ + lsl r0, r0, #2 │ │ │ │ │ + strd r8, [sp, #16] │ │ │ │ │ + mov r9, r2 │ │ │ │ │ + str lr, [sp, #24] │ │ │ │ │ + sub sp, sp, #20 │ │ │ │ │ + ldr r8, [sp, #64] @ 0x40 │ │ │ │ │ bl 0 │ │ │ │ │ R_ARM_CALL fftwf_malloc_plain │ │ │ │ │ cmp r5, #0 │ │ │ │ │ mov r6, r0 │ │ │ │ │ - ble 39c0 │ │ │ │ │ - sub r4, r4, #4 │ │ │ │ │ - mov ip, r0 │ │ │ │ │ + ble 3dac │ │ │ │ │ add r3, r4, r5, lsl #2 │ │ │ │ │ - ldr lr, [r4, #4]! │ │ │ │ │ - str lr, [ip, #8] │ │ │ │ │ + mov ip, r0 │ │ │ │ │ + ldr lr, [r4], #4 │ │ │ │ │ cmp r4, r3 │ │ │ │ │ str lr, [ip, #4] │ │ │ │ │ + str lr, [ip, #8] │ │ │ │ │ str lr, [ip], #12 │ │ │ │ │ - bne 397c │ │ │ │ │ + bne 3d68 │ │ │ │ │ cmp r5, #1 │ │ │ │ │ - beq 3a08 │ │ │ │ │ + beq 3e04 │ │ │ │ │ tst r8, #536870912 @ 0x20000000 │ │ │ │ │ addne r3, r6, #12 │ │ │ │ │ moveq r3, r6 │ │ │ │ │ + ldr r2, [sp, #48] @ 0x30 │ │ │ │ │ tst r8, #1073741824 @ 0x40000000 │ │ │ │ │ str r7, [r3, #4] │ │ │ │ │ - ldr r2, [sp, #48] @ 0x30 │ │ │ │ │ addne r3, r6, #12 │ │ │ │ │ moveq r3, r6 │ │ │ │ │ str r2, [r3, #8] │ │ │ │ │ mov r3, #4 │ │ │ │ │ + mov r2, r9 │ │ │ │ │ + mov r1, r6 │ │ │ │ │ + mov r0, r5 │ │ │ │ │ str r3, [sp, #8] │ │ │ │ │ ldr r3, [sp, #60] @ 0x3c │ │ │ │ │ str r3, [sp, #4] │ │ │ │ │ ldr r3, [sp, #52] @ 0x34 │ │ │ │ │ - mov r2, r9 │ │ │ │ │ - mov r1, r6 │ │ │ │ │ + str r8, [sp, #12] │ │ │ │ │ str r3, [sp] │ │ │ │ │ - mov r0, r5 │ │ │ │ │ ldr r3, [sp, #56] @ 0x38 │ │ │ │ │ - str r8, [sp, #12] │ │ │ │ │ - bl 2008 │ │ │ │ │ + bl 21e8 │ │ │ │ │ mov r4, r0 │ │ │ │ │ mov r0, r6 │ │ │ │ │ bl 0 │ │ │ │ │ R_ARM_CALL fftwf_ifree │ │ │ │ │ mov r0, r4 │ │ │ │ │ add sp, sp, #20 │ │ │ │ │ - pop {r4, r5, r6, r7, r8, r9, pc} │ │ │ │ │ + ldrd r4, [sp] │ │ │ │ │ + ldrd r6, [sp, #8] │ │ │ │ │ + ldrd r8, [sp, #16] │ │ │ │ │ + add sp, sp, #24 │ │ │ │ │ + pop {pc} @ (ldr pc, [sp], #4) │ │ │ │ │ ldr r3, [sp, #48] @ 0x30 │ │ │ │ │ str r7, [r6, #4] │ │ │ │ │ str r3, [r6, #8] │ │ │ │ │ - b 39c0 │ │ │ │ │ + b 3dac │ │ │ │ │ │ │ │ │ │ -00003a18 : │ │ │ │ │ +00003e14 : │ │ │ │ │ fftwf_mpi_plan_dft_r2c(): │ │ │ │ │ - push {r4, r5, r6, r7, r8, r9, sl, lr} │ │ │ │ │ + strd r4, [sp, #-32]! @ 0xffffffe0 │ │ │ │ │ + mov r4, r1 │ │ │ │ │ + strd r6, [sp, #8] │ │ │ │ │ mov r6, r0 │ │ │ │ │ add r0, r0, r0, lsl #1 │ │ │ │ │ - sub sp, sp, #16 │ │ │ │ │ - lsl r0, r0, #2 │ │ │ │ │ - ldr r8, [sp, #52] @ 0x34 │ │ │ │ │ - mov r4, r1 │ │ │ │ │ + strd r8, [sp, #16] │ │ │ │ │ mov r7, r2 │ │ │ │ │ + lsl r0, r0, #2 │ │ │ │ │ + str sl, [sp, #24] │ │ │ │ │ mov sl, r3 │ │ │ │ │ + str lr, [sp, #28] │ │ │ │ │ + sub sp, sp, #16 │ │ │ │ │ + ldr r8, [sp, #52] @ 0x34 │ │ │ │ │ bl 0 │ │ │ │ │ R_ARM_CALL fftwf_malloc_plain │ │ │ │ │ cmp r6, #0 │ │ │ │ │ mov r9, r0 │ │ │ │ │ - ble 3aa0 │ │ │ │ │ - sub r4, r4, #4 │ │ │ │ │ - mov ip, r0 │ │ │ │ │ + ble 3ea8 │ │ │ │ │ add r5, r4, r6, lsl #2 │ │ │ │ │ - ldr lr, [r4, #4]! │ │ │ │ │ - str lr, [ip, #8] │ │ │ │ │ + mov ip, r0 │ │ │ │ │ + ldr lr, [r4], #4 │ │ │ │ │ cmp r4, r5 │ │ │ │ │ str lr, [ip, #4] │ │ │ │ │ + str lr, [ip, #8] │ │ │ │ │ str lr, [ip], #12 │ │ │ │ │ - bne 3a58 │ │ │ │ │ + bne 3e60 │ │ │ │ │ cmp r6, #1 │ │ │ │ │ - beq 3ae4 │ │ │ │ │ + beq 3f00 │ │ │ │ │ tst r8, #536870912 @ 0x20000000 │ │ │ │ │ addne r3, r9, #12 │ │ │ │ │ moveq r3, r9 │ │ │ │ │ mov r2, #0 │ │ │ │ │ tst r8, #1073741824 @ 0x40000000 │ │ │ │ │ str r2, [r3, #4] │ │ │ │ │ addne r3, r9, #12 │ │ │ │ │ moveq r3, r9 │ │ │ │ │ mov r2, #0 │ │ │ │ │ str r2, [r3, #8] │ │ │ │ │ mov r3, #0 │ │ │ │ │ - str r3, [sp, #8] │ │ │ │ │ - ldr r3, [sp, #48] @ 0x30 │ │ │ │ │ mov r2, #1 │ │ │ │ │ + str sl, [sp] │ │ │ │ │ mov r1, r9 │ │ │ │ │ - str r3, [sp, #4] │ │ │ │ │ mov r0, r6 │ │ │ │ │ + str r3, [sp, #8] │ │ │ │ │ + ldr r3, [sp, #48] @ 0x30 │ │ │ │ │ + str r3, [sp, #4] │ │ │ │ │ mov r3, r7 │ │ │ │ │ str r8, [sp, #12] │ │ │ │ │ - str sl, [sp] │ │ │ │ │ - bl 2008 │ │ │ │ │ + bl 21e8 │ │ │ │ │ mov r4, r0 │ │ │ │ │ mov r0, r9 │ │ │ │ │ bl 0 │ │ │ │ │ R_ARM_CALL fftwf_ifree │ │ │ │ │ mov r0, r4 │ │ │ │ │ add sp, sp, #16 │ │ │ │ │ - pop {r4, r5, r6, r7, r8, r9, sl, pc} │ │ │ │ │ + ldrd r4, [sp] │ │ │ │ │ + ldrd r6, [sp, #8] │ │ │ │ │ + ldrd r8, [sp, #16] │ │ │ │ │ + ldr sl, [sp, #24] │ │ │ │ │ + add sp, sp, #28 │ │ │ │ │ + pop {pc} @ (ldr pc, [sp], #4) │ │ │ │ │ mov r3, #0 │ │ │ │ │ str r3, [r9, #4] │ │ │ │ │ str r3, [r9, #8] │ │ │ │ │ - b 3aa0 │ │ │ │ │ + b 3ea8 │ │ │ │ │ │ │ │ │ │ -00003af4 : │ │ │ │ │ +00003f10 : │ │ │ │ │ fftwf_mpi_plan_dft_r2c_2d(): │ │ │ │ │ - push {r4, r5, r6, r7, r8, r9, lr} │ │ │ │ │ + strd r4, [sp, #-28]! @ 0xffffffe4 │ │ │ │ │ + mov r5, r1 │ │ │ │ │ + strd r6, [sp, #8] │ │ │ │ │ mov r6, r0 │ │ │ │ │ - sub sp, sp, #12 │ │ │ │ │ mov r0, #24 │ │ │ │ │ - mov r5, r1 │ │ │ │ │ + strd r8, [sp, #16] │ │ │ │ │ mov r7, r2 │ │ │ │ │ - ldr r9, [sp, #44] @ 0x2c │ │ │ │ │ mov r8, r3 │ │ │ │ │ + str lr, [sp, #24] │ │ │ │ │ + sub sp, sp, #12 │ │ │ │ │ + ldr r9, [sp, #44] @ 0x2c │ │ │ │ │ bl 0 │ │ │ │ │ R_ARM_CALL fftwf_malloc_plain │ │ │ │ │ - tst r9, #536870912 @ 0x20000000 │ │ │ │ │ - mov r3, #0 │ │ │ │ │ - mov r1, r7 │ │ │ │ │ mov ip, r0 │ │ │ │ │ - str r6, [r0, #8] │ │ │ │ │ str r6, [r0, #4] │ │ │ │ │ - moveq r2, r0 │ │ │ │ │ + mov r3, #0 │ │ │ │ │ + str r6, [r0, #8] │ │ │ │ │ + mov r1, r7 │ │ │ │ │ + mov r4, r0 │ │ │ │ │ str r6, [ip], #12 │ │ │ │ │ + tst r9, #536870912 @ 0x20000000 │ │ │ │ │ + str r5, [r0, #12] │ │ │ │ │ movne r2, ip │ │ │ │ │ + moveq r2, r0 │ │ │ │ │ + str r5, [r0, #16] │ │ │ │ │ tst r9, #1073741824 @ 0x40000000 │ │ │ │ │ - moveq ip, r0 │ │ │ │ │ str r5, [r0, #20] │ │ │ │ │ - str r5, [r0, #16] │ │ │ │ │ - str r5, [r0, #12] │ │ │ │ │ + moveq ip, r0 │ │ │ │ │ str r3, [r2, #4] │ │ │ │ │ - str r3, [ip, #8] │ │ │ │ │ mov r2, r8 │ │ │ │ │ + str r3, [ip, #8] │ │ │ │ │ stm sp, {r3, r9} │ │ │ │ │ ldr r3, [sp, #40] @ 0x28 │ │ │ │ │ - mov r4, r0 │ │ │ │ │ - bl 1e60 │ │ │ │ │ + bl 2024 │ │ │ │ │ mov r5, r0 │ │ │ │ │ mov r0, r4 │ │ │ │ │ bl 0 │ │ │ │ │ R_ARM_CALL fftwf_ifree │ │ │ │ │ mov r0, r5 │ │ │ │ │ add sp, sp, #12 │ │ │ │ │ - pop {r4, r5, r6, r7, r8, r9, pc} │ │ │ │ │ + ldrd r4, [sp] │ │ │ │ │ + ldrd r6, [sp, #8] │ │ │ │ │ + ldrd r8, [sp, #16] │ │ │ │ │ + add sp, sp, #24 │ │ │ │ │ + pop {pc} @ (ldr pc, [sp], #4) │ │ │ │ │ │ │ │ │ │ -00003b84 : │ │ │ │ │ +00003fbc : │ │ │ │ │ fftwf_mpi_plan_dft_r2c_3d(): │ │ │ │ │ - push {r4, r5, r6, r7, r8, r9, lr} │ │ │ │ │ + strd r4, [sp, #-28]! @ 0xffffffe4 │ │ │ │ │ + mov r5, r2 │ │ │ │ │ + strd r6, [sp, #8] │ │ │ │ │ mov r7, r0 │ │ │ │ │ - sub sp, sp, #12 │ │ │ │ │ mov r0, #36 @ 0x24 │ │ │ │ │ - mov r5, r2 │ │ │ │ │ + strd r8, [sp, #16] │ │ │ │ │ mov r6, r1 │ │ │ │ │ - ldr r9, [sp, #48] @ 0x30 │ │ │ │ │ mov r8, r3 │ │ │ │ │ + str lr, [sp, #24] │ │ │ │ │ + sub sp, sp, #12 │ │ │ │ │ + ldr r9, [sp, #48] @ 0x30 │ │ │ │ │ bl 0 │ │ │ │ │ R_ARM_CALL fftwf_malloc_plain │ │ │ │ │ - tst r9, #536870912 @ 0x20000000 │ │ │ │ │ - mov r3, #0 │ │ │ │ │ - mov r1, r8 │ │ │ │ │ mov ip, r0 │ │ │ │ │ - str r7, [r0, #8] │ │ │ │ │ str r7, [r0, #4] │ │ │ │ │ - moveq r2, r0 │ │ │ │ │ + mov r3, #0 │ │ │ │ │ + str r7, [r0, #8] │ │ │ │ │ + mov r1, r8 │ │ │ │ │ + mov r4, r0 │ │ │ │ │ str r7, [ip], #12 │ │ │ │ │ + tst r9, #536870912 @ 0x20000000 │ │ │ │ │ + str r6, [r0, #12] │ │ │ │ │ movne r2, ip │ │ │ │ │ + moveq r2, r0 │ │ │ │ │ + str r6, [r0, #16] │ │ │ │ │ tst r9, #1073741824 @ 0x40000000 │ │ │ │ │ - moveq ip, r0 │ │ │ │ │ str r6, [r0, #20] │ │ │ │ │ - str r6, [r0, #16] │ │ │ │ │ - str r6, [r0, #12] │ │ │ │ │ - str r5, [r0, #32] │ │ │ │ │ - str r5, [r0, #28] │ │ │ │ │ + moveq ip, r0 │ │ │ │ │ str r5, [r0, #24] │ │ │ │ │ + str r5, [r0, #28] │ │ │ │ │ + str r5, [r0, #32] │ │ │ │ │ str r3, [r2, #4] │ │ │ │ │ str r3, [ip, #8] │ │ │ │ │ stm sp, {r3, r9} │ │ │ │ │ ldrd r2, [sp, #40] @ 0x28 │ │ │ │ │ - mov r4, r0 │ │ │ │ │ - bl 1c94 │ │ │ │ │ + bl 1e3c │ │ │ │ │ mov r5, r0 │ │ │ │ │ mov r0, r4 │ │ │ │ │ bl 0 │ │ │ │ │ R_ARM_CALL fftwf_ifree │ │ │ │ │ mov r0, r5 │ │ │ │ │ add sp, sp, #12 │ │ │ │ │ - pop {r4, r5, r6, r7, r8, r9, pc} │ │ │ │ │ + ldrd r4, [sp] │ │ │ │ │ + ldrd r6, [sp, #8] │ │ │ │ │ + ldrd r8, [sp, #16] │ │ │ │ │ + add sp, sp, #24 │ │ │ │ │ + pop {pc} @ (ldr pc, [sp], #4) │ │ │ │ │ │ │ │ │ │ -00003c1c : │ │ │ │ │ +00004070 : │ │ │ │ │ fftwf_mpi_plan_dft_c2r(): │ │ │ │ │ - push {r4, r5, r6, r7, r8, r9, sl, lr} │ │ │ │ │ + strd r4, [sp, #-32]! @ 0xffffffe0 │ │ │ │ │ + mov r4, r1 │ │ │ │ │ + strd r6, [sp, #8] │ │ │ │ │ mov r6, r0 │ │ │ │ │ add r0, r0, r0, lsl #1 │ │ │ │ │ - sub sp, sp, #16 │ │ │ │ │ + strd r8, [sp, #16] │ │ │ │ │ + mov r9, r3 │ │ │ │ │ lsl r0, r0, #2 │ │ │ │ │ - ldr r8, [sp, #52] @ 0x34 │ │ │ │ │ - mov r4, r1 │ │ │ │ │ + str sl, [sp, #24] │ │ │ │ │ mov sl, r2 │ │ │ │ │ - mov r9, r3 │ │ │ │ │ + str lr, [sp, #28] │ │ │ │ │ + sub sp, sp, #16 │ │ │ │ │ + ldr r8, [sp, #52] @ 0x34 │ │ │ │ │ bl 0 │ │ │ │ │ R_ARM_CALL fftwf_malloc_plain │ │ │ │ │ cmp r6, #0 │ │ │ │ │ mov r7, r0 │ │ │ │ │ - ble 3ca4 │ │ │ │ │ - sub r4, r4, #4 │ │ │ │ │ - mov ip, r0 │ │ │ │ │ + ble 4104 │ │ │ │ │ add r5, r4, r6, lsl #2 │ │ │ │ │ - ldr lr, [r4, #4]! │ │ │ │ │ - str lr, [ip, #8] │ │ │ │ │ + mov ip, r0 │ │ │ │ │ + ldr lr, [r4], #4 │ │ │ │ │ cmp r4, r5 │ │ │ │ │ str lr, [ip, #4] │ │ │ │ │ + str lr, [ip, #8] │ │ │ │ │ str lr, [ip], #12 │ │ │ │ │ - bne 3c5c │ │ │ │ │ + bne 40bc │ │ │ │ │ cmp r6, #1 │ │ │ │ │ - beq 3ce8 │ │ │ │ │ + beq 415c │ │ │ │ │ tst r8, #536870912 @ 0x20000000 │ │ │ │ │ addne r3, r7, #12 │ │ │ │ │ moveq r3, r7 │ │ │ │ │ mov r2, #0 │ │ │ │ │ tst r8, #1073741824 @ 0x40000000 │ │ │ │ │ str r2, [r3, #4] │ │ │ │ │ addne r3, r7, #12 │ │ │ │ │ moveq r3, r7 │ │ │ │ │ mov r2, #0 │ │ │ │ │ str r2, [r3, #8] │ │ │ │ │ mov r3, #4 │ │ │ │ │ - str r3, [sp, #8] │ │ │ │ │ - ldr r3, [sp, #48] @ 0x30 │ │ │ │ │ mov r2, #1 │ │ │ │ │ + str sl, [sp] │ │ │ │ │ mov r1, r7 │ │ │ │ │ - str r3, [sp, #4] │ │ │ │ │ mov r0, r6 │ │ │ │ │ + str r3, [sp, #8] │ │ │ │ │ + ldr r3, [sp, #48] @ 0x30 │ │ │ │ │ + str r3, [sp, #4] │ │ │ │ │ mov r3, r9 │ │ │ │ │ str r8, [sp, #12] │ │ │ │ │ - str sl, [sp] │ │ │ │ │ - bl 2008 │ │ │ │ │ + bl 21e8 │ │ │ │ │ mov r4, r0 │ │ │ │ │ mov r0, r7 │ │ │ │ │ bl 0 │ │ │ │ │ R_ARM_CALL fftwf_ifree │ │ │ │ │ mov r0, r4 │ │ │ │ │ add sp, sp, #16 │ │ │ │ │ - pop {r4, r5, r6, r7, r8, r9, sl, pc} │ │ │ │ │ + ldrd r4, [sp] │ │ │ │ │ + ldrd r6, [sp, #8] │ │ │ │ │ + ldrd r8, [sp, #16] │ │ │ │ │ + ldr sl, [sp, #24] │ │ │ │ │ + add sp, sp, #28 │ │ │ │ │ + pop {pc} @ (ldr pc, [sp], #4) │ │ │ │ │ mov r3, #0 │ │ │ │ │ str r3, [r7, #4] │ │ │ │ │ str r3, [r7, #8] │ │ │ │ │ - b 3ca4 │ │ │ │ │ + b 4104 │ │ │ │ │ │ │ │ │ │ -00003cf8 : │ │ │ │ │ +0000416c : │ │ │ │ │ fftwf_mpi_plan_dft_c2r_2d(): │ │ │ │ │ - push {r4, r5, r6, r7, r8, r9, lr} │ │ │ │ │ + strd r4, [sp, #-28]! @ 0xffffffe4 │ │ │ │ │ + mov r5, r1 │ │ │ │ │ + strd r6, [sp, #8] │ │ │ │ │ mov r6, r0 │ │ │ │ │ - sub sp, sp, #12 │ │ │ │ │ mov r0, #24 │ │ │ │ │ - mov r5, r1 │ │ │ │ │ - ldr r9, [sp, #44] @ 0x2c │ │ │ │ │ - mov r8, r2 │ │ │ │ │ + strd r8, [sp, #16] │ │ │ │ │ mov r7, r3 │ │ │ │ │ + mov r8, r2 │ │ │ │ │ + str lr, [sp, #24] │ │ │ │ │ + sub sp, sp, #12 │ │ │ │ │ + ldr r9, [sp, #44] @ 0x2c │ │ │ │ │ bl 0 │ │ │ │ │ R_ARM_CALL fftwf_malloc_plain │ │ │ │ │ - tst r9, #536870912 @ 0x20000000 │ │ │ │ │ - mov r3, #0 │ │ │ │ │ - mov r1, r7 │ │ │ │ │ mov ip, r0 │ │ │ │ │ - str r6, [r0, #8] │ │ │ │ │ str r6, [r0, #4] │ │ │ │ │ - moveq r2, r0 │ │ │ │ │ + mov r3, #0 │ │ │ │ │ + str r6, [r0, #8] │ │ │ │ │ + mov r1, r7 │ │ │ │ │ + mov r4, r0 │ │ │ │ │ str r6, [ip], #12 │ │ │ │ │ + tst r9, #536870912 @ 0x20000000 │ │ │ │ │ + str r5, [r0, #12] │ │ │ │ │ movne r2, ip │ │ │ │ │ + moveq r2, r0 │ │ │ │ │ + str r5, [r0, #16] │ │ │ │ │ tst r9, #1073741824 @ 0x40000000 │ │ │ │ │ - moveq ip, r0 │ │ │ │ │ str r5, [r0, #20] │ │ │ │ │ - str r5, [r0, #16] │ │ │ │ │ - str r5, [r0, #12] │ │ │ │ │ + moveq ip, r0 │ │ │ │ │ str r3, [r2, #4] │ │ │ │ │ + mov r2, r8 │ │ │ │ │ str r3, [ip, #8] │ │ │ │ │ mov r3, #4 │ │ │ │ │ - mov r2, r8 │ │ │ │ │ str r3, [sp] │ │ │ │ │ - str r9, [sp, #4] │ │ │ │ │ ldr r3, [sp, #40] @ 0x28 │ │ │ │ │ - mov r4, r0 │ │ │ │ │ - bl 1e60 │ │ │ │ │ + str r9, [sp, #4] │ │ │ │ │ + bl 2024 │ │ │ │ │ mov r5, r0 │ │ │ │ │ mov r0, r4 │ │ │ │ │ bl 0 │ │ │ │ │ R_ARM_CALL fftwf_ifree │ │ │ │ │ mov r0, r5 │ │ │ │ │ add sp, sp, #12 │ │ │ │ │ - pop {r4, r5, r6, r7, r8, r9, pc} │ │ │ │ │ + ldrd r4, [sp] │ │ │ │ │ + ldrd r6, [sp, #8] │ │ │ │ │ + ldrd r8, [sp, #16] │ │ │ │ │ + add sp, sp, #24 │ │ │ │ │ + pop {pc} @ (ldr pc, [sp], #4) │ │ │ │ │ │ │ │ │ │ -00003d90 : │ │ │ │ │ +00004220 : │ │ │ │ │ fftwf_mpi_plan_dft_c2r_3d(): │ │ │ │ │ - push {r4, r5, r6, r7, r8, r9, lr} │ │ │ │ │ + strd r4, [sp, #-28]! @ 0xffffffe4 │ │ │ │ │ + mov r5, r2 │ │ │ │ │ + strd r6, [sp, #8] │ │ │ │ │ mov r7, r0 │ │ │ │ │ - sub sp, sp, #12 │ │ │ │ │ mov r0, #36 @ 0x24 │ │ │ │ │ - mov r5, r2 │ │ │ │ │ + strd r8, [sp, #16] │ │ │ │ │ mov r6, r1 │ │ │ │ │ - ldr r9, [sp, #48] @ 0x30 │ │ │ │ │ mov r8, r3 │ │ │ │ │ + str lr, [sp, #24] │ │ │ │ │ + sub sp, sp, #12 │ │ │ │ │ + ldr r9, [sp, #48] @ 0x30 │ │ │ │ │ bl 0 │ │ │ │ │ R_ARM_CALL fftwf_malloc_plain │ │ │ │ │ - tst r9, #536870912 @ 0x20000000 │ │ │ │ │ - mov r3, #0 │ │ │ │ │ - ldr r1, [sp, #40] @ 0x28 │ │ │ │ │ mov ip, r0 │ │ │ │ │ - str r7, [r0, #8] │ │ │ │ │ str r7, [r0, #4] │ │ │ │ │ - moveq r2, r0 │ │ │ │ │ + mov r3, #0 │ │ │ │ │ + str r7, [r0, #8] │ │ │ │ │ + mov r4, r0 │ │ │ │ │ str r7, [ip], #12 │ │ │ │ │ + tst r9, #536870912 @ 0x20000000 │ │ │ │ │ + str r6, [r0, #12] │ │ │ │ │ movne r2, ip │ │ │ │ │ + moveq r2, r0 │ │ │ │ │ + str r6, [r0, #16] │ │ │ │ │ tst r9, #1073741824 @ 0x40000000 │ │ │ │ │ - moveq ip, r0 │ │ │ │ │ str r6, [r0, #20] │ │ │ │ │ - str r6, [r0, #16] │ │ │ │ │ - str r6, [r0, #12] │ │ │ │ │ - str r5, [r0, #32] │ │ │ │ │ - str r5, [r0, #28] │ │ │ │ │ + moveq ip, r0 │ │ │ │ │ str r5, [r0, #24] │ │ │ │ │ + str r5, [r0, #28] │ │ │ │ │ + str r5, [r0, #32] │ │ │ │ │ str r3, [r2, #4] │ │ │ │ │ + mov r2, r8 │ │ │ │ │ str r3, [ip, #8] │ │ │ │ │ mov r3, #4 │ │ │ │ │ - mov r2, r8 │ │ │ │ │ + ldr r1, [sp, #40] @ 0x28 │ │ │ │ │ str r3, [sp] │ │ │ │ │ - str r9, [sp, #4] │ │ │ │ │ ldr r3, [sp, #44] @ 0x2c │ │ │ │ │ - mov r4, r0 │ │ │ │ │ - bl 1c94 │ │ │ │ │ + str r9, [sp, #4] │ │ │ │ │ + bl 1e3c │ │ │ │ │ mov r5, r0 │ │ │ │ │ mov r0, r4 │ │ │ │ │ bl 0 │ │ │ │ │ R_ARM_CALL fftwf_ifree │ │ │ │ │ mov r0, r5 │ │ │ │ │ add sp, sp, #12 │ │ │ │ │ - pop {r4, r5, r6, r7, r8, r9, pc} │ │ │ │ │ + ldrd r4, [sp] │ │ │ │ │ + ldrd r6, [sp, #8] │ │ │ │ │ + ldrd r8, [sp, #16] │ │ │ │ │ + add sp, sp, #24 │ │ │ │ │ + pop {pc} @ (ldr pc, [sp], #4) │ │ │ │ │ │ │ │ │ │ -00003e34 : │ │ │ │ │ +000042e0 : │ │ │ │ │ fftwf_mpi_execute_dft(): │ │ │ │ │ b 0 │ │ │ │ │ R_ARM_JUMP24 fftwf_execute_r2r │ │ │ │ │ │ │ │ │ │ -00003e38 : │ │ │ │ │ +000042e4 : │ │ │ │ │ fftwf_mpi_execute_dft_r2c(): │ │ │ │ │ b 0 │ │ │ │ │ R_ARM_JUMP24 fftwf_execute_r2r │ │ │ │ │ │ │ │ │ │ -00003e3c : │ │ │ │ │ +000042e8 : │ │ │ │ │ fftwf_mpi_execute_dft_c2r(): │ │ │ │ │ b 0 │ │ │ │ │ R_ARM_JUMP24 fftwf_execute_r2r │ │ │ │ │ │ │ │ │ │ -00003e40 : │ │ │ │ │ +000042ec : │ │ │ │ │ fftwf_mpi_execute_r2r(): │ │ │ │ │ b 0 │ │ │ │ │ R_ARM_JUMP24 fftwf_execute_r2r │ │ │ │ ├── readelf --wide --decompress --hex-dump=.rodata {} │ │ │ │ │ @@ -1,4 +1,4 @@ │ │ │ │ │ │ │ │ │ │ Hex dump of section '.rodata': │ │ │ │ │ - 0x00000000 000b000d 00050009 002f0035 00100016 ........./.5.... │ │ │ │ │ + 0x00000000 000d000f 00050009 00340039 00100016 .........4.9.... │ │ │ ├── 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: 2136 (bytes into file) │ │ │ │ │ + Start of section headers: 2376 (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 0x858: │ │ │ │ │ +There are 10 section headers, starting at offset 0x948: │ │ │ │ │ │ │ │ │ │ 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 00050c 00 AX 0 0 4 │ │ │ │ │ - [ 2] .rel.text REL 00000000 000790 000078 08 I 7 1 4 │ │ │ │ │ - [ 3] .data PROGBITS 00000000 000540 000000 00 WA 0 0 1 │ │ │ │ │ - [ 4] .bss NOBITS 00000000 000540 000000 00 WA 0 0 1 │ │ │ │ │ - [ 5] .note.GNU-stack PROGBITS 00000000 000540 000000 00 0 0 1 │ │ │ │ │ - [ 6] .ARM.attributes ARM_ATTRIBUTES 00000000 000540 00002b 00 0 0 1 │ │ │ │ │ - [ 7] .symtab SYMTAB 00000000 00056c 000100 10 8 2 4 │ │ │ │ │ - [ 8] .strtab STRTAB 00000000 00066c 000124 00 0 0 1 │ │ │ │ │ - [ 9] .shstrtab STRTAB 00000000 000808 000050 00 0 0 1 │ │ │ │ │ + [ 1] .text PROGBITS 00000000 000034 0005fc 00 AX 0 0 4 │ │ │ │ │ + [ 2] .rel.text REL 00000000 000880 000078 08 I 7 1 4 │ │ │ │ │ + [ 3] .data PROGBITS 00000000 000630 000000 00 WA 0 0 1 │ │ │ │ │ + [ 4] .bss NOBITS 00000000 000630 000000 00 WA 0 0 1 │ │ │ │ │ + [ 5] .note.GNU-stack PROGBITS 00000000 000630 000000 00 0 0 1 │ │ │ │ │ + [ 6] .ARM.attributes ARM_ATTRIBUTES 00000000 000630 00002b 00 0 0 1 │ │ │ │ │ + [ 7] .symtab SYMTAB 00000000 00065c 000100 10 8 2 4 │ │ │ │ │ + [ 8] .strtab STRTAB 00000000 00075c 000124 00 0 0 1 │ │ │ │ │ + [ 9] .shstrtab STRTAB 00000000 0008f8 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 $a │ │ │ │ │ - 2: 00000000 20 FUNC GLOBAL DEFAULT 1 fftwf_mpi_num_blocks │ │ │ │ │ + 2: 00000000 32 FUNC GLOBAL DEFAULT 1 fftwf_mpi_num_blocks │ │ │ │ │ 3: 00000000 0 NOTYPE GLOBAL DEFAULT UND __aeabi_idiv │ │ │ │ │ - 4: 00000014 68 FUNC GLOBAL DEFAULT 1 fftwf_mpi_num_blocks_ok │ │ │ │ │ + 4: 00000020 80 FUNC GLOBAL DEFAULT 1 fftwf_mpi_num_blocks_ok │ │ │ │ │ 5: 00000000 0 NOTYPE GLOBAL DEFAULT UND MPI_Comm_size │ │ │ │ │ - 6: 00000058 20 FUNC GLOBAL DEFAULT 1 fftwf_mpi_default_block │ │ │ │ │ - 7: 0000006c 36 FUNC GLOBAL DEFAULT 1 fftwf_mpi_block │ │ │ │ │ - 8: 00000090 104 FUNC GLOBAL DEFAULT 1 fftwf_mpi_num_blocks_total │ │ │ │ │ - 9: 000000f8 116 FUNC GLOBAL DEFAULT 1 fftwf_mpi_idle_process │ │ │ │ │ - 10: 0000016c 100 FUNC GLOBAL DEFAULT 1 fftwf_mpi_block_coords │ │ │ │ │ + 6: 00000070 32 FUNC GLOBAL DEFAULT 1 fftwf_mpi_default_block │ │ │ │ │ + 7: 00000090 36 FUNC GLOBAL DEFAULT 1 fftwf_mpi_block │ │ │ │ │ + 8: 000000b4 132 FUNC GLOBAL DEFAULT 1 fftwf_mpi_num_blocks_total │ │ │ │ │ + 9: 00000138 152 FUNC GLOBAL DEFAULT 1 fftwf_mpi_idle_process │ │ │ │ │ + 10: 000001d0 128 FUNC GLOBAL DEFAULT 1 fftwf_mpi_block_coords │ │ │ │ │ 11: 00000000 0 NOTYPE GLOBAL DEFAULT UND __aeabi_idivmod │ │ │ │ │ - 12: 000001d0 364 FUNC GLOBAL DEFAULT 1 fftwf_mpi_total_block │ │ │ │ │ - 13: 0000033c 120 FUNC GLOBAL DEFAULT 1 fftwf_mpi_is_local_after │ │ │ │ │ - 14: 000003b4 100 FUNC GLOBAL DEFAULT 1 fftwf_mpi_is_local │ │ │ │ │ - 15: 00000418 244 FUNC GLOBAL DEFAULT 1 fftwf_mpi_is_block1d │ │ │ │ │ + 12: 00000250 392 FUNC GLOBAL DEFAULT 1 fftwf_mpi_total_block │ │ │ │ │ + 13: 000003d8 148 FUNC GLOBAL DEFAULT 1 fftwf_mpi_is_local_after │ │ │ │ │ + 14: 0000046c 128 FUNC GLOBAL DEFAULT 1 fftwf_mpi_is_local │ │ │ │ │ + 15: 000004ec 272 FUNC GLOBAL DEFAULT 1 fftwf_mpi_is_block1d │ │ │ │ ├── readelf --wide --relocs {} │ │ │ │ │ @@ -1,18 +1,18 @@ │ │ │ │ │ │ │ │ │ │ -Relocation section '.rel.text' at offset 0x790 contains 15 entries: │ │ │ │ │ +Relocation section '.rel.text' at offset 0x880 contains 15 entries: │ │ │ │ │ Offset Info Type Sym. Value Symbol's Name │ │ │ │ │ -0000000c 0000031c R_ARM_CALL 00000000 __aeabi_idiv │ │ │ │ │ -0000002c 0000051c R_ARM_CALL 00000000 MPI_Comm_size │ │ │ │ │ -0000003c 0000031c R_ARM_CALL 00000000 __aeabi_idiv │ │ │ │ │ -00000064 0000031c R_ARM_CALL 00000000 __aeabi_idiv │ │ │ │ │ -000000d8 0000031c R_ARM_CALL 00000000 __aeabi_idiv │ │ │ │ │ -00000144 0000031c R_ARM_CALL 00000000 __aeabi_idiv │ │ │ │ │ -000001ac 0000031c R_ARM_CALL 00000000 __aeabi_idiv │ │ │ │ │ -000001b8 00000b1c R_ARM_CALL 00000000 __aeabi_idivmod │ │ │ │ │ -0000022c 0000031c R_ARM_CALL 00000000 __aeabi_idiv │ │ │ │ │ -00000290 0000031c R_ARM_CALL 00000000 __aeabi_idiv │ │ │ │ │ -0000029c 00000b1c R_ARM_CALL 00000000 __aeabi_idivmod │ │ │ │ │ -00000398 0000031c R_ARM_CALL 00000000 __aeabi_idiv │ │ │ │ │ -000003fc 0000031c R_ARM_CALL 00000000 __aeabi_idiv │ │ │ │ │ -00000464 0000031c R_ARM_CALL 00000000 __aeabi_idiv │ │ │ │ │ -000004f0 0000031c R_ARM_CALL 00000000 __aeabi_idiv │ │ │ │ │ +00000010 0000031c R_ARM_CALL 00000000 __aeabi_idiv │ │ │ │ │ +0000003c 0000051c R_ARM_CALL 00000000 MPI_Comm_size │ │ │ │ │ +0000004c 0000031c R_ARM_CALL 00000000 __aeabi_idiv │ │ │ │ │ +00000080 0000031c R_ARM_CALL 00000000 __aeabi_idiv │ │ │ │ │ +00000108 0000031c R_ARM_CALL 00000000 __aeabi_idiv │ │ │ │ │ +00000194 0000031c R_ARM_CALL 00000000 __aeabi_idiv │ │ │ │ │ +0000021c 0000031c R_ARM_CALL 00000000 __aeabi_idiv │ │ │ │ │ +00000228 00000b1c R_ARM_CALL 00000000 __aeabi_idivmod │ │ │ │ │ +000002bc 0000031c R_ARM_CALL 00000000 __aeabi_idiv │ │ │ │ │ +0000031c 0000031c R_ARM_CALL 00000000 __aeabi_idiv │ │ │ │ │ +00000328 00000b1c R_ARM_CALL 00000000 __aeabi_idivmod │ │ │ │ │ +00000440 0000031c R_ARM_CALL 00000000 __aeabi_idiv │ │ │ │ │ +000004c0 0000031c R_ARM_CALL 00000000 __aeabi_idiv │ │ │ │ │ +00000544 0000031c R_ARM_CALL 00000000 __aeabi_idiv │ │ │ │ │ +000005d0 0000031c R_ARM_CALL 00000000 __aeabi_idiv │ │ │ │ ├── objdump --line-numbers --disassemble --demangle --reloc --no-show-raw-insn --section=.text {} │ │ │ │ │ @@ -2,374 +2,434 @@ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ Disassembly of section .text: │ │ │ │ │ │ │ │ │ │ 00000000 : │ │ │ │ │ fftwf_mpi_num_blocks(): │ │ │ │ │ add r0, r0, r1 │ │ │ │ │ - push {r4, lr} │ │ │ │ │ + str r4, [sp, #-8]! │ │ │ │ │ sub r0, r0, #1 │ │ │ │ │ + str lr, [sp, #4] │ │ │ │ │ bl 0 <__aeabi_idiv> │ │ │ │ │ R_ARM_CALL __aeabi_idiv │ │ │ │ │ - pop {r4, pc} │ │ │ │ │ + ldr r4, [sp] │ │ │ │ │ + add sp, sp, #4 │ │ │ │ │ + pop {pc} @ (ldr pc, [sp], #4) │ │ │ │ │ │ │ │ │ │ -00000014 : │ │ │ │ │ +00000020 : │ │ │ │ │ fftwf_mpi_num_blocks_ok(): │ │ │ │ │ - push {r4, r5, lr} │ │ │ │ │ - sub sp, sp, #12 │ │ │ │ │ + strd r4, [sp, #-12]! │ │ │ │ │ mov r5, r1 │ │ │ │ │ mov r4, r0 │ │ │ │ │ - add r1, sp, #4 │ │ │ │ │ + str lr, [sp, #8] │ │ │ │ │ + sub sp, sp, #12 │ │ │ │ │ mov r0, r2 │ │ │ │ │ + add r1, sp, #4 │ │ │ │ │ bl 0 │ │ │ │ │ R_ARM_CALL MPI_Comm_size │ │ │ │ │ add r0, r4, r5 │ │ │ │ │ mov r1, r5 │ │ │ │ │ sub r0, r0, #1 │ │ │ │ │ bl 0 <__aeabi_idiv> │ │ │ │ │ R_ARM_CALL __aeabi_idiv │ │ │ │ │ ldr r3, [sp, #4] │ │ │ │ │ cmp r3, r0 │ │ │ │ │ movlt r0, #0 │ │ │ │ │ movge r0, #1 │ │ │ │ │ add sp, sp, #12 │ │ │ │ │ - pop {r4, r5, pc} │ │ │ │ │ + ldrd r4, [sp] │ │ │ │ │ + add sp, sp, #8 │ │ │ │ │ + pop {pc} @ (ldr pc, [sp], #4) │ │ │ │ │ │ │ │ │ │ -00000058 : │ │ │ │ │ +00000070 : │ │ │ │ │ fftwf_mpi_default_block(): │ │ │ │ │ add r0, r0, r1 │ │ │ │ │ - push {r4, lr} │ │ │ │ │ + str r4, [sp, #-8]! │ │ │ │ │ sub r0, r0, #1 │ │ │ │ │ + str lr, [sp, #4] │ │ │ │ │ bl 0 <__aeabi_idiv> │ │ │ │ │ R_ARM_CALL __aeabi_idiv │ │ │ │ │ - pop {r4, pc} │ │ │ │ │ + ldr r4, [sp] │ │ │ │ │ + add sp, sp, #4 │ │ │ │ │ + pop {pc} @ (ldr pc, [sp], #4) │ │ │ │ │ │ │ │ │ │ -0000006c : │ │ │ │ │ +00000090 : │ │ │ │ │ fftwf_mpi_block(): │ │ │ │ │ mul r2, r1, r2 │ │ │ │ │ sub r0, r0, r2 │ │ │ │ │ cmp r0, #0 │ │ │ │ │ - ble 88 │ │ │ │ │ + ble ac │ │ │ │ │ cmp r1, r0 │ │ │ │ │ movlt r0, r1 │ │ │ │ │ bx lr │ │ │ │ │ mov r0, #0 │ │ │ │ │ bx lr │ │ │ │ │ │ │ │ │ │ -00000090 : │ │ │ │ │ +000000b4 : │ │ │ │ │ fftwf_mpi_num_blocks_total(): │ │ │ │ │ - push {r4, r5, r6, r7, r8, lr} │ │ │ │ │ + strd r4, [sp, #-24]! @ 0xffffffe8 │ │ │ │ │ + strd r6, [sp, #8] │ │ │ │ │ ldr r7, [r0] │ │ │ │ │ + str r8, [sp, #16] │ │ │ │ │ + str lr, [sp, #20] │ │ │ │ │ cmn r7, #-2147483647 @ 0x80000001 │ │ │ │ │ moveq r5, #0 │ │ │ │ │ - beq e8 │ │ │ │ │ + beq 118 │ │ │ │ │ cmp r7, #0 │ │ │ │ │ - ble f0 │ │ │ │ │ + ble 130 │ │ │ │ │ add r1, r0, r1, lsl #2 │ │ │ │ │ - add r7, r7, r7, lsl #1 │ │ │ │ │ - add r8, r1, #8 │ │ │ │ │ mov r4, #0 │ │ │ │ │ mov r5, #1 │ │ │ │ │ + add r7, r7, r7, lsl #1 │ │ │ │ │ add r6, r0, #4 │ │ │ │ │ + add r8, r1, #8 │ │ │ │ │ ldr r1, [r8, r4, lsl #2] │ │ │ │ │ ldr r0, [r6, r4, lsl #2] │ │ │ │ │ add r4, r4, #3 │ │ │ │ │ add r0, r1, r0 │ │ │ │ │ sub r0, r0, #1 │ │ │ │ │ bl 0 <__aeabi_idiv> │ │ │ │ │ R_ARM_CALL __aeabi_idiv │ │ │ │ │ cmp r4, r7 │ │ │ │ │ mul r5, r0, r5 │ │ │ │ │ - bne c4 │ │ │ │ │ + bne f4 │ │ │ │ │ + ldrd r6, [sp, #8] │ │ │ │ │ mov r0, r5 │ │ │ │ │ - pop {r4, r5, r6, r7, r8, pc} │ │ │ │ │ + ldrd r4, [sp] │ │ │ │ │ + ldr r8, [sp, #16] │ │ │ │ │ + add sp, sp, #20 │ │ │ │ │ + pop {pc} @ (ldr pc, [sp], #4) │ │ │ │ │ mov r5, #1 │ │ │ │ │ - b e8 │ │ │ │ │ + b 118 │ │ │ │ │ │ │ │ │ │ -000000f8 : │ │ │ │ │ +00000138 : │ │ │ │ │ fftwf_mpi_idle_process(): │ │ │ │ │ - push {r4, r5, r6, r7, r8, r9, sl, lr} │ │ │ │ │ + strd r4, [sp, #-32]! @ 0xffffffe0 │ │ │ │ │ + strd r6, [sp, #8] │ │ │ │ │ ldr r7, [r0] │ │ │ │ │ + strd r8, [sp, #16] │ │ │ │ │ mov r8, r2 │ │ │ │ │ + str sl, [sp, #24] │ │ │ │ │ + str lr, [sp, #28] │ │ │ │ │ cmn r7, #-2147483647 @ 0x80000001 │ │ │ │ │ moveq r5, #0 │ │ │ │ │ - beq 154 │ │ │ │ │ + beq 1a4 │ │ │ │ │ cmp r7, #0 │ │ │ │ │ - ble 164 │ │ │ │ │ + ble 1c8 │ │ │ │ │ add r1, r0, r1, lsl #2 │ │ │ │ │ - add r7, r7, r7, lsl #1 │ │ │ │ │ - add r9, r1, #8 │ │ │ │ │ mov r4, #0 │ │ │ │ │ mov r5, #1 │ │ │ │ │ + add r7, r7, r7, lsl #1 │ │ │ │ │ add r6, r0, #4 │ │ │ │ │ + add r9, r1, #8 │ │ │ │ │ ldr r1, [r9, r4, lsl #2] │ │ │ │ │ ldr r0, [r6, r4, lsl #2] │ │ │ │ │ add r4, r4, #3 │ │ │ │ │ add r0, r1, r0 │ │ │ │ │ sub r0, r0, #1 │ │ │ │ │ bl 0 <__aeabi_idiv> │ │ │ │ │ R_ARM_CALL __aeabi_idiv │ │ │ │ │ cmp r4, r7 │ │ │ │ │ mul r5, r0, r5 │ │ │ │ │ - bne 130 │ │ │ │ │ + bne 180 │ │ │ │ │ + ldrd r6, [sp, #8] │ │ │ │ │ cmp r8, r5 │ │ │ │ │ movlt r0, #0 │ │ │ │ │ movge r0, #1 │ │ │ │ │ - pop {r4, r5, r6, r7, r8, r9, sl, pc} │ │ │ │ │ + ldrd r4, [sp] │ │ │ │ │ + ldrd r8, [sp, #16] │ │ │ │ │ + ldr sl, [sp, #24] │ │ │ │ │ + add sp, sp, #28 │ │ │ │ │ + pop {pc} @ (ldr pc, [sp], #4) │ │ │ │ │ mov r5, #1 │ │ │ │ │ - b 154 │ │ │ │ │ + b 1a4 │ │ │ │ │ │ │ │ │ │ -0000016c : │ │ │ │ │ +000001d0 : │ │ │ │ │ fftwf_mpi_block_coords(): │ │ │ │ │ - push {r4, r5, r6, r7, r8, lr} │ │ │ │ │ + strd r4, [sp, #-24]! @ 0xffffffe8 │ │ │ │ │ mov r5, r2 │ │ │ │ │ ldr r2, [r0] │ │ │ │ │ + strd r6, [sp, #8] │ │ │ │ │ + str r8, [sp, #16] │ │ │ │ │ + str lr, [sp, #20] │ │ │ │ │ cmp r2, #0 │ │ │ │ │ - pople {r4, r5, r6, r7, r8, pc} │ │ │ │ │ + ble 23c │ │ │ │ │ add r4, r2, r2, lsl #1 │ │ │ │ │ mov r7, r0 │ │ │ │ │ mov r8, r1 │ │ │ │ │ - add r4, r0, r4, lsl #2 │ │ │ │ │ add r6, r3, r2, lsl #2 │ │ │ │ │ + add r4, r0, r4, lsl #2 │ │ │ │ │ sub r3, r4, #4 │ │ │ │ │ - ldr r1, [r3, r8, lsl #2] │ │ │ │ │ ldr r0, [r4, #-8] │ │ │ │ │ sub r4, r4, #12 │ │ │ │ │ + ldr r1, [r3, r8, lsl #2] │ │ │ │ │ add r0, r1, r0 │ │ │ │ │ sub r0, r0, #1 │ │ │ │ │ bl 0 <__aeabi_idiv> │ │ │ │ │ R_ARM_CALL __aeabi_idiv │ │ │ │ │ mov r1, r0 │ │ │ │ │ mov r0, r5 │ │ │ │ │ bl 0 <__aeabi_idivmod> │ │ │ │ │ R_ARM_CALL __aeabi_idivmod │ │ │ │ │ cmp r7, r4 │ │ │ │ │ mov r5, r0 │ │ │ │ │ str r1, [r6, #-4]! │ │ │ │ │ - bne 194 │ │ │ │ │ - pop {r4, r5, r6, r7, r8, pc} │ │ │ │ │ + bne 204 │ │ │ │ │ + ldrd r4, [sp] │ │ │ │ │ + ldrd r6, [sp, #8] │ │ │ │ │ + ldr r8, [sp, #16] │ │ │ │ │ + add sp, sp, #20 │ │ │ │ │ + pop {pc} @ (ldr pc, [sp], #4) │ │ │ │ │ │ │ │ │ │ -000001d0 : │ │ │ │ │ +00000250 : │ │ │ │ │ fftwf_mpi_total_block(): │ │ │ │ │ - push {r4, r5, r6, r7, r8, r9, sl, fp, lr} │ │ │ │ │ + strd r4, [sp, #-36]! @ 0xffffffdc │ │ │ │ │ + mov r4, r2 │ │ │ │ │ + strd r6, [sp, #8] │ │ │ │ │ + mov r6, r1 │ │ │ │ │ + strd r8, [sp, #16] │ │ │ │ │ + strd sl, [sp, #24] │ │ │ │ │ add fp, sp, #32 │ │ │ │ │ + str lr, [sp, #32] │ │ │ │ │ sub sp, sp, #12 │ │ │ │ │ ldr r7, [r0] │ │ │ │ │ - mov r6, r1 │ │ │ │ │ - cmn r7, #-2147483647 @ 0x80000001 │ │ │ │ │ - mov r4, r2 │ │ │ │ │ str r0, [fp, #-44] @ 0xffffffd4 │ │ │ │ │ - beq 310 │ │ │ │ │ + cmn r7, #-2147483647 @ 0x80000001 │ │ │ │ │ + beq 398 │ │ │ │ │ cmp r7, #0 │ │ │ │ │ - ble 32c │ │ │ │ │ + ble 3c8 │ │ │ │ │ add r3, r7, r7, lsl #1 │ │ │ │ │ - str r3, [fp, #-40] @ 0xffffffd8 │ │ │ │ │ - add r3, r0, r1, lsl #2 │ │ │ │ │ - add r9, r3, #8 │ │ │ │ │ mov r5, #0 │ │ │ │ │ mov r8, #1 │ │ │ │ │ add sl, r0, #4 │ │ │ │ │ + str r3, [fp, #-40] @ 0xffffffd8 │ │ │ │ │ + add r3, r0, r1, lsl #2 │ │ │ │ │ + add r9, r3, #8 │ │ │ │ │ ldr r1, [r9, r5, lsl #2] │ │ │ │ │ ldr r0, [sl, r5, lsl #2] │ │ │ │ │ add r5, r5, #3 │ │ │ │ │ add r0, r1, r0 │ │ │ │ │ sub r0, r0, #1 │ │ │ │ │ bl 0 <__aeabi_idiv> │ │ │ │ │ R_ARM_CALL __aeabi_idiv │ │ │ │ │ ldr r3, [fp, #-40] @ 0xffffffd8 │ │ │ │ │ - cmp r5, r3 │ │ │ │ │ mul r8, r0, r8 │ │ │ │ │ - bne 218 │ │ │ │ │ + cmp r5, r3 │ │ │ │ │ + bne 2a8 │ │ │ │ │ cmp r4, r8 │ │ │ │ │ - bge 320 │ │ │ │ │ + bge 3a8 │ │ │ │ │ lsl r3, r7, #2 │ │ │ │ │ + sub r2, r7, #1 │ │ │ │ │ add r3, r3, #7 │ │ │ │ │ bic r3, r3, #7 │ │ │ │ │ sub sp, sp, r3 │ │ │ │ │ - sub r2, r7, #1 │ │ │ │ │ str sp, [fp, #-40] @ 0xffffffd8 │ │ │ │ │ ldr r3, [fp, #-44] @ 0xffffffd4 │ │ │ │ │ add r5, r2, r2, lsl #1 │ │ │ │ │ mov r8, r3 │ │ │ │ │ add r5, r3, r5, lsl #2 │ │ │ │ │ ldr r3, [fp, #-40] @ 0xffffffd8 │ │ │ │ │ - add r2, r2, #1 │ │ │ │ │ add sl, r3, r2, lsl #2 │ │ │ │ │ add r1, r5, #8 │ │ │ │ │ - ldr r1, [r1, r6, lsl #2] │ │ │ │ │ ldr r0, [r5, #4] │ │ │ │ │ + ldr r1, [r1, r6, lsl #2] │ │ │ │ │ add r0, r1, r0 │ │ │ │ │ sub r0, r0, #1 │ │ │ │ │ bl 0 <__aeabi_idiv> │ │ │ │ │ R_ARM_CALL __aeabi_idiv │ │ │ │ │ mov r1, r0 │ │ │ │ │ mov r0, r4 │ │ │ │ │ bl 0 <__aeabi_idivmod> │ │ │ │ │ R_ARM_CALL __aeabi_idivmod │ │ │ │ │ ldr r2, [fp, #-44] @ 0xffffffd4 │ │ │ │ │ + mov r4, r0 │ │ │ │ │ + str r1, [sl], #-4 │ │ │ │ │ cmp r5, r2 │ │ │ │ │ sub r5, r5, #12 │ │ │ │ │ - mov r4, r0 │ │ │ │ │ - str r1, [sl, #-4]! │ │ │ │ │ - bne 27c │ │ │ │ │ + bne 308 │ │ │ │ │ ldr r3, [fp, #-40] @ 0xffffffd8 │ │ │ │ │ mov r0, #1 │ │ │ │ │ - sub sl, r3, #4 │ │ │ │ │ mov ip, #0 │ │ │ │ │ + sub sl, r3, #4 │ │ │ │ │ add r3, r8, #8 │ │ │ │ │ - ldr r1, [r3, r6, lsl #2] │ │ │ │ │ ldr r2, [sl, #4]! │ │ │ │ │ + ldr r1, [r3, r6, lsl #2] │ │ │ │ │ ldr r3, [r8, #4] │ │ │ │ │ mul r2, r1, r2 │ │ │ │ │ sub r3, r3, r2 │ │ │ │ │ cmp r3, #0 │ │ │ │ │ movle r0, #0 │ │ │ │ │ - ble 2f8 │ │ │ │ │ + ble 384 │ │ │ │ │ cmp r3, r1 │ │ │ │ │ movge r3, r1 │ │ │ │ │ mul r0, r3, r0 │ │ │ │ │ add ip, ip, #1 │ │ │ │ │ - cmp r7, ip │ │ │ │ │ add r8, r8, #12 │ │ │ │ │ - bgt 2c8 │ │ │ │ │ - sub sp, fp, #32 │ │ │ │ │ - pop {r4, r5, r6, r7, r8, r9, sl, fp, pc} │ │ │ │ │ + cmp r7, ip │ │ │ │ │ + bgt 354 │ │ │ │ │ + b 3ac │ │ │ │ │ cmp r2, #0 │ │ │ │ │ mvnlt r2, #-2147483647 @ 0x80000001 │ │ │ │ │ strlt sp, [fp, #-40] @ 0xffffffd8 │ │ │ │ │ - blt 260 │ │ │ │ │ + blt 2f0 │ │ │ │ │ mov r0, #0 │ │ │ │ │ sub sp, fp, #32 │ │ │ │ │ - pop {r4, r5, r6, r7, r8, r9, sl, fp, pc} │ │ │ │ │ + ldrd r4, [sp] │ │ │ │ │ + ldrd r6, [sp, #8] │ │ │ │ │ + ldrd r8, [sp, #16] │ │ │ │ │ + ldrd sl, [sp, #24] │ │ │ │ │ + add sp, sp, #32 │ │ │ │ │ + pop {pc} @ (ldr pc, [sp], #4) │ │ │ │ │ cmp r2, #0 │ │ │ │ │ movgt r0, #0 │ │ │ │ │ movle r0, #1 │ │ │ │ │ - b 324 │ │ │ │ │ + b 3ac │ │ │ │ │ │ │ │ │ │ -0000033c : │ │ │ │ │ +000003d8 : │ │ │ │ │ fftwf_mpi_is_local_after(): │ │ │ │ │ - push {r4, r5, r6, r7, r8, lr} │ │ │ │ │ + strd r4, [sp, #-24]! @ 0xffffffe8 │ │ │ │ │ + strd r6, [sp, #8] │ │ │ │ │ ldr r6, [r1] │ │ │ │ │ + str r8, [sp, #16] │ │ │ │ │ + str lr, [sp, #20] │ │ │ │ │ cmn r6, #-2147483647 @ 0x80000001 │ │ │ │ │ - beq 3ac │ │ │ │ │ + beq 454 │ │ │ │ │ cmp r6, r0 │ │ │ │ │ - ble 3ac │ │ │ │ │ + ble 454 │ │ │ │ │ sub r6, r6, r0 │ │ │ │ │ add r0, r0, r0, lsl #1 │ │ │ │ │ + mov r4, #0 │ │ │ │ │ + add r6, r6, r6, lsl #1 │ │ │ │ │ add r7, r1, r0, lsl #2 │ │ │ │ │ add r0, r0, r2 │ │ │ │ │ add r1, r1, r0, lsl #2 │ │ │ │ │ - add r6, r6, r6, lsl #1 │ │ │ │ │ add r7, r7, #4 │ │ │ │ │ add r5, r1, #8 │ │ │ │ │ - mov r4, #0 │ │ │ │ │ - b 388 │ │ │ │ │ + b 430 │ │ │ │ │ add r4, r4, #3 │ │ │ │ │ cmp r4, r6 │ │ │ │ │ - beq 3ac │ │ │ │ │ + beq 454 │ │ │ │ │ ldr r1, [r5, r4, lsl #2] │ │ │ │ │ ldr r0, [r7, r4, lsl #2] │ │ │ │ │ add r0, r1, r0 │ │ │ │ │ sub r0, r0, #1 │ │ │ │ │ bl 0 <__aeabi_idiv> │ │ │ │ │ R_ARM_CALL __aeabi_idiv │ │ │ │ │ cmp r0, #1 │ │ │ │ │ - ble 37c │ │ │ │ │ + ble 424 │ │ │ │ │ mov r0, #0 │ │ │ │ │ - pop {r4, r5, r6, r7, r8, pc} │ │ │ │ │ + b 458 │ │ │ │ │ mov r0, #1 │ │ │ │ │ - pop {r4, r5, r6, r7, r8, pc} │ │ │ │ │ + ldrd r4, [sp] │ │ │ │ │ + ldrd r6, [sp, #8] │ │ │ │ │ + ldr r8, [sp, #16] │ │ │ │ │ + add sp, sp, #20 │ │ │ │ │ + pop {pc} @ (ldr pc, [sp], #4) │ │ │ │ │ │ │ │ │ │ -000003b4 : │ │ │ │ │ +0000046c : │ │ │ │ │ fftwf_mpi_is_local(): │ │ │ │ │ - push {r4, r5, r6, r7, r8, lr} │ │ │ │ │ + strd r4, [sp, #-24]! @ 0xffffffe8 │ │ │ │ │ + strd r6, [sp, #8] │ │ │ │ │ ldr r6, [r0] │ │ │ │ │ + str r8, [sp, #16] │ │ │ │ │ + str lr, [sp, #20] │ │ │ │ │ sub r3, r6, #1 │ │ │ │ │ cmn r3, #-2147483645 @ 0x80000003 │ │ │ │ │ - bhi 410 │ │ │ │ │ + bhi 4d4 │ │ │ │ │ add r1, r0, r1, lsl #2 │ │ │ │ │ - add r6, r6, r6, lsl #1 │ │ │ │ │ - add r7, r1, #8 │ │ │ │ │ mov r4, #0 │ │ │ │ │ add r5, r0, #4 │ │ │ │ │ - b 3ec │ │ │ │ │ + add r6, r6, r6, lsl #1 │ │ │ │ │ + add r7, r1, #8 │ │ │ │ │ + b 4b0 │ │ │ │ │ add r4, r4, #3 │ │ │ │ │ cmp r6, r4 │ │ │ │ │ - beq 410 │ │ │ │ │ + beq 4d4 │ │ │ │ │ ldr r1, [r7, r4, lsl #2] │ │ │ │ │ ldr r0, [r5, r4, lsl #2] │ │ │ │ │ add r0, r1, r0 │ │ │ │ │ sub r0, r0, #1 │ │ │ │ │ bl 0 <__aeabi_idiv> │ │ │ │ │ R_ARM_CALL __aeabi_idiv │ │ │ │ │ cmp r0, #1 │ │ │ │ │ - ble 3e0 │ │ │ │ │ + ble 4a4 │ │ │ │ │ mov r0, #0 │ │ │ │ │ - pop {r4, r5, r6, r7, r8, pc} │ │ │ │ │ + b 4d8 │ │ │ │ │ mov r0, #1 │ │ │ │ │ - pop {r4, r5, r6, r7, r8, pc} │ │ │ │ │ + ldrd r4, [sp] │ │ │ │ │ + ldrd r6, [sp, #8] │ │ │ │ │ + ldr r8, [sp, #16] │ │ │ │ │ + add sp, sp, #20 │ │ │ │ │ + pop {pc} @ (ldr pc, [sp], #4) │ │ │ │ │ │ │ │ │ │ -00000418 : │ │ │ │ │ +000004ec : │ │ │ │ │ fftwf_mpi_is_block1d(): │ │ │ │ │ - push {r4, r5, r6, r7, r8, lr} │ │ │ │ │ + strd r4, [sp, #-24]! @ 0xffffffe8 │ │ │ │ │ + strd r6, [sp, #8] │ │ │ │ │ + str r8, [sp, #16] │ │ │ │ │ ldr r8, [r0] │ │ │ │ │ + str lr, [sp, #20] │ │ │ │ │ sub r3, r8, #1 │ │ │ │ │ cmn r3, #-2147483645 @ 0x80000003 │ │ │ │ │ - bhi 4fc │ │ │ │ │ + bhi 5dc │ │ │ │ │ mov r6, r0 │ │ │ │ │ mov r7, r1 │ │ │ │ │ mov r4, r0 │ │ │ │ │ mov r5, #0 │ │ │ │ │ - b 450 │ │ │ │ │ + b 530 │ │ │ │ │ add r5, r5, #1 │ │ │ │ │ - cmp r8, r5 │ │ │ │ │ add r4, r4, #12 │ │ │ │ │ - beq 4fc │ │ │ │ │ + cmp r8, r5 │ │ │ │ │ + beq 5dc │ │ │ │ │ add r3, r4, #8 │ │ │ │ │ - ldr r1, [r3, r7, lsl #2] │ │ │ │ │ ldr r0, [r4, #4] │ │ │ │ │ + ldr r1, [r3, r7, lsl #2] │ │ │ │ │ add r0, r1, r0 │ │ │ │ │ sub r0, r0, #1 │ │ │ │ │ bl 0 <__aeabi_idiv> │ │ │ │ │ R_ARM_CALL __aeabi_idiv │ │ │ │ │ cmp r0, #1 │ │ │ │ │ - beq 440 │ │ │ │ │ + beq 520 │ │ │ │ │ cmp r5, #1 │ │ │ │ │ movle r0, #1 │ │ │ │ │ movgt r0, #0 │ │ │ │ │ cmp r8, r5 │ │ │ │ │ movle r0, #0 │ │ │ │ │ cmp r0, #0 │ │ │ │ │ - popeq {r4, r5, r6, r7, r8, pc} │ │ │ │ │ + beq 5e0 │ │ │ │ │ cmp r5, #0 │ │ │ │ │ moveq r3, #1 │ │ │ │ │ movne r3, #2 │ │ │ │ │ cmp r8, r3 │ │ │ │ │ - ble 504 │ │ │ │ │ + ble 5f4 │ │ │ │ │ sub r8, r8, r5 │ │ │ │ │ + rsb r5, r5, #0 │ │ │ │ │ add r8, r8, r8, lsl #1 │ │ │ │ │ sub r4, r8, #3 │ │ │ │ │ - rsb r8, r5, #0 │ │ │ │ │ - and r8, r8, #12 │ │ │ │ │ - add r5, r5, r5, lsl #1 │ │ │ │ │ - add r1, r5, r7 │ │ │ │ │ + and r8, r5, #12 │ │ │ │ │ + and r5, r5, #3 │ │ │ │ │ add r8, r8, #16 │ │ │ │ │ + add r1, r5, r7 │ │ │ │ │ add r8, r6, r8 │ │ │ │ │ add r6, r6, r1, lsl #2 │ │ │ │ │ - add r6, r6, #20 │ │ │ │ │ mov r5, #0 │ │ │ │ │ - b 4e0 │ │ │ │ │ + add r6, r6, #20 │ │ │ │ │ + b 5c0 │ │ │ │ │ add r5, r5, #3 │ │ │ │ │ cmp r5, r4 │ │ │ │ │ - beq 504 │ │ │ │ │ + beq 5f4 │ │ │ │ │ ldr r1, [r6, r5, lsl #2] │ │ │ │ │ ldr r0, [r8, r5, lsl #2] │ │ │ │ │ add r0, r1, r0 │ │ │ │ │ sub r0, r0, #1 │ │ │ │ │ bl 0 <__aeabi_idiv> │ │ │ │ │ R_ARM_CALL __aeabi_idiv │ │ │ │ │ cmp r0, #1 │ │ │ │ │ - ble 4d4 │ │ │ │ │ + ble 5b4 │ │ │ │ │ mov r0, #0 │ │ │ │ │ - pop {r4, r5, r6, r7, r8, pc} │ │ │ │ │ + ldrd r4, [sp] │ │ │ │ │ + ldrd r6, [sp, #8] │ │ │ │ │ + ldr r8, [sp, #16] │ │ │ │ │ + add sp, sp, #20 │ │ │ │ │ + pop {pc} @ (ldr pc, [sp], #4) │ │ │ │ │ mov r0, #1 │ │ │ │ │ - pop {r4, r5, r6, r7, r8, pc} │ │ │ │ │ + b 5e0 │ │ │ ├── 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: 632 (bytes into file) │ │ │ │ │ + Start of section headers: 660 (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 0x278: │ │ │ │ │ +There are 10 section headers, starting at offset 0x294: │ │ │ │ │ │ │ │ │ │ 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 0000cc 00 AX 0 0 4 │ │ │ │ │ - [ 2] .rel.text REL 00000000 0001f8 000030 08 I 7 1 4 │ │ │ │ │ - [ 3] .data PROGBITS 00000000 000100 000000 00 WA 0 0 1 │ │ │ │ │ - [ 4] .bss NOBITS 00000000 000100 000000 00 WA 0 0 1 │ │ │ │ │ - [ 5] .note.GNU-stack PROGBITS 00000000 000100 000000 00 0 0 1 │ │ │ │ │ - [ 6] .ARM.attributes ARM_ATTRIBUTES 00000000 000100 00002b 00 0 0 1 │ │ │ │ │ - [ 7] .symtab SYMTAB 00000000 00012c 000070 10 8 2 4 │ │ │ │ │ - [ 8] .strtab STRTAB 00000000 00019c 00005c 00 0 0 1 │ │ │ │ │ - [ 9] .shstrtab STRTAB 00000000 000228 000050 00 0 0 1 │ │ │ │ │ + [ 1] .text PROGBITS 00000000 000034 0000e8 00 AX 0 0 4 │ │ │ │ │ + [ 2] .rel.text REL 00000000 000214 000030 08 I 7 1 4 │ │ │ │ │ + [ 3] .data PROGBITS 00000000 00011c 000000 00 WA 0 0 1 │ │ │ │ │ + [ 4] .bss NOBITS 00000000 00011c 000000 00 WA 0 0 1 │ │ │ │ │ + [ 5] .note.GNU-stack PROGBITS 00000000 00011c 000000 00 0 0 1 │ │ │ │ │ + [ 6] .ARM.attributes ARM_ATTRIBUTES 00000000 00011c 00002b 00 0 0 1 │ │ │ │ │ + [ 7] .symtab SYMTAB 00000000 000148 000070 10 8 2 4 │ │ │ │ │ + [ 8] .strtab STRTAB 00000000 0001b8 00005c 00 0 0 1 │ │ │ │ │ + [ 9] .shstrtab STRTAB 00000000 000244 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 $a │ │ │ │ │ - 2: 00000000 204 FUNC GLOBAL DEFAULT 1 fftwf_mpi_choose_radix │ │ │ │ │ + 2: 00000000 232 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,9 +1,9 @@ │ │ │ │ │ │ │ │ │ │ -Relocation section '.rel.text' at offset 0x1f8 contains 6 entries: │ │ │ │ │ +Relocation section '.rel.text' at offset 0x214 contains 6 entries: │ │ │ │ │ Offset Info Type Sym. Value Symbol's Name │ │ │ │ │ -0000001c 0000031c R_ARM_CALL 00000000 __aeabi_idivmod │ │ │ │ │ -00000054 0000041c R_ARM_CALL 00000000 __aeabi_idiv │ │ │ │ │ -00000074 0000051c R_ARM_CALL 00000000 fftwf_mpi_default_block │ │ │ │ │ -00000088 0000051c R_ARM_CALL 00000000 fftwf_mpi_default_block │ │ │ │ │ -000000a4 0000061c R_ARM_CALL 00000000 fftwf_isqrt │ │ │ │ │ -000000bc 0000031c R_ARM_CALL 00000000 __aeabi_idivmod │ │ │ │ │ +0000002c 0000031c R_ARM_CALL 00000000 __aeabi_idivmod │ │ │ │ │ +00000060 0000041c R_ARM_CALL 00000000 __aeabi_idiv │ │ │ │ │ +00000080 0000051c R_ARM_CALL 00000000 fftwf_mpi_default_block │ │ │ │ │ +00000094 0000051c R_ARM_CALL 00000000 fftwf_mpi_default_block │ │ │ │ │ +000000c0 0000061c R_ARM_CALL 00000000 fftwf_isqrt │ │ │ │ │ +000000d8 0000031c R_ARM_CALL 00000000 __aeabi_idivmod │ │ │ │ ├── objdump --line-numbers --disassemble --demangle --reloc --no-show-raw-insn --section=.text {} │ │ │ │ │ @@ -1,64 +1,71 @@ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ Disassembly of section .text: │ │ │ │ │ │ │ │ │ │ 00000000 : │ │ │ │ │ fftwf_mpi_choose_radix(): │ │ │ │ │ - push {r4, r5, r6, r7, r8, lr} │ │ │ │ │ + strd r4, [sp, #-24]! @ 0xffffffe8 │ │ │ │ │ + mov r5, r0 │ │ │ │ │ + strd r6, [sp, #8] │ │ │ │ │ + mov r6, r3 │ │ │ │ │ + str r8, [sp, #16] │ │ │ │ │ + str lr, [sp, #20] │ │ │ │ │ sub sp, sp, #16 │ │ │ │ │ add ip, sp, #16 │ │ │ │ │ + ldr r8, [sp, #48] @ 0x30 │ │ │ │ │ stmdb ip, {r0, r1, r2} │ │ │ │ │ mov r1, r3 │ │ │ │ │ - mov r6, r3 │ │ │ │ │ - mov r5, r0 │ │ │ │ │ bl 0 <__aeabi_idivmod> │ │ │ │ │ R_ARM_CALL __aeabi_idivmod │ │ │ │ │ - ldr r8, [sp, #48] @ 0x30 │ │ │ │ │ - ldr r7, [sp, #52] @ 0x34 │ │ │ │ │ cmp r1, #0 │ │ │ │ │ - bne a0 │ │ │ │ │ + ldr r7, [sp, #52] @ 0x34 │ │ │ │ │ + bne bc │ │ │ │ │ cmp r0, r6 │ │ │ │ │ mov r4, r0 │ │ │ │ │ - blt a0 │ │ │ │ │ + blt bc │ │ │ │ │ cmp r4, #1 │ │ │ │ │ cmpne r4, r5 │ │ │ │ │ moveq r5, #0 │ │ │ │ │ - beq 94 │ │ │ │ │ + beq a0 │ │ │ │ │ mov r1, r4 │ │ │ │ │ mov r0, r5 │ │ │ │ │ bl 0 <__aeabi_idiv> │ │ │ │ │ R_ARM_CALL __aeabi_idiv │ │ │ │ │ ldr r2, [sp, #44] @ 0x2c │ │ │ │ │ + mov r5, r0 │ │ │ │ │ mov r1, r6 │ │ │ │ │ cmn r2, #1 │ │ │ │ │ - mov r5, r0 │ │ │ │ │ moveq r5, r4 │ │ │ │ │ moveq r4, r0 │ │ │ │ │ mov r0, r5 │ │ │ │ │ bl 0 │ │ │ │ │ R_ARM_CALL fftwf_mpi_default_block │ │ │ │ │ mov r1, r6 │ │ │ │ │ - str r0, [r8, #4] │ │ │ │ │ str r0, [r8] │ │ │ │ │ + str r0, [r8, #4] │ │ │ │ │ mov r0, r4 │ │ │ │ │ bl 0 │ │ │ │ │ R_ARM_CALL fftwf_mpi_default_block │ │ │ │ │ - str r0, [r7, #4] │ │ │ │ │ str r0, [r7] │ │ │ │ │ + str r0, [r7, #4] │ │ │ │ │ mov r0, r5 │ │ │ │ │ add sp, sp, #16 │ │ │ │ │ - pop {r4, r5, r6, r7, r8, pc} │ │ │ │ │ + ldrd r4, [sp] │ │ │ │ │ + ldrd r6, [sp, #8] │ │ │ │ │ + ldr r8, [sp, #16] │ │ │ │ │ + add sp, sp, #20 │ │ │ │ │ + pop {pc} @ (ldr pc, [sp], #4) │ │ │ │ │ mov r0, r5 │ │ │ │ │ bl 0 │ │ │ │ │ R_ARM_CALL fftwf_isqrt │ │ │ │ │ mov r4, r0 │ │ │ │ │ - b b4 │ │ │ │ │ + b d0 │ │ │ │ │ add r4, r4, #1 │ │ │ │ │ mov r1, r4 │ │ │ │ │ mov r0, r5 │ │ │ │ │ bl 0 <__aeabi_idivmod> │ │ │ │ │ R_ARM_CALL __aeabi_idivmod │ │ │ │ │ cmp r1, #0 │ │ │ │ │ - bne b0 │ │ │ │ │ - b 3c │ │ │ │ │ + bne cc │ │ │ │ │ + b 48 │ │ │ ├── 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: 2072 (bytes into file) │ │ │ │ │ + Start of section headers: 2240 (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 0x818: │ │ │ │ │ +There are 11 section headers, starting at offset 0x8c0: │ │ │ │ │ │ │ │ │ │ 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 0003f8 00 AX 0 0 4 │ │ │ │ │ - [ 2] .rel.text REL 00000000 000718 0000a0 08 I 8 1 4 │ │ │ │ │ - [ 3] .data PROGBITS 00000000 00042c 000000 00 WA 0 0 1 │ │ │ │ │ - [ 4] .bss NOBITS 00000000 00042c 000000 00 WA 0 0 1 │ │ │ │ │ - [ 5] .rodata.str1.4 PROGBITS 00000000 00042c 00002c 01 AMS 0 0 4 │ │ │ │ │ - [ 6] .note.GNU-stack PROGBITS 00000000 000458 000000 00 0 0 1 │ │ │ │ │ - [ 7] .ARM.attributes ARM_ATTRIBUTES 00000000 000458 00002b 00 0 0 1 │ │ │ │ │ - [ 8] .symtab SYMTAB 00000000 000484 000170 10 9 10 4 │ │ │ │ │ - [ 9] .strtab STRTAB 00000000 0005f4 000123 00 0 0 1 │ │ │ │ │ - [10] .shstrtab STRTAB 00000000 0007b8 00005f 00 0 0 1 │ │ │ │ │ + [ 1] .text PROGBITS 00000000 000034 000490 00 AX 0 0 4 │ │ │ │ │ + [ 2] .rel.text REL 00000000 0007b0 0000b0 08 I 8 1 4 │ │ │ │ │ + [ 3] .data PROGBITS 00000000 0004c4 000000 00 WA 0 0 1 │ │ │ │ │ + [ 4] .bss NOBITS 00000000 0004c4 000000 00 WA 0 0 1 │ │ │ │ │ + [ 5] .rodata.str1.4 PROGBITS 00000000 0004c4 00002c 01 AMS 0 0 4 │ │ │ │ │ + [ 6] .note.GNU-stack PROGBITS 00000000 0004f0 000000 00 0 0 1 │ │ │ │ │ + [ 7] .ARM.attributes ARM_ATTRIBUTES 00000000 0004f0 00002b 00 0 0 1 │ │ │ │ │ + [ 8] .symtab SYMTAB 00000000 00051c 000170 10 9 10 4 │ │ │ │ │ + [ 9] .strtab STRTAB 00000000 00068c 000123 00 0 0 1 │ │ │ │ │ + [10] .shstrtab STRTAB 00000000 000860 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: 000003e0 0 NOTYPE LOCAL DEFAULT 1 $d │ │ │ │ │ - 10: 00000000 48 FUNC GLOBAL DEFAULT 1 fftwf_mpi_mkdtensor │ │ │ │ │ + 9: 00000478 0 NOTYPE LOCAL DEFAULT 1 $d │ │ │ │ │ + 10: 00000000 84 FUNC GLOBAL DEFAULT 1 fftwf_mpi_mkdtensor │ │ │ │ │ 11: 00000000 0 NOTYPE GLOBAL DEFAULT UND fftwf_malloc_plain │ │ │ │ │ - 12: 00000030 4 FUNC GLOBAL DEFAULT 1 fftwf_mpi_dtensor_destroy │ │ │ │ │ + 12: 00000054 4 FUNC GLOBAL DEFAULT 1 fftwf_mpi_dtensor_destroy │ │ │ │ │ 13: 00000000 0 NOTYPE GLOBAL DEFAULT UND fftwf_ifree │ │ │ │ │ - 14: 00000034 100 FUNC GLOBAL DEFAULT 1 fftwf_mpi_dtensor_md5 │ │ │ │ │ + 14: 00000058 128 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: 00000098 96 FUNC GLOBAL DEFAULT 1 fftwf_mpi_dtensor_copy │ │ │ │ │ + 17: 000000d8 132 FUNC GLOBAL DEFAULT 1 fftwf_mpi_dtensor_copy │ │ │ │ │ 18: 00000000 0 NOTYPE GLOBAL DEFAULT UND memmove │ │ │ │ │ - 19: 000000f8 392 FUNC GLOBAL DEFAULT 1 fftwf_mpi_dtensor_canonical │ │ │ │ │ + 19: 0000015c 428 FUNC GLOBAL DEFAULT 1 fftwf_mpi_dtensor_canonical │ │ │ │ │ 20: 00000000 0 NOTYPE GLOBAL DEFAULT UND fftwf_mpi_num_blocks │ │ │ │ │ - 21: 00000280 100 FUNC GLOBAL DEFAULT 1 fftwf_mpi_dtensor_validp │ │ │ │ │ - 22: 000002e4 276 FUNC GLOBAL DEFAULT 1 fftwf_mpi_dtensor_print │ │ │ │ │ + 21: 00000308 100 FUNC GLOBAL DEFAULT 1 fftwf_mpi_dtensor_validp │ │ │ │ │ + 22: 0000036c 292 FUNC GLOBAL DEFAULT 1 fftwf_mpi_dtensor_print │ │ │ │ ├── readelf --wide --relocs {} │ │ │ │ │ @@ -1,23 +1,25 @@ │ │ │ │ │ │ │ │ │ │ -Relocation section '.rel.text' at offset 0x718 contains 20 entries: │ │ │ │ │ +Relocation section '.rel.text' at offset 0x7b0 contains 22 entries: │ │ │ │ │ Offset Info Type Sym. Value Symbol's Name │ │ │ │ │ -00000024 00000b1c R_ARM_CALL 00000000 fftwf_malloc_plain │ │ │ │ │ -00000030 00000d1d R_ARM_JUMP24 00000000 fftwf_ifree │ │ │ │ │ -00000044 00000f1c R_ARM_CALL 00000000 fftwf_md5int │ │ │ │ │ -00000068 0000101c R_ARM_CALL 00000000 fftwf_md5INT │ │ │ │ │ -00000074 0000101c R_ARM_CALL 00000000 fftwf_md5INT │ │ │ │ │ -00000080 0000101c R_ARM_CALL 00000000 fftwf_md5INT │ │ │ │ │ -000000c0 00000b1c R_ARM_CALL 00000000 fftwf_malloc_plain │ │ │ │ │ -000000ec 0000121c R_ARM_CALL 00000000 memmove │ │ │ │ │ -00000164 00000b1c R_ARM_CALL 00000000 fftwf_malloc_plain │ │ │ │ │ -00000198 00000b1c R_ARM_CALL 00000000 fftwf_malloc_plain │ │ │ │ │ -000001fc 0000141c R_ARM_CALL 00000000 fftwf_mpi_num_blocks │ │ │ │ │ -00000230 0000141c R_ARM_CALL 00000000 fftwf_mpi_num_blocks │ │ │ │ │ -0000025c 00000b1c R_ARM_CALL 00000000 fftwf_malloc_plain │ │ │ │ │ -0000026c 00000b1c R_ARM_CALL 00000000 fftwf_malloc_plain │ │ │ │ │ -000003e0 00000303 R_ARM_REL32 00000000 .LC0 │ │ │ │ │ -000003e4 00000603 R_ARM_REL32 0000000c .LC3 │ │ │ │ │ -000003e8 00000503 R_ARM_REL32 00000008 .LC2 │ │ │ │ │ -000003ec 00000703 R_ARM_REL32 0000001c .LC4 │ │ │ │ │ -000003f0 00000403 R_ARM_REL32 00000004 .LC1 │ │ │ │ │ -000003f4 00000803 R_ARM_REL32 00000020 .LC5 │ │ │ │ │ +00000028 00000b1c R_ARM_CALL 00000000 fftwf_malloc_plain │ │ │ │ │ +00000040 00000b1c R_ARM_CALL 00000000 fftwf_malloc_plain │ │ │ │ │ +00000054 00000d1d R_ARM_JUMP24 00000000 fftwf_ifree │ │ │ │ │ +00000074 00000f1c R_ARM_CALL 00000000 fftwf_md5int │ │ │ │ │ +0000009c 0000101c R_ARM_CALL 00000000 fftwf_md5INT │ │ │ │ │ +000000a8 0000101c R_ARM_CALL 00000000 fftwf_md5INT │ │ │ │ │ +000000b4 0000101c R_ARM_CALL 00000000 fftwf_md5INT │ │ │ │ │ +00000108 00000b1c R_ARM_CALL 00000000 fftwf_malloc_plain │ │ │ │ │ +00000134 0000121c R_ARM_CALL 00000000 memmove │ │ │ │ │ +00000150 00000b1c R_ARM_CALL 00000000 fftwf_malloc_plain │ │ │ │ │ +000001dc 00000b1c R_ARM_CALL 00000000 fftwf_malloc_plain │ │ │ │ │ +00000228 00000b1c R_ARM_CALL 00000000 fftwf_malloc_plain │ │ │ │ │ +000002a4 0000141c R_ARM_CALL 00000000 fftwf_mpi_num_blocks │ │ │ │ │ +000002c0 0000141c R_ARM_CALL 00000000 fftwf_mpi_num_blocks │ │ │ │ │ +000002e8 00000b1c R_ARM_CALL 00000000 fftwf_malloc_plain │ │ │ │ │ +000002f8 00000b1c R_ARM_CALL 00000000 fftwf_malloc_plain │ │ │ │ │ +00000478 00000303 R_ARM_REL32 00000000 .LC0 │ │ │ │ │ +0000047c 00000603 R_ARM_REL32 0000000c .LC3 │ │ │ │ │ +00000480 00000503 R_ARM_REL32 00000008 .LC2 │ │ │ │ │ +00000484 00000703 R_ARM_REL32 0000001c .LC4 │ │ │ │ │ +00000488 00000403 R_ARM_REL32 00000004 .LC1 │ │ │ │ │ +0000048c 00000803 R_ARM_REL32 00000020 .LC5 │ │ │ │ ├── objdump --line-numbers --disassemble --demangle --reloc --no-show-raw-insn --section=.text {} │ │ │ │ │ @@ -2,298 +2,338 @@ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ Disassembly of section .text: │ │ │ │ │ │ │ │ │ │ 00000000 : │ │ │ │ │ fftwf_mpi_mkdtensor(): │ │ │ │ │ sub r3, r0, #2 │ │ │ │ │ - cmn r3, #-2147483644 @ 0x80000004 │ │ │ │ │ - push {r4, lr} │ │ │ │ │ + str r4, [sp, #-8]! │ │ │ │ │ mov r4, r0 │ │ │ │ │ - subls r0, r0, #1 │ │ │ │ │ - addls r0, r0, r0, lsl #1 │ │ │ │ │ - lslls r0, r0, #2 │ │ │ │ │ - addls r0, r0, #16 │ │ │ │ │ - movhi r0, #16 │ │ │ │ │ + cmn r3, #-2147483644 @ 0x80000004 │ │ │ │ │ + str lr, [sp, #4] │ │ │ │ │ + bhi 3c │ │ │ │ │ + sub r0, r0, #1 │ │ │ │ │ + add r0, r0, r0, lsl #1 │ │ │ │ │ + lsl r0, r0, #2 │ │ │ │ │ + add r0, r0, #16 │ │ │ │ │ bl 0 │ │ │ │ │ R_ARM_CALL fftwf_malloc_plain │ │ │ │ │ str r4, [r0] │ │ │ │ │ - pop {r4, pc} │ │ │ │ │ + ldr r4, [sp] │ │ │ │ │ + add sp, sp, #4 │ │ │ │ │ + pop {pc} @ (ldr pc, [sp], #4) │ │ │ │ │ + mov r0, #16 │ │ │ │ │ + bl 0 │ │ │ │ │ + R_ARM_CALL fftwf_malloc_plain │ │ │ │ │ + str r4, [r0] │ │ │ │ │ + ldr r4, [sp] │ │ │ │ │ + add sp, sp, #4 │ │ │ │ │ + pop {pc} @ (ldr pc, [sp], #4) │ │ │ │ │ │ │ │ │ │ -00000030 : │ │ │ │ │ +00000054 : │ │ │ │ │ fftwf_mpi_dtensor_destroy(): │ │ │ │ │ b 0 │ │ │ │ │ R_ARM_JUMP24 fftwf_ifree │ │ │ │ │ │ │ │ │ │ -00000034 : │ │ │ │ │ +00000058 : │ │ │ │ │ fftwf_mpi_dtensor_md5(): │ │ │ │ │ - push {r4, r5, r6, r7, r8, lr} │ │ │ │ │ + strd r4, [sp, #-24]! @ 0xffffffe8 │ │ │ │ │ + mov r5, r0 │ │ │ │ │ + strd r6, [sp, #8] │ │ │ │ │ mov r7, r1 │ │ │ │ │ ldr r1, [r1] │ │ │ │ │ - mov r5, r0 │ │ │ │ │ + str r8, [sp, #16] │ │ │ │ │ + str lr, [sp, #20] │ │ │ │ │ bl 0 │ │ │ │ │ R_ARM_CALL fftwf_md5int │ │ │ │ │ ldr r3, [r7] │ │ │ │ │ sub r3, r3, #1 │ │ │ │ │ cmn r3, #-2147483645 @ 0x80000003 │ │ │ │ │ - pophi {r4, r5, r6, r7, r8, pc} │ │ │ │ │ + bhi c4 │ │ │ │ │ mov r4, r7 │ │ │ │ │ mov r6, #0 │ │ │ │ │ ldr r1, [r4, #4] │ │ │ │ │ mov r0, r5 │ │ │ │ │ + add r6, r6, #1 │ │ │ │ │ bl 0 │ │ │ │ │ R_ARM_CALL fftwf_md5INT │ │ │ │ │ ldr r1, [r4, #8] │ │ │ │ │ mov r0, r5 │ │ │ │ │ bl 0 │ │ │ │ │ R_ARM_CALL fftwf_md5INT │ │ │ │ │ ldr r1, [r4, #12]! │ │ │ │ │ mov r0, r5 │ │ │ │ │ bl 0 │ │ │ │ │ R_ARM_CALL fftwf_md5INT │ │ │ │ │ ldr r3, [r7] │ │ │ │ │ - add r6, r6, #1 │ │ │ │ │ cmp r3, r6 │ │ │ │ │ - bgt 60 │ │ │ │ │ - pop {r4, r5, r6, r7, r8, pc} │ │ │ │ │ + bgt 90 │ │ │ │ │ + ldrd r4, [sp] │ │ │ │ │ + ldrd r6, [sp, #8] │ │ │ │ │ + ldr r8, [sp, #16] │ │ │ │ │ + add sp, sp, #20 │ │ │ │ │ + pop {pc} @ (ldr pc, [sp], #4) │ │ │ │ │ │ │ │ │ │ -00000098 : │ │ │ │ │ +000000d8 : │ │ │ │ │ fftwf_mpi_dtensor_copy(): │ │ │ │ │ - push {r4, r5, r6, lr} │ │ │ │ │ - ldr r6, [r0] │ │ │ │ │ + strd r4, [sp, #-16]! │ │ │ │ │ mov r5, r0 │ │ │ │ │ + str r6, [sp, #8] │ │ │ │ │ + ldr r6, [r0] │ │ │ │ │ + str lr, [sp, #12] │ │ │ │ │ sub r3, r6, #2 │ │ │ │ │ cmn r3, #-2147483644 @ 0x80000004 │ │ │ │ │ - subls r0, r6, #1 │ │ │ │ │ - addls r0, r0, r0, lsl #1 │ │ │ │ │ - lslls r0, r0, #2 │ │ │ │ │ - addls r0, r0, #16 │ │ │ │ │ - movhi r0, #16 │ │ │ │ │ + bhi 14c │ │ │ │ │ + sub r0, r6, #1 │ │ │ │ │ + add r0, r0, r0, lsl #1 │ │ │ │ │ + lsl r0, r0, #2 │ │ │ │ │ + add r0, r0, #16 │ │ │ │ │ bl 0 │ │ │ │ │ R_ARM_CALL fftwf_malloc_plain │ │ │ │ │ - str r6, [r0] │ │ │ │ │ - ldr r2, [r5] │ │ │ │ │ mov r4, r0 │ │ │ │ │ + str r6, [r4] │ │ │ │ │ + ldr r2, [r5] │ │ │ │ │ sub r3, r2, #1 │ │ │ │ │ cmn r3, #-2147483645 @ 0x80000003 │ │ │ │ │ - bhi f0 │ │ │ │ │ + bhi 138 │ │ │ │ │ add r2, r2, r2, lsl #1 │ │ │ │ │ - lsl r2, r2, #2 │ │ │ │ │ add r1, r5, #4 │ │ │ │ │ - add r0, r0, #4 │ │ │ │ │ + add r0, r4, #4 │ │ │ │ │ + lsl r2, r2, #2 │ │ │ │ │ bl 0 │ │ │ │ │ R_ARM_CALL memmove │ │ │ │ │ + ldr r6, [sp, #8] │ │ │ │ │ mov r0, r4 │ │ │ │ │ - pop {r4, r5, r6, pc} │ │ │ │ │ + ldrd r4, [sp] │ │ │ │ │ + add sp, sp, #12 │ │ │ │ │ + pop {pc} @ (ldr pc, [sp], #4) │ │ │ │ │ + mov r0, #16 │ │ │ │ │ + bl 0 │ │ │ │ │ + R_ARM_CALL fftwf_malloc_plain │ │ │ │ │ + mov r4, r0 │ │ │ │ │ + b 110 │ │ │ │ │ │ │ │ │ │ -000000f8 : │ │ │ │ │ +0000015c : │ │ │ │ │ fftwf_mpi_dtensor_canonical(): │ │ │ │ │ - push {r3, r4, r5, r6, r7, r8, r9, sl, fp, lr} │ │ │ │ │ + strd r4, [sp, #-36]! @ 0xffffffdc │ │ │ │ │ ldr r4, [r0] │ │ │ │ │ + strd r6, [sp, #8] │ │ │ │ │ + strd r8, [sp, #16] │ │ │ │ │ + strd sl, [sp, #24] │ │ │ │ │ + str lr, [sp, #32] │ │ │ │ │ + sub sp, sp, #4 │ │ │ │ │ cmn r4, #-2147483647 @ 0x80000001 │ │ │ │ │ - beq 268 │ │ │ │ │ + beq 2f4 │ │ │ │ │ cmp r4, #0 │ │ │ │ │ - mov r5, r0 │ │ │ │ │ - mov r6, r1 │ │ │ │ │ + mov r6, r0 │ │ │ │ │ + mov r7, r1 │ │ │ │ │ movle r4, #0 │ │ │ │ │ - ble 258 │ │ │ │ │ + ble 2e4 │ │ │ │ │ + clz r0, r1 │ │ │ │ │ mov r3, #0 │ │ │ │ │ - add lr, r4, r4, lsl #1 │ │ │ │ │ - clz r1, r1 │ │ │ │ │ + add r1, r4, r4, lsl #1 │ │ │ │ │ + lsr r0, r0, #5 │ │ │ │ │ mov r4, r3 │ │ │ │ │ - lsr r1, r1, #5 │ │ │ │ │ - add r0, r0, #4 │ │ │ │ │ - b 154 │ │ │ │ │ + add lr, r6, #4 │ │ │ │ │ + b 1cc │ │ │ │ │ add r3, r3, #3 │ │ │ │ │ cmp r2, #1 │ │ │ │ │ - moveq ip, r1 │ │ │ │ │ - orrne ip, r1, #1 │ │ │ │ │ - cmp r3, lr │ │ │ │ │ + moveq ip, r0 │ │ │ │ │ + orrne ip, r0, #1 │ │ │ │ │ + cmp r3, r1 │ │ │ │ │ add r4, r4, ip │ │ │ │ │ - beq 17c │ │ │ │ │ - ldr r2, [r0, r3, lsl #2] │ │ │ │ │ + beq 20c │ │ │ │ │ + ldr r2, [lr, r3, lsl #2] │ │ │ │ │ cmp r2, #0 │ │ │ │ │ - bgt 138 │ │ │ │ │ + bgt 1b0 │ │ │ │ │ mov r0, #16 │ │ │ │ │ bl 0 │ │ │ │ │ R_ARM_CALL fftwf_malloc_plain │ │ │ │ │ + mov r8, r0 │ │ │ │ │ mvn r3, #-2147483648 @ 0x80000000 │ │ │ │ │ - mov r9, r0 │ │ │ │ │ str r3, [r0] │ │ │ │ │ - mov r0, r9 │ │ │ │ │ - pop {r3, r4, r5, r6, r7, r8, r9, sl, fp, pc} │ │ │ │ │ + mov r0, r8 │ │ │ │ │ + add sp, sp, #4 │ │ │ │ │ + ldrd r4, [sp] │ │ │ │ │ + ldrd r6, [sp, #8] │ │ │ │ │ + ldrd r8, [sp, #16] │ │ │ │ │ + ldrd sl, [sp, #24] │ │ │ │ │ + add sp, sp, #32 │ │ │ │ │ + pop {pc} @ (ldr pc, [sp], #4) │ │ │ │ │ sub r3, r4, #2 │ │ │ │ │ cmn r3, #-2147483644 @ 0x80000004 │ │ │ │ │ - bhi 258 │ │ │ │ │ + bhi 2e4 │ │ │ │ │ sub r3, r4, #1 │ │ │ │ │ add r3, r3, r3, lsl #1 │ │ │ │ │ lsl r0, r3, #2 │ │ │ │ │ add r0, r0, #16 │ │ │ │ │ bl 0 │ │ │ │ │ R_ARM_CALL fftwf_malloc_plain │ │ │ │ │ - mov r9, r0 │ │ │ │ │ - str r4, [r9] │ │ │ │ │ - ldr r3, [r5] │ │ │ │ │ + mov r8, r0 │ │ │ │ │ + str r4, [r8] │ │ │ │ │ + ldr r3, [r6] │ │ │ │ │ cmp r3, #0 │ │ │ │ │ - ble 174 │ │ │ │ │ - mov r7, #0 │ │ │ │ │ - mov r4, r5 │ │ │ │ │ - mov sl, r7 │ │ │ │ │ - cmp r6, #0 │ │ │ │ │ + ble 1ec │ │ │ │ │ + mov sl, #0 │ │ │ │ │ + mov r4, r6 │ │ │ │ │ + mov r9, sl │ │ │ │ │ + cmp r7, #0 │ │ │ │ │ ldr r0, [r4, #4] │ │ │ │ │ - beq 1ec │ │ │ │ │ + beq 27c │ │ │ │ │ cmp r0, #1 │ │ │ │ │ - bgt 1ec │ │ │ │ │ - add sl, sl, #1 │ │ │ │ │ - cmp sl, r3 │ │ │ │ │ + bgt 27c │ │ │ │ │ + add r9, r9, #1 │ │ │ │ │ add r4, r4, #12 │ │ │ │ │ - bge 174 │ │ │ │ │ + cmp r9, r3 │ │ │ │ │ + bge 1ec │ │ │ │ │ ldr r0, [r4, #4] │ │ │ │ │ cmp r0, #1 │ │ │ │ │ - ble 1d0 │ │ │ │ │ - add fp, r7, r7, lsl #1 │ │ │ │ │ - add fp, r9, fp, lsl #2 │ │ │ │ │ + ble 260 │ │ │ │ │ + lsl r5, sl, #1 │ │ │ │ │ + add r9, r9, #1 │ │ │ │ │ + add r4, r4, #12 │ │ │ │ │ + add fp, r5, sl │ │ │ │ │ + add r5, r5, sl │ │ │ │ │ + add fp, r8, fp, lsl #2 │ │ │ │ │ + add sl, sl, #1 │ │ │ │ │ + add r5, r8, r5, lsl #2 │ │ │ │ │ str r0, [fp, #4] │ │ │ │ │ - ldr r1, [r4, #8] │ │ │ │ │ + ldr r1, [r4, #-4] │ │ │ │ │ bl 0 │ │ │ │ │ R_ARM_CALL fftwf_mpi_num_blocks │ │ │ │ │ - lsl r8, r7, #1 │ │ │ │ │ - add r8, r8, r7 │ │ │ │ │ - add r8, r9, r8, lsl #2 │ │ │ │ │ - add sl, sl, #1 │ │ │ │ │ - add r7, r7, #1 │ │ │ │ │ - add r4, r4, #12 │ │ │ │ │ cmp r0, #1 │ │ │ │ │ ldrne r3, [r4, #-4] │ │ │ │ │ ldreq r3, [r4, #-8] │ │ │ │ │ str r3, [fp, #8] │ │ │ │ │ - ldr r1, [r4] │ │ │ │ │ ldr r0, [r4, #-8] │ │ │ │ │ + ldr r1, [r4] │ │ │ │ │ bl 0 │ │ │ │ │ R_ARM_CALL fftwf_mpi_num_blocks │ │ │ │ │ cmp r0, #1 │ │ │ │ │ ldreq r3, [r4, #-8] │ │ │ │ │ ldrne r3, [r4] │ │ │ │ │ - str r3, [r8, #12] │ │ │ │ │ - ldr r3, [r5] │ │ │ │ │ - cmp r3, sl │ │ │ │ │ - bgt 1bc │ │ │ │ │ - mov r0, r9 │ │ │ │ │ - pop {r3, r4, r5, r6, r7, r8, r9, sl, fp, pc} │ │ │ │ │ + str r3, [r5, #12] │ │ │ │ │ + ldr r3, [r6] │ │ │ │ │ + cmp r3, r9 │ │ │ │ │ + bgt 24c │ │ │ │ │ + b 1ec │ │ │ │ │ mov r0, #16 │ │ │ │ │ bl 0 │ │ │ │ │ R_ARM_CALL fftwf_malloc_plain │ │ │ │ │ - mov r9, r0 │ │ │ │ │ - b 1a0 │ │ │ │ │ + mov r8, r0 │ │ │ │ │ + b 230 │ │ │ │ │ mov r0, #16 │ │ │ │ │ bl 0 │ │ │ │ │ R_ARM_CALL fftwf_malloc_plain │ │ │ │ │ - mov r9, r0 │ │ │ │ │ + mov r8, r0 │ │ │ │ │ str r4, [r0] │ │ │ │ │ - mov r0, r9 │ │ │ │ │ - pop {r3, r4, r5, r6, r7, r8, r9, sl, fp, pc} │ │ │ │ │ + b 1ec │ │ │ │ │ │ │ │ │ │ -00000280 : │ │ │ │ │ +00000308 : │ │ │ │ │ fftwf_mpi_dtensor_validp(): │ │ │ │ │ ldr r1, [r0] │ │ │ │ │ cmp r1, #0 │ │ │ │ │ - blt 2d4 │ │ │ │ │ + blt 35c │ │ │ │ │ sub r3, r1, #1 │ │ │ │ │ cmn r3, #-2147483645 @ 0x80000003 │ │ │ │ │ - bhi 2dc │ │ │ │ │ + bhi 364 │ │ │ │ │ mov r3, #0 │ │ │ │ │ - b 2c8 │ │ │ │ │ + b 350 │ │ │ │ │ ldr r2, [r0, #8] │ │ │ │ │ cmp r2, #0 │ │ │ │ │ - ble 2d4 │ │ │ │ │ + ble 35c │ │ │ │ │ ldr r2, [r0, #12] │ │ │ │ │ cmp r2, #0 │ │ │ │ │ - ble 2d4 │ │ │ │ │ + ble 35c │ │ │ │ │ add r3, r3, #1 │ │ │ │ │ - cmp r1, r3 │ │ │ │ │ add r0, r0, #12 │ │ │ │ │ - beq 2dc │ │ │ │ │ + cmp r1, r3 │ │ │ │ │ + beq 364 │ │ │ │ │ ldr r2, [r0, #4] │ │ │ │ │ cmp r2, #0 │ │ │ │ │ - bge 2a0 │ │ │ │ │ + bge 328 │ │ │ │ │ mov r0, #0 │ │ │ │ │ bx lr │ │ │ │ │ mov r0, #1 │ │ │ │ │ bx lr │ │ │ │ │ │ │ │ │ │ -000002e4 : │ │ │ │ │ +0000036c : │ │ │ │ │ fftwf_mpi_dtensor_print(): │ │ │ │ │ ldr r2, [r0] │ │ │ │ │ - push {r4, r5, r6, r7, r8, r9, lr} │ │ │ │ │ - cmn r2, #-2147483647 @ 0x80000001 │ │ │ │ │ + strd r4, [sp, #-28]! @ 0xffffffe4 │ │ │ │ │ + mov r5, r1 │ │ │ │ │ ldr r3, [r1] │ │ │ │ │ + strd r6, [sp, #8] │ │ │ │ │ + strd r8, [sp, #16] │ │ │ │ │ + cmn r2, #-2147483647 @ 0x80000001 │ │ │ │ │ + str lr, [sp, #24] │ │ │ │ │ sub sp, sp, #12 │ │ │ │ │ - mov r5, r1 │ │ │ │ │ - beq 3c8 │ │ │ │ │ - ldr r1, [pc, #216] @ 3e0 │ │ │ │ │ + beq 46c │ │ │ │ │ + ldr r1, [pc, #220] @ 478 │ │ │ │ │ mov r7, r0 │ │ │ │ │ - add r1, pc, r1 │ │ │ │ │ mov r0, r5 │ │ │ │ │ + add r1, pc, r1 │ │ │ │ │ blx r3 │ │ │ │ │ ldr r3, [r7] │ │ │ │ │ cmp r3, #0 │ │ │ │ │ - ble 3ac │ │ │ │ │ - ldr r8, [pc, #188] @ 3e4 │ │ │ │ │ + ble 440 │ │ │ │ │ ldr r3, [r7, #12] │ │ │ │ │ - ldr r2, [pc, #184] @ 3e8 │ │ │ │ │ + mov r0, r5 │ │ │ │ │ + ldr r8, [pc, #184] @ 47c │ │ │ │ │ + ldr r2, [pc, #184] @ 480 │ │ │ │ │ str r3, [sp, #4] │ │ │ │ │ - add r8, pc, r8 │ │ │ │ │ ldr r3, [r7, #8] │ │ │ │ │ - str r3, [sp] │ │ │ │ │ + add r8, pc, r8 │ │ │ │ │ + mov r1, r8 │ │ │ │ │ add r2, pc, r2 │ │ │ │ │ + str r3, [sp] │ │ │ │ │ ldr r4, [r5] │ │ │ │ │ ldr r3, [r7, #4] │ │ │ │ │ - mov r1, r8 │ │ │ │ │ - mov r0, r5 │ │ │ │ │ blx r4 │ │ │ │ │ mov r4, r7 │ │ │ │ │ ldr r3, [r4], #12 │ │ │ │ │ cmp r3, #1 │ │ │ │ │ - ble 3ac │ │ │ │ │ - ldr r9, [pc, #128] @ 3ec │ │ │ │ │ + ble 440 │ │ │ │ │ + ldr r9, [pc, #132] @ 484 │ │ │ │ │ mov r6, #1 │ │ │ │ │ add r9, pc, r9 │ │ │ │ │ ldr r3, [r4, #12] │ │ │ │ │ - str r3, [sp, #4] │ │ │ │ │ - ldr r3, [r4, #8] │ │ │ │ │ - str r3, [sp] │ │ │ │ │ mov r2, r9 │ │ │ │ │ - ldr r3, [r4, #4] │ │ │ │ │ - ldr ip, [r5] │ │ │ │ │ mov r1, r8 │ │ │ │ │ mov r0, r5 │ │ │ │ │ + add r6, r6, #1 │ │ │ │ │ + add r4, r4, #12 │ │ │ │ │ + str r3, [sp, #4] │ │ │ │ │ + ldr r3, [r4, #-4] │ │ │ │ │ + str r3, [sp] │ │ │ │ │ + ldr r3, [r4, #-8] │ │ │ │ │ + ldr ip, [r5] │ │ │ │ │ blx ip │ │ │ │ │ ldr r3, [r7] │ │ │ │ │ - add r6, r6, #1 │ │ │ │ │ cmp r3, r6 │ │ │ │ │ - add r4, r4, #12 │ │ │ │ │ - bgt 370 │ │ │ │ │ - ldr r1, [pc, #60] @ 3f0 │ │ │ │ │ - mov r0, r5 │ │ │ │ │ - add r1, pc, r1 │ │ │ │ │ + bgt 404 │ │ │ │ │ + ldr r1, [pc, #64] @ 488 │ │ │ │ │ ldr r3, [r5] │ │ │ │ │ - add sp, sp, #12 │ │ │ │ │ - pop {r4, r5, r6, r7, r8, r9, lr} │ │ │ │ │ - bx r3 │ │ │ │ │ - ldr r1, [pc, #36] @ 3f4 │ │ │ │ │ - mov r0, r5 │ │ │ │ │ add r1, pc, r1 │ │ │ │ │ + mov r0, r5 │ │ │ │ │ add sp, sp, #12 │ │ │ │ │ - pop {r4, r5, r6, r7, r8, r9, lr} │ │ │ │ │ + ldrd r4, [sp] │ │ │ │ │ + ldrd r6, [sp, #8] │ │ │ │ │ + ldrd r8, [sp, #16] │ │ │ │ │ + ldr lr, [sp, #24] │ │ │ │ │ + add sp, sp, #28 │ │ │ │ │ bx r3 │ │ │ │ │ + ldr r1, [pc, #24] @ 48c │ │ │ │ │ + add r1, pc, r1 │ │ │ │ │ + b 44c │ │ │ │ │ .word 0x000000d0 │ │ │ │ │ R_ARM_REL32 .LC0 │ │ │ │ │ - .word 0x000000ac │ │ │ │ │ + .word 0x000000a8 │ │ │ │ │ R_ARM_REL32 .LC3 │ │ │ │ │ .word 0x000000a4 │ │ │ │ │ R_ARM_REL32 .LC2 │ │ │ │ │ - .word 0x00000078 │ │ │ │ │ + .word 0x0000007c │ │ │ │ │ R_ARM_REL32 .LC4 │ │ │ │ │ - .word 0x00000034 │ │ │ │ │ + .word 0x00000038 │ │ │ │ │ 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: 856 (bytes into file) │ │ │ │ │ + Start of section headers: 860 (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 0x358: │ │ │ │ │ +There are 11 section headers, starting at offset 0x35c: │ │ │ │ │ │ │ │ │ │ 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 0001a4 00 AX 0 0 4 │ │ │ │ │ - [ 2] .rel.text REL 00000000 0002c8 000038 08 I 8 1 4 │ │ │ │ │ - [ 3] .data PROGBITS 00000000 0001d8 000000 00 WA 0 0 1 │ │ │ │ │ - [ 4] .bss NOBITS 00000000 0001d8 000000 00 WA 0 0 1 │ │ │ │ │ - [ 5] .rodata PROGBITS 00000000 0001d8 000005 00 A 0 0 1 │ │ │ │ │ - [ 6] .note.GNU-stack PROGBITS 00000000 0001dd 000000 00 0 0 1 │ │ │ │ │ - [ 7] .ARM.attributes ARM_ATTRIBUTES 00000000 0001dd 00002b 00 0 0 1 │ │ │ │ │ - [ 8] .symtab SYMTAB 00000000 000208 000070 10 9 4 4 │ │ │ │ │ - [ 9] .strtab STRTAB 00000000 000278 00004d 00 0 0 1 │ │ │ │ │ - [10] .shstrtab STRTAB 00000000 000300 000058 00 0 0 1 │ │ │ │ │ + [ 1] .text PROGBITS 00000000 000034 0001a8 00 AX 0 0 4 │ │ │ │ │ + [ 2] .rel.text REL 00000000 0002cc 000038 08 I 8 1 4 │ │ │ │ │ + [ 3] .data PROGBITS 00000000 0001dc 000000 00 WA 0 0 1 │ │ │ │ │ + [ 4] .bss NOBITS 00000000 0001dc 000000 00 WA 0 0 1 │ │ │ │ │ + [ 5] .rodata PROGBITS 00000000 0001dc 000005 00 A 0 0 1 │ │ │ │ │ + [ 6] .note.GNU-stack PROGBITS 00000000 0001e1 000000 00 0 0 1 │ │ │ │ │ + [ 7] .ARM.attributes ARM_ATTRIBUTES 00000000 0001e1 00002b 00 0 0 1 │ │ │ │ │ + [ 8] .symtab SYMTAB 00000000 00020c 000070 10 9 4 4 │ │ │ │ │ + [ 9] .strtab STRTAB 00000000 00027c 00004d 00 0 0 1 │ │ │ │ │ + [10] .shstrtab STRTAB 00000000 000304 000058 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 $a │ │ │ │ │ 2: 00000000 0 SECTION LOCAL DEFAULT 5 .rodata │ │ │ │ │ - 3: 000001a0 0 NOTYPE LOCAL DEFAULT 1 $d │ │ │ │ │ - 4: 00000000 300 FUNC GLOBAL DEFAULT 1 fftwf_mpi_rearrange_applicable │ │ │ │ │ + 3: 000001a4 0 NOTYPE LOCAL DEFAULT 1 $d │ │ │ │ │ + 4: 00000000 304 FUNC GLOBAL DEFAULT 1 fftwf_mpi_rearrange_applicable │ │ │ │ │ 5: 00000000 0 NOTYPE GLOBAL DEFAULT UND __aeabi_idivmod │ │ │ │ │ - 6: 0000012c 120 FUNC GLOBAL DEFAULT 1 fftwf_mpi_rearrange_ny │ │ │ │ │ + 6: 00000130 120 FUNC GLOBAL DEFAULT 1 fftwf_mpi_rearrange_ny │ │ │ │ ├── readelf --wide --relocs {} │ │ │ │ │ @@ -1,10 +1,10 @@ │ │ │ │ │ │ │ │ │ │ -Relocation section '.rel.text' at offset 0x2c8 contains 7 entries: │ │ │ │ │ +Relocation section '.rel.text' at offset 0x2cc contains 7 entries: │ │ │ │ │ Offset Info Type Sym. Value Symbol's Name │ │ │ │ │ -00000054 0000051c R_ARM_CALL 00000000 __aeabi_idivmod │ │ │ │ │ -0000007c 0000051c R_ARM_CALL 00000000 __aeabi_idivmod │ │ │ │ │ -000000a8 0000051c R_ARM_CALL 00000000 __aeabi_idivmod │ │ │ │ │ -000000d0 0000051c R_ARM_CALL 00000000 __aeabi_idivmod │ │ │ │ │ -000000f4 0000051c R_ARM_CALL 00000000 __aeabi_idivmod │ │ │ │ │ -0000011c 0000051c R_ARM_CALL 00000000 __aeabi_idivmod │ │ │ │ │ -000001a0 00000203 R_ARM_REL32 00000000 .rodata │ │ │ │ │ +00000060 0000051c R_ARM_CALL 00000000 __aeabi_idivmod │ │ │ │ │ +00000088 0000051c R_ARM_CALL 00000000 __aeabi_idivmod │ │ │ │ │ +000000b0 0000051c R_ARM_CALL 00000000 __aeabi_idivmod │ │ │ │ │ +000000d4 0000051c R_ARM_CALL 00000000 __aeabi_idivmod │ │ │ │ │ +000000f8 0000051c R_ARM_CALL 00000000 __aeabi_idivmod │ │ │ │ │ +00000120 0000051c R_ARM_CALL 00000000 __aeabi_idivmod │ │ │ │ │ +000001a4 00000203 R_ARM_REL32 00000000 .rodata │ │ │ │ ├── objdump --line-numbers --disassemble --demangle --reloc --no-show-raw-insn --section=.text {} │ │ │ │ │ @@ -1,105 +1,106 @@ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ Disassembly of section .text: │ │ │ │ │ │ │ │ │ │ 00000000 : │ │ │ │ │ fftwf_mpi_rearrange_applicable(): │ │ │ │ │ + strd r4, [sp, #-12]! │ │ │ │ │ mov ip, r0 │ │ │ │ │ - push {r4, r5, lr} │ │ │ │ │ + str lr, [sp, #8] │ │ │ │ │ sub sp, sp, #20 │ │ │ │ │ - add r0, sp, #16 │ │ │ │ │ cmp ip, #1 │ │ │ │ │ + add r0, sp, #16 │ │ │ │ │ stmdb r0, {r1, r2, r3} │ │ │ │ │ ldr r0, [sp, #32] │ │ │ │ │ - beq 8c │ │ │ │ │ + beq 98 │ │ │ │ │ cmp ip, #2 │ │ │ │ │ ldr r4, [sp, #8] │ │ │ │ │ - beq 48 │ │ │ │ │ + beq 54 │ │ │ │ │ cmp ip, #4 │ │ │ │ │ - beq e0 │ │ │ │ │ + beq e4 │ │ │ │ │ cmp ip, #3 │ │ │ │ │ movne r0, #1 │ │ │ │ │ - beq bc │ │ │ │ │ + beq c0 │ │ │ │ │ add sp, sp, #20 │ │ │ │ │ - pop {r4, r5, pc} │ │ │ │ │ + ldrd r4, [sp] │ │ │ │ │ + add sp, sp, #8 │ │ │ │ │ + pop {pc} @ (ldr pc, [sp], #4) │ │ │ │ │ cmp r0, r4 │ │ │ │ │ - ble 98 │ │ │ │ │ + ble a4 │ │ │ │ │ mov r1, r4 │ │ │ │ │ bl 0 <__aeabi_idivmod> │ │ │ │ │ R_ARM_CALL __aeabi_idivmod │ │ │ │ │ ldr r3, [sp, #36] @ 0x24 │ │ │ │ │ - cmp r3, r4 │ │ │ │ │ clz r0, r1 │ │ │ │ │ lsr r0, r0, #5 │ │ │ │ │ + cmp r3, r4 │ │ │ │ │ movge r0, #0 │ │ │ │ │ cmp r0, #0 │ │ │ │ │ - beq 40 │ │ │ │ │ + beq 44 │ │ │ │ │ mov r1, r3 │ │ │ │ │ mov r0, r4 │ │ │ │ │ bl 0 <__aeabi_idivmod> │ │ │ │ │ R_ARM_CALL __aeabi_idivmod │ │ │ │ │ clz r0, r1 │ │ │ │ │ lsr r0, r0, #5 │ │ │ │ │ - b 40 │ │ │ │ │ + b 44 │ │ │ │ │ ldr r3, [sp, #36] @ 0x24 │ │ │ │ │ cmp r3, r0 │ │ │ │ │ - blt a4 │ │ │ │ │ + blt ac │ │ │ │ │ mov r0, #0 │ │ │ │ │ - add sp, sp, #20 │ │ │ │ │ - pop {r4, r5, pc} │ │ │ │ │ + b 44 │ │ │ │ │ mov r1, r3 │ │ │ │ │ bl 0 <__aeabi_idivmod> │ │ │ │ │ R_ARM_CALL __aeabi_idivmod │ │ │ │ │ clz r0, r1 │ │ │ │ │ lsr r0, r0, #5 │ │ │ │ │ - add sp, sp, #20 │ │ │ │ │ - pop {r4, r5, pc} │ │ │ │ │ + b 44 │ │ │ │ │ ldr r3, [sp, #4] │ │ │ │ │ ldr r1, [sp, #36] @ 0x24 │ │ │ │ │ mul r1, r3, r1 │ │ │ │ │ cmp r1, r0 │ │ │ │ │ - bge 98 │ │ │ │ │ + bge a4 │ │ │ │ │ bl 0 <__aeabi_idivmod> │ │ │ │ │ R_ARM_CALL __aeabi_idivmod │ │ │ │ │ clz r0, r1 │ │ │ │ │ lsr r0, r0, #5 │ │ │ │ │ - b 40 │ │ │ │ │ + b 44 │ │ │ │ │ ldr r5, [sp, #12] │ │ │ │ │ cmp r5, r4 │ │ │ │ │ cmpne r0, r5 │ │ │ │ │ - ble 98 │ │ │ │ │ + ble a4 │ │ │ │ │ mov r1, r5 │ │ │ │ │ bl 0 <__aeabi_idivmod> │ │ │ │ │ R_ARM_CALL __aeabi_idivmod │ │ │ │ │ ldr r3, [sp, #36] @ 0x24 │ │ │ │ │ - cmp r3, r5 │ │ │ │ │ clz r0, r1 │ │ │ │ │ lsr r0, r0, #5 │ │ │ │ │ + cmp r3, r5 │ │ │ │ │ movge r0, #0 │ │ │ │ │ cmp r0, #0 │ │ │ │ │ - beq 40 │ │ │ │ │ + beq 44 │ │ │ │ │ mov r1, r3 │ │ │ │ │ mov r0, r5 │ │ │ │ │ bl 0 <__aeabi_idivmod> │ │ │ │ │ R_ARM_CALL __aeabi_idivmod │ │ │ │ │ clz r0, r1 │ │ │ │ │ lsr r0, r0, #5 │ │ │ │ │ - b 40 │ │ │ │ │ + b 44 │ │ │ │ │ │ │ │ │ │ -0000012c : │ │ │ │ │ +00000130 : │ │ │ │ │ fftwf_mpi_rearrange_ny(): │ │ │ │ │ sub sp, sp, #16 │ │ │ │ │ add ip, sp, #16 │ │ │ │ │ stmdb ip, {r1, r2, r3} │ │ │ │ │ - ldr r3, [pc, #96] @ 1a0 │ │ │ │ │ + ldr r3, [pc, #96] @ 1a4 │ │ │ │ │ add r3, pc, r3 │ │ │ │ │ cmp r0, #4 │ │ │ │ │ - bhi 198 │ │ │ │ │ + bhi 19c │ │ │ │ │ ldrb r0, [r3, r0] │ │ │ │ │ add pc, pc, r0, lsl #2 │ │ │ │ │ nop @ (mov r0, r0) │ │ │ │ │ ldr r0, [sp, #20] │ │ │ │ │ add sp, sp, #16 │ │ │ │ │ bx lr │ │ │ │ │ ldr r0, [sp, #16] │ │ │ │ │ @@ -113,10 +114,10 @@ │ │ │ │ │ bx lr │ │ │ │ │ ldr r3, [sp, #4] │ │ │ │ │ ldr r0, [sp, #20] │ │ │ │ │ mul r0, r3, r0 │ │ │ │ │ add sp, sp, #16 │ │ │ │ │ bx lr │ │ │ │ │ mov r0, #0 │ │ │ │ │ - b 158 │ │ │ │ │ + b 15c │ │ │ │ │ .word 0x0000005c │ │ │ │ │ R_ARM_REL32 .rodata │ │ │ ├── wisdom-api.o │ │ │ │ ├── readelf --wide --sections {} │ │ │ │ │ @@ -1,19 +1,19 @@ │ │ │ │ │ There are 10 section headers, starting at offset 0x6f4: │ │ │ │ │ │ │ │ │ │ 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 0002ac 00 AX 0 0 4 │ │ │ │ │ - [ 2] .rel.text REL 00000000 000594 000110 08 I 7 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] .note.GNU-stack PROGBITS 00000000 0002e0 000000 00 0 0 1 │ │ │ │ │ - [ 6] .ARM.attributes ARM_ATTRIBUTES 00000000 0002e0 00002b 00 0 0 1 │ │ │ │ │ - [ 7] .symtab SYMTAB 00000000 00030c 000170 10 8 5 4 │ │ │ │ │ - [ 8] .strtab STRTAB 00000000 00047c 000115 00 0 0 1 │ │ │ │ │ + [ 1] .text PROGBITS 00000000 000034 0002bc 00 AX 0 0 4 │ │ │ │ │ + [ 2] .rel.text REL 00000000 0005a4 000100 08 I 7 1 4 │ │ │ │ │ + [ 3] .data PROGBITS 00000000 0002f0 000000 00 WA 0 0 1 │ │ │ │ │ + [ 4] .bss NOBITS 00000000 0002f0 000000 00 WA 0 0 1 │ │ │ │ │ + [ 5] .note.GNU-stack PROGBITS 00000000 0002f0 000000 00 0 0 1 │ │ │ │ │ + [ 6] .ARM.attributes ARM_ATTRIBUTES 00000000 0002f0 00002b 00 0 0 1 │ │ │ │ │ + [ 7] .symtab SYMTAB 00000000 00031c 000170 10 8 5 4 │ │ │ │ │ + [ 8] .strtab STRTAB 00000000 00048c 000115 00 0 0 1 │ │ │ │ │ [ 9] .shstrtab STRTAB 00000000 0006a4 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,26 +1,26 @@ │ │ │ │ │ │ │ │ │ │ Symbol table '.symtab' contains 23 entries: │ │ │ │ │ Num: Value Size Type Bind Vis Ndx Name │ │ │ │ │ 0: 00000000 0 NOTYPE LOCAL DEFAULT UND │ │ │ │ │ 1: 00000000 0 NOTYPE LOCAL DEFAULT 1 $a │ │ │ │ │ - 2: 00000194 0 NOTYPE LOCAL DEFAULT 1 $d │ │ │ │ │ - 3: 0000019c 0 NOTYPE LOCAL DEFAULT 1 $a │ │ │ │ │ - 4: 000002a4 0 NOTYPE LOCAL DEFAULT 1 $d │ │ │ │ │ - 5: 00000000 412 FUNC GLOBAL DEFAULT 1 fftwf_mpi_gather_wisdom │ │ │ │ │ + 2: 0000019c 0 NOTYPE LOCAL DEFAULT 1 $d │ │ │ │ │ + 3: 000001a4 0 NOTYPE LOCAL DEFAULT 1 $a │ │ │ │ │ + 4: 000002b4 0 NOTYPE LOCAL DEFAULT 1 $d │ │ │ │ │ + 5: 00000000 420 FUNC GLOBAL DEFAULT 1 fftwf_mpi_gather_wisdom │ │ │ │ │ 6: 00000000 0 NOTYPE GLOBAL DEFAULT UND MPI_Comm_dup │ │ │ │ │ 7: 00000000 0 NOTYPE GLOBAL DEFAULT UND MPI_Comm_rank │ │ │ │ │ 8: 00000000 0 NOTYPE GLOBAL DEFAULT UND MPI_Comm_size │ │ │ │ │ 9: 00000000 0 NOTYPE GLOBAL DEFAULT UND MPI_Comm_free │ │ │ │ │ 10: 00000000 0 NOTYPE GLOBAL DEFAULT UND MPI_Recv │ │ │ │ │ 11: 00000000 0 NOTYPE GLOBAL DEFAULT UND fftwf_malloc_plain │ │ │ │ │ 12: 00000000 0 NOTYPE GLOBAL DEFAULT UND fftwf_import_wisdom_from_string │ │ │ │ │ 13: 00000000 0 NOTYPE GLOBAL DEFAULT UND fftwf_ifree │ │ │ │ │ 14: 00000000 0 NOTYPE GLOBAL DEFAULT UND MPI_Comm_split │ │ │ │ │ 15: 00000000 0 NOTYPE GLOBAL DEFAULT UND fftwf_export_wisdom_to_string │ │ │ │ │ 16: 00000000 0 NOTYPE GLOBAL DEFAULT UND strlen │ │ │ │ │ 17: 00000000 0 NOTYPE GLOBAL DEFAULT UND MPI_Send │ │ │ │ │ 18: 00000000 0 NOTYPE GLOBAL DEFAULT UND free │ │ │ │ │ 19: 00000000 0 NOTYPE GLOBAL DEFAULT UND MPI_Abort │ │ │ │ │ - 20: 0000019c 272 FUNC GLOBAL DEFAULT 1 fftwf_mpi_broadcast_wisdom │ │ │ │ │ + 20: 000001a4 280 FUNC GLOBAL DEFAULT 1 fftwf_mpi_broadcast_wisdom │ │ │ │ │ 21: 00000000 0 NOTYPE GLOBAL DEFAULT UND MPI_Bcast │ │ │ │ │ 22: 00000000 0 NOTYPE GLOBAL DEFAULT UND fftwf_free │ │ │ │ ├── readelf --wide --relocs {} │ │ │ │ │ @@ -1,37 +1,35 @@ │ │ │ │ │ │ │ │ │ │ -Relocation section '.rel.text' at offset 0x594 contains 34 entries: │ │ │ │ │ +Relocation section '.rel.text' at offset 0x5a4 contains 32 entries: │ │ │ │ │ Offset Info Type Sym. Value Symbol's Name │ │ │ │ │ -00000010 0000061c R_ARM_CALL 00000000 MPI_Comm_dup │ │ │ │ │ -0000001c 0000071c R_ARM_CALL 00000000 MPI_Comm_rank │ │ │ │ │ -00000028 0000081c R_ARM_CALL 00000000 MPI_Comm_size │ │ │ │ │ -00000050 0000091c R_ARM_CALL 00000000 MPI_Comm_free │ │ │ │ │ -00000088 00000a1c R_ARM_CALL 00000000 MPI_Recv │ │ │ │ │ -00000090 00000b1c R_ARM_CALL 00000000 fftwf_malloc_plain │ │ │ │ │ -000000b8 00000a1c R_ARM_CALL 00000000 MPI_Recv │ │ │ │ │ -000000c0 00000c1c R_ARM_CALL 00000000 fftwf_import_wisdom_from_string │ │ │ │ │ -000000d0 00000d1c R_ARM_CALL 00000000 fftwf_ifree │ │ │ │ │ -000000d8 0000091c R_ARM_CALL 00000000 MPI_Comm_free │ │ │ │ │ -00000100 00000e1c R_ARM_CALL 00000000 MPI_Comm_split │ │ │ │ │ -00000108 0000051c R_ARM_CALL 00000000 fftwf_mpi_gather_wisdom │ │ │ │ │ -00000110 0000091c R_ARM_CALL 00000000 MPI_Comm_free │ │ │ │ │ -0000011c 00000f1c R_ARM_CALL 00000000 fftwf_export_wisdom_to_string │ │ │ │ │ -00000124 0000101c R_ARM_CALL 00000000 strlen │ │ │ │ │ -00000150 0000111c R_ARM_CALL 00000000 MPI_Send │ │ │ │ │ -00000174 0000111c R_ARM_CALL 00000000 MPI_Send │ │ │ │ │ -0000017c 0000121c R_ARM_CALL 00000000 free │ │ │ │ │ -0000018c 0000131c R_ARM_CALL 00000000 MPI_Abort │ │ │ │ │ -000001ac 0000061c R_ARM_CALL 00000000 MPI_Comm_dup │ │ │ │ │ -000001b8 0000071c R_ARM_CALL 00000000 MPI_Comm_rank │ │ │ │ │ -000001e0 0000151c R_ARM_CALL 00000000 MPI_Bcast │ │ │ │ │ -000001e8 00000b1c R_ARM_CALL 00000000 fftwf_malloc_plain │ │ │ │ │ -00000204 0000151c R_ARM_CALL 00000000 MPI_Bcast │ │ │ │ │ -0000020c 00000c1c R_ARM_CALL 00000000 fftwf_import_wisdom_from_string │ │ │ │ │ -0000021c 00000d1c R_ARM_CALL 00000000 fftwf_ifree │ │ │ │ │ -00000224 0000091c R_ARM_CALL 00000000 MPI_Comm_free │ │ │ │ │ -00000230 00000f1c R_ARM_CALL 00000000 fftwf_export_wisdom_to_string │ │ │ │ │ -00000238 0000101c R_ARM_CALL 00000000 strlen │ │ │ │ │ -0000025c 0000151c R_ARM_CALL 00000000 MPI_Bcast │ │ │ │ │ +00000018 0000061c R_ARM_CALL 00000000 MPI_Comm_dup │ │ │ │ │ +00000024 0000071c R_ARM_CALL 00000000 MPI_Comm_rank │ │ │ │ │ +00000030 0000081c R_ARM_CALL 00000000 MPI_Comm_size │ │ │ │ │ +00000058 0000091c R_ARM_CALL 00000000 MPI_Comm_free │ │ │ │ │ +0000009c 00000a1c R_ARM_CALL 00000000 MPI_Recv │ │ │ │ │ +000000a4 00000b1c R_ARM_CALL 00000000 fftwf_malloc_plain │ │ │ │ │ +000000cc 00000a1c R_ARM_CALL 00000000 MPI_Recv │ │ │ │ │ +000000d4 00000c1c R_ARM_CALL 00000000 fftwf_import_wisdom_from_string │ │ │ │ │ +000000e4 00000d1c R_ARM_CALL 00000000 fftwf_ifree │ │ │ │ │ +00000108 00000e1c R_ARM_CALL 00000000 MPI_Comm_split │ │ │ │ │ +00000110 0000051c R_ARM_CALL 00000000 fftwf_mpi_gather_wisdom │ │ │ │ │ +00000118 0000091c R_ARM_CALL 00000000 MPI_Comm_free │ │ │ │ │ +00000124 00000f1c R_ARM_CALL 00000000 fftwf_export_wisdom_to_string │ │ │ │ │ +0000012c 0000101c R_ARM_CALL 00000000 strlen │ │ │ │ │ +00000158 0000111c R_ARM_CALL 00000000 MPI_Send │ │ │ │ │ +0000017c 0000111c R_ARM_CALL 00000000 MPI_Send │ │ │ │ │ +00000184 0000121c R_ARM_CALL 00000000 free │ │ │ │ │ +00000194 0000131c R_ARM_CALL 00000000 MPI_Abort │ │ │ │ │ +000001bc 0000061c R_ARM_CALL 00000000 MPI_Comm_dup │ │ │ │ │ +000001c8 0000071c R_ARM_CALL 00000000 MPI_Comm_rank │ │ │ │ │ +000001f0 0000151c R_ARM_CALL 00000000 MPI_Bcast │ │ │ │ │ +000001f8 00000b1c R_ARM_CALL 00000000 fftwf_malloc_plain │ │ │ │ │ +00000214 0000151c R_ARM_CALL 00000000 MPI_Bcast │ │ │ │ │ +0000021c 00000c1c R_ARM_CALL 00000000 fftwf_import_wisdom_from_string │ │ │ │ │ +0000022c 00000d1c R_ARM_CALL 00000000 fftwf_ifree │ │ │ │ │ +00000234 0000091c R_ARM_CALL 00000000 MPI_Comm_free │ │ │ │ │ +0000024c 00000f1c R_ARM_CALL 00000000 fftwf_export_wisdom_to_string │ │ │ │ │ +00000254 0000101c R_ARM_CALL 00000000 strlen │ │ │ │ │ 00000278 0000151c R_ARM_CALL 00000000 MPI_Bcast │ │ │ │ │ -00000280 0000161c R_ARM_CALL 00000000 fftwf_free │ │ │ │ │ -00000288 0000091c R_ARM_CALL 00000000 MPI_Comm_free │ │ │ │ │ -0000029c 0000131c R_ARM_CALL 00000000 MPI_Abort │ │ │ │ │ +00000294 0000151c R_ARM_CALL 00000000 MPI_Bcast │ │ │ │ │ +0000029c 0000161c R_ARM_CALL 00000000 fftwf_free │ │ │ │ │ +000002ac 0000131c R_ARM_CALL 00000000 MPI_Abort │ │ │ │ ├── objdump --line-numbers --disassemble --demangle --reloc --no-show-raw-insn --section=.text {} │ │ │ │ │ @@ -1,215 +1,217 @@ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ Disassembly of section .text: │ │ │ │ │ │ │ │ │ │ 00000000 : │ │ │ │ │ fftwf_mpi_gather_wisdom(): │ │ │ │ │ - push {r4, r5, r6, lr} │ │ │ │ │ + strd r4, [sp, #-16]! │ │ │ │ │ + str r6, [sp, #8] │ │ │ │ │ + str lr, [sp, #12] │ │ │ │ │ sub sp, sp, #56 @ 0x38 │ │ │ │ │ add r4, sp, #16 │ │ │ │ │ mov r1, r4 │ │ │ │ │ bl 0 │ │ │ │ │ R_ARM_CALL MPI_Comm_dup │ │ │ │ │ - add r1, sp, #24 │ │ │ │ │ ldr r0, [sp, #16] │ │ │ │ │ + add r1, sp, #24 │ │ │ │ │ bl 0 │ │ │ │ │ R_ARM_CALL MPI_Comm_rank │ │ │ │ │ ldr r0, [sp, #16] │ │ │ │ │ add r1, sp, #28 │ │ │ │ │ bl 0 │ │ │ │ │ R_ARM_CALL MPI_Comm_size │ │ │ │ │ ldr r3, [sp, #28] │ │ │ │ │ cmp r3, #2 │ │ │ │ │ - bgt e4 │ │ │ │ │ + bgt ec │ │ │ │ │ cmp r3, #1 │ │ │ │ │ - ble 4c │ │ │ │ │ + ble 54 │ │ │ │ │ ldr r5, [sp, #24] │ │ │ │ │ cmp r5, #1 │ │ │ │ │ - ble 5c │ │ │ │ │ + ble 70 │ │ │ │ │ mov r0, r4 │ │ │ │ │ bl 0 │ │ │ │ │ R_ARM_CALL MPI_Comm_free │ │ │ │ │ add sp, sp, #56 @ 0x38 │ │ │ │ │ - pop {r4, r5, r6, pc} │ │ │ │ │ - beq 11c │ │ │ │ │ + ldrd r4, [sp] │ │ │ │ │ + ldr r6, [sp, #8] │ │ │ │ │ + add sp, sp, #12 │ │ │ │ │ + pop {pc} @ (ldr pc, [sp], #4) │ │ │ │ │ + beq 124 │ │ │ │ │ ldr r3, [sp, #16] │ │ │ │ │ + add r6, sp, #36 @ 0x24 │ │ │ │ │ + add r0, sp, #32 │ │ │ │ │ + ldr r2, [pc, #276] @ 19c │ │ │ │ │ str r3, [sp, #4] │ │ │ │ │ mov r3, #111 @ 0x6f │ │ │ │ │ - add r6, sp, #36 @ 0x24 │ │ │ │ │ str r3, [sp] │ │ │ │ │ mov r3, #1 │ │ │ │ │ mov r1, r3 │ │ │ │ │ - ldr r2, [pc, #272] @ 194 │ │ │ │ │ - add r0, sp, #32 │ │ │ │ │ str r6, [sp, #8] │ │ │ │ │ bl 0 │ │ │ │ │ R_ARM_CALL MPI_Recv │ │ │ │ │ ldr r0, [sp, #32] │ │ │ │ │ bl 0 │ │ │ │ │ R_ARM_CALL fftwf_malloc_plain │ │ │ │ │ ldr r3, [sp, #16] │ │ │ │ │ + mov r5, r0 │ │ │ │ │ + ldr r1, [sp, #32] │ │ │ │ │ + ldr r2, [pc, #228] @ 1a0 │ │ │ │ │ str r3, [sp, #4] │ │ │ │ │ mov r3, #222 @ 0xde │ │ │ │ │ - ldr r2, [pc, #240] @ 198 │ │ │ │ │ - ldr r1, [sp, #32] │ │ │ │ │ - str r3, [sp] │ │ │ │ │ str r6, [sp, #8] │ │ │ │ │ + str r3, [sp] │ │ │ │ │ mov r3, #1 │ │ │ │ │ - mov r5, r0 │ │ │ │ │ bl 0 │ │ │ │ │ R_ARM_CALL MPI_Recv │ │ │ │ │ mov r0, r5 │ │ │ │ │ bl 0 │ │ │ │ │ R_ARM_CALL fftwf_import_wisdom_from_string │ │ │ │ │ cmp r0, #0 │ │ │ │ │ - beq 184 │ │ │ │ │ + beq 18c │ │ │ │ │ mov r0, r5 │ │ │ │ │ bl 0 │ │ │ │ │ R_ARM_CALL fftwf_ifree │ │ │ │ │ - mov r0, r4 │ │ │ │ │ - bl 0 │ │ │ │ │ - R_ARM_CALL MPI_Comm_free │ │ │ │ │ - add sp, sp, #56 @ 0x38 │ │ │ │ │ - pop {r4, r5, r6, pc} │ │ │ │ │ - ldr r2, [sp, #24] │ │ │ │ │ + b 54 │ │ │ │ │ add r5, sp, #20 │ │ │ │ │ + ldr r0, [sp, #16] │ │ │ │ │ + mov r3, r5 │ │ │ │ │ + ldr r2, [sp, #24] │ │ │ │ │ cmp r2, #0 │ │ │ │ │ and r1, r2, #1 │ │ │ │ │ - mov r3, r5 │ │ │ │ │ rsblt r1, r1, #0 │ │ │ │ │ - ldr r0, [sp, #16] │ │ │ │ │ bl 0 │ │ │ │ │ R_ARM_CALL MPI_Comm_split │ │ │ │ │ ldr r0, [sp, #20] │ │ │ │ │ bl 0 │ │ │ │ │ R_ARM_CALL fftwf_mpi_gather_wisdom │ │ │ │ │ mov r0, r5 │ │ │ │ │ bl 0 │ │ │ │ │ R_ARM_CALL MPI_Comm_free │ │ │ │ │ ldr r3, [sp, #28] │ │ │ │ │ - b 38 │ │ │ │ │ + b 40 │ │ │ │ │ bl 0 │ │ │ │ │ R_ARM_CALL fftwf_export_wisdom_to_string │ │ │ │ │ mov r6, r0 │ │ │ │ │ bl 0 │ │ │ │ │ R_ARM_CALL strlen │ │ │ │ │ ldr r3, [sp, #16] │ │ │ │ │ + add r0, r0, #1 │ │ │ │ │ + mov r1, r5 │ │ │ │ │ + ldr r2, [pc, #88] @ 19c │ │ │ │ │ str r3, [sp, #4] │ │ │ │ │ mov r3, #111 @ 0x6f │ │ │ │ │ - mov r1, r5 │ │ │ │ │ str r3, [sp] │ │ │ │ │ - ldr r2, [pc, #80] @ 194 │ │ │ │ │ mov r3, #0 │ │ │ │ │ - add r0, r0, #1 │ │ │ │ │ str r0, [sp, #32] │ │ │ │ │ add r0, sp, #32 │ │ │ │ │ bl 0 │ │ │ │ │ R_ARM_CALL MPI_Send │ │ │ │ │ ldr r3, [sp, #16] │ │ │ │ │ + mov r0, r6 │ │ │ │ │ + ldr r1, [sp, #32] │ │ │ │ │ + ldr r2, [pc, #48] @ 1a0 │ │ │ │ │ str r3, [sp, #4] │ │ │ │ │ mov r3, #222 @ 0xde │ │ │ │ │ str r3, [sp] │ │ │ │ │ - ldr r2, [pc, #44] @ 198 │ │ │ │ │ - ldr r1, [sp, #32] │ │ │ │ │ mov r3, #0 │ │ │ │ │ - mov r0, r6 │ │ │ │ │ bl 0 │ │ │ │ │ R_ARM_CALL MPI_Send │ │ │ │ │ mov r0, r6 │ │ │ │ │ bl 0 │ │ │ │ │ R_ARM_CALL free │ │ │ │ │ - b 4c │ │ │ │ │ + b 54 │ │ │ │ │ ldr r0, [sp, #16] │ │ │ │ │ mov r1, #1 │ │ │ │ │ bl 0 │ │ │ │ │ R_ARM_CALL MPI_Abort │ │ │ │ │ - b cc │ │ │ │ │ + b e0 │ │ │ │ │ .word 0x4c000406 │ │ │ │ │ .word 0x4c000101 │ │ │ │ │ │ │ │ │ │ -0000019c : │ │ │ │ │ +000001a4 : │ │ │ │ │ fftwf_mpi_broadcast_wisdom(): │ │ │ │ │ - push {r4, r5, r6, lr} │ │ │ │ │ + strd r4, [sp, #-16]! │ │ │ │ │ + str r6, [sp, #8] │ │ │ │ │ + str lr, [sp, #12] │ │ │ │ │ sub sp, sp, #24 │ │ │ │ │ add r4, sp, #12 │ │ │ │ │ mov r1, r4 │ │ │ │ │ bl 0 │ │ │ │ │ R_ARM_CALL MPI_Comm_dup │ │ │ │ │ ldr r0, [sp, #12] │ │ │ │ │ add r1, sp, #16 │ │ │ │ │ bl 0 │ │ │ │ │ R_ARM_CALL MPI_Comm_rank │ │ │ │ │ ldr r5, [sp, #16] │ │ │ │ │ cmp r5, #0 │ │ │ │ │ - beq 230 │ │ │ │ │ + beq 24c │ │ │ │ │ ldr r3, [sp, #12] │ │ │ │ │ - ldr r2, [pc, #208] @ 2a4 │ │ │ │ │ mov r1, #1 │ │ │ │ │ - str r3, [sp] │ │ │ │ │ add r0, sp, #20 │ │ │ │ │ + ldr r2, [pc, #200] @ 2b4 │ │ │ │ │ + str r3, [sp] │ │ │ │ │ mov r3, #0 │ │ │ │ │ bl 0 │ │ │ │ │ R_ARM_CALL MPI_Bcast │ │ │ │ │ ldr r0, [sp, #20] │ │ │ │ │ bl 0 │ │ │ │ │ R_ARM_CALL fftwf_malloc_plain │ │ │ │ │ ldr r3, [sp, #12] │ │ │ │ │ - ldr r2, [pc, #176] @ 2a8 │ │ │ │ │ + mov r5, r0 │ │ │ │ │ ldr r1, [sp, #20] │ │ │ │ │ + ldr r2, [pc, #168] @ 2b8 │ │ │ │ │ str r3, [sp] │ │ │ │ │ mov r3, #0 │ │ │ │ │ - mov r5, r0 │ │ │ │ │ bl 0 │ │ │ │ │ R_ARM_CALL MPI_Bcast │ │ │ │ │ mov r0, r5 │ │ │ │ │ bl 0 │ │ │ │ │ R_ARM_CALL fftwf_import_wisdom_from_string │ │ │ │ │ cmp r0, #0 │ │ │ │ │ - beq 294 │ │ │ │ │ + beq 2a4 │ │ │ │ │ mov r0, r5 │ │ │ │ │ bl 0 │ │ │ │ │ R_ARM_CALL fftwf_ifree │ │ │ │ │ mov r0, r4 │ │ │ │ │ bl 0 │ │ │ │ │ R_ARM_CALL MPI_Comm_free │ │ │ │ │ add sp, sp, #24 │ │ │ │ │ - pop {r4, r5, r6, pc} │ │ │ │ │ + ldrd r4, [sp] │ │ │ │ │ + ldr r6, [sp, #8] │ │ │ │ │ + add sp, sp, #12 │ │ │ │ │ + pop {pc} @ (ldr pc, [sp], #4) │ │ │ │ │ bl 0 │ │ │ │ │ R_ARM_CALL fftwf_export_wisdom_to_string │ │ │ │ │ mov r6, r0 │ │ │ │ │ bl 0 │ │ │ │ │ R_ARM_CALL strlen │ │ │ │ │ ldr r3, [sp, #12] │ │ │ │ │ + add r0, r0, #1 │ │ │ │ │ + mov r1, #1 │ │ │ │ │ + ldr r2, [pc, #72] @ 2b4 │ │ │ │ │ str r3, [sp] │ │ │ │ │ - ldr r2, [pc, #88] @ 2a4 │ │ │ │ │ mov r3, r5 │ │ │ │ │ - mov r1, #1 │ │ │ │ │ - add r0, r0, #1 │ │ │ │ │ str r0, [sp, #20] │ │ │ │ │ add r0, sp, #20 │ │ │ │ │ bl 0 │ │ │ │ │ R_ARM_CALL MPI_Bcast │ │ │ │ │ ldr r3, [sp, #12] │ │ │ │ │ - ldr r2, [pc, #60] @ 2a8 │ │ │ │ │ + mov r0, r6 │ │ │ │ │ ldr r1, [sp, #20] │ │ │ │ │ + ldr r2, [pc, #40] @ 2b8 │ │ │ │ │ str r3, [sp] │ │ │ │ │ - mov r0, r6 │ │ │ │ │ mov r3, r5 │ │ │ │ │ bl 0 │ │ │ │ │ R_ARM_CALL MPI_Bcast │ │ │ │ │ mov r0, r6 │ │ │ │ │ bl 0 │ │ │ │ │ R_ARM_CALL fftwf_free │ │ │ │ │ - mov r0, r4 │ │ │ │ │ - bl 0 │ │ │ │ │ - R_ARM_CALL MPI_Comm_free │ │ │ │ │ - add sp, sp, #24 │ │ │ │ │ - pop {r4, r5, r6, pc} │ │ │ │ │ + b 230 │ │ │ │ │ ldr r0, [sp, #12] │ │ │ │ │ mov r1, #1 │ │ │ │ │ bl 0 │ │ │ │ │ R_ARM_CALL MPI_Abort │ │ │ │ │ - b 218 │ │ │ │ │ + b 228 │ │ │ │ │ .word 0x4c000406 │ │ │ │ │ .word 0x4c000101 │ │ │ ├── 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: 5644 (bytes into file) │ │ │ │ │ + Start of section headers: 6640 (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 0x160c: │ │ │ │ │ +There are 10 section headers, starting at offset 0x19f0: │ │ │ │ │ │ │ │ │ │ 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 000898 00 AX 0 0 4 │ │ │ │ │ - [ 2] .rel.text REL 00000000 0013cc 0001f0 08 I 7 1 4 │ │ │ │ │ - [ 3] .data PROGBITS 00000000 0008cc 000000 00 WA 0 0 1 │ │ │ │ │ - [ 4] .bss NOBITS 00000000 0008cc 000000 00 WA 0 0 1 │ │ │ │ │ - [ 5] .note.GNU-stack PROGBITS 00000000 0008cc 000000 00 0 0 1 │ │ │ │ │ - [ 6] .ARM.attributes ARM_ATTRIBUTES 00000000 0008cc 00002b 00 0 0 1 │ │ │ │ │ - [ 7] .symtab SYMTAB 00000000 0008f8 000410 10 8 2 4 │ │ │ │ │ - [ 8] .strtab STRTAB 00000000 000d08 0006c3 00 0 0 1 │ │ │ │ │ - [ 9] .shstrtab STRTAB 00000000 0015bc 000050 00 0 0 1 │ │ │ │ │ + [ 1] .text PROGBITS 00000000 000034 000c7c 00 AX 0 0 4 │ │ │ │ │ + [ 2] .rel.text REL 00000000 0017b0 0001f0 08 I 7 1 4 │ │ │ │ │ + [ 3] .data PROGBITS 00000000 000cb0 000000 00 WA 0 0 1 │ │ │ │ │ + [ 4] .bss NOBITS 00000000 000cb0 000000 00 WA 0 0 1 │ │ │ │ │ + [ 5] .note.GNU-stack PROGBITS 00000000 000cb0 000000 00 0 0 1 │ │ │ │ │ + [ 6] .ARM.attributes ARM_ATTRIBUTES 00000000 000cb0 00002b 00 0 0 1 │ │ │ │ │ + [ 7] .symtab SYMTAB 00000000 000cdc 000410 10 8 2 4 │ │ │ │ │ + [ 8] .strtab STRTAB 00000000 0010ec 0006c3 00 0 0 1 │ │ │ │ │ + [ 9] .shstrtab STRTAB 00000000 0019a0 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 $a │ │ │ │ │ - 2: 00000000 100 FUNC GLOBAL DEFAULT 1 fftwf_mpi_local_size_many_transposed_f03 │ │ │ │ │ + 2: 00000000 136 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: 00000064 68 FUNC GLOBAL DEFAULT 1 fftwf_mpi_local_size_many_f03 │ │ │ │ │ + 5: 00000088 104 FUNC GLOBAL DEFAULT 1 fftwf_mpi_local_size_many_f03 │ │ │ │ │ 6: 00000000 0 NOTYPE GLOBAL DEFAULT UND fftwf_mpi_local_size_many │ │ │ │ │ - 7: 000000a8 68 FUNC GLOBAL DEFAULT 1 fftwf_mpi_local_size_transposed_f03 │ │ │ │ │ + 7: 000000f0 104 FUNC GLOBAL DEFAULT 1 fftwf_mpi_local_size_transposed_f03 │ │ │ │ │ 8: 00000000 0 NOTYPE GLOBAL DEFAULT UND fftwf_mpi_local_size_transposed │ │ │ │ │ - 9: 000000ec 56 FUNC GLOBAL DEFAULT 1 fftwf_mpi_local_size_f03 │ │ │ │ │ + 9: 00000158 84 FUNC GLOBAL DEFAULT 1 fftwf_mpi_local_size_f03 │ │ │ │ │ 10: 00000000 0 NOTYPE GLOBAL DEFAULT UND fftwf_mpi_local_size │ │ │ │ │ - 11: 00000124 88 FUNC GLOBAL DEFAULT 1 fftwf_mpi_local_size_many_1d_f03 │ │ │ │ │ + 11: 000001ac 124 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: 0000017c 72 FUNC GLOBAL DEFAULT 1 fftwf_mpi_local_size_1d_f03 │ │ │ │ │ + 13: 00000228 108 FUNC GLOBAL DEFAULT 1 fftwf_mpi_local_size_1d_f03 │ │ │ │ │ 14: 00000000 0 NOTYPE GLOBAL DEFAULT UND fftwf_mpi_local_size_1d │ │ │ │ │ - 15: 000001c4 56 FUNC GLOBAL DEFAULT 1 fftwf_mpi_local_size_2d_f03 │ │ │ │ │ + 15: 00000294 84 FUNC GLOBAL DEFAULT 1 fftwf_mpi_local_size_2d_f03 │ │ │ │ │ 16: 00000000 0 NOTYPE GLOBAL DEFAULT UND fftwf_mpi_local_size_2d │ │ │ │ │ - 17: 000001fc 68 FUNC GLOBAL DEFAULT 1 fftwf_mpi_local_size_2d_transposed_f03 │ │ │ │ │ + 17: 000002e8 104 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: 00000240 64 FUNC GLOBAL DEFAULT 1 fftwf_mpi_local_size_3d_f03 │ │ │ │ │ + 19: 00000350 92 FUNC GLOBAL DEFAULT 1 fftwf_mpi_local_size_3d_f03 │ │ │ │ │ 20: 00000000 0 NOTYPE GLOBAL DEFAULT UND fftwf_mpi_local_size_3d │ │ │ │ │ - 21: 00000280 72 FUNC GLOBAL DEFAULT 1 fftwf_mpi_local_size_3d_transposed_f03 │ │ │ │ │ + 21: 000003ac 108 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: 000002c8 92 FUNC GLOBAL DEFAULT 1 fftwf_mpi_plan_many_transpose_f03 │ │ │ │ │ + 23: 00000418 128 FUNC GLOBAL DEFAULT 1 fftwf_mpi_plan_many_transpose_f03 │ │ │ │ │ 24: 00000000 0 NOTYPE GLOBAL DEFAULT UND fftwf_mpi_plan_many_transpose │ │ │ │ │ - 25: 00000324 64 FUNC GLOBAL DEFAULT 1 fftwf_mpi_plan_transpose_f03 │ │ │ │ │ + 25: 00000498 92 FUNC GLOBAL DEFAULT 1 fftwf_mpi_plan_transpose_f03 │ │ │ │ │ 26: 00000000 0 NOTYPE GLOBAL DEFAULT UND fftwf_mpi_plan_transpose │ │ │ │ │ - 27: 00000364 100 FUNC GLOBAL DEFAULT 1 fftwf_mpi_plan_many_dft_f03 │ │ │ │ │ + 27: 000004f4 136 FUNC GLOBAL DEFAULT 1 fftwf_mpi_plan_many_dft_f03 │ │ │ │ │ 28: 00000000 0 NOTYPE GLOBAL DEFAULT UND fftwf_mpi_plan_many_dft │ │ │ │ │ - 29: 000003c8 68 FUNC GLOBAL DEFAULT 1 fftwf_mpi_plan_dft_f03 │ │ │ │ │ + 29: 0000057c 104 FUNC GLOBAL DEFAULT 1 fftwf_mpi_plan_dft_f03 │ │ │ │ │ 30: 00000000 0 NOTYPE GLOBAL DEFAULT UND fftwf_mpi_plan_dft │ │ │ │ │ - 31: 0000040c 64 FUNC GLOBAL DEFAULT 1 fftwf_mpi_plan_dft_1d_f03 │ │ │ │ │ + 31: 000005e4 92 FUNC GLOBAL DEFAULT 1 fftwf_mpi_plan_dft_1d_f03 │ │ │ │ │ 32: 00000000 0 NOTYPE GLOBAL DEFAULT UND fftwf_mpi_plan_dft_1d │ │ │ │ │ - 33: 0000044c 68 FUNC GLOBAL DEFAULT 1 fftwf_mpi_plan_dft_2d_f03 │ │ │ │ │ + 33: 00000640 104 FUNC GLOBAL DEFAULT 1 fftwf_mpi_plan_dft_2d_f03 │ │ │ │ │ 34: 00000000 0 NOTYPE GLOBAL DEFAULT UND fftwf_mpi_plan_dft_2d │ │ │ │ │ - 35: 00000490 76 FUNC GLOBAL DEFAULT 1 fftwf_mpi_plan_dft_3d_f03 │ │ │ │ │ + 35: 000006a8 112 FUNC GLOBAL DEFAULT 1 fftwf_mpi_plan_dft_3d_f03 │ │ │ │ │ 36: 00000000 0 NOTYPE GLOBAL DEFAULT UND fftwf_mpi_plan_dft_3d │ │ │ │ │ - 37: 000004dc 100 FUNC GLOBAL DEFAULT 1 fftwf_mpi_plan_many_r2r_f03 │ │ │ │ │ + 37: 00000718 136 FUNC GLOBAL DEFAULT 1 fftwf_mpi_plan_many_r2r_f03 │ │ │ │ │ 38: 00000000 0 NOTYPE GLOBAL DEFAULT UND fftwf_mpi_plan_many_r2r │ │ │ │ │ - 39: 00000540 68 FUNC GLOBAL DEFAULT 1 fftwf_mpi_plan_r2r_f03 │ │ │ │ │ + 39: 000007a0 104 FUNC GLOBAL DEFAULT 1 fftwf_mpi_plan_r2r_f03 │ │ │ │ │ 40: 00000000 0 NOTYPE GLOBAL DEFAULT UND fftwf_mpi_plan_r2r │ │ │ │ │ - 41: 00000584 72 FUNC GLOBAL DEFAULT 1 fftwf_mpi_plan_r2r_2d_f03 │ │ │ │ │ + 41: 00000808 108 FUNC GLOBAL DEFAULT 1 fftwf_mpi_plan_r2r_2d_f03 │ │ │ │ │ 42: 00000000 0 NOTYPE GLOBAL DEFAULT UND fftwf_mpi_plan_r2r_2d │ │ │ │ │ - 43: 000005cc 100 FUNC GLOBAL DEFAULT 1 fftwf_mpi_plan_r2r_3d_f03 │ │ │ │ │ + 43: 00000874 136 FUNC GLOBAL DEFAULT 1 fftwf_mpi_plan_r2r_3d_f03 │ │ │ │ │ 44: 00000000 0 NOTYPE GLOBAL DEFAULT UND fftwf_mpi_plan_r2r_3d │ │ │ │ │ - 45: 00000630 92 FUNC GLOBAL DEFAULT 1 fftwf_mpi_plan_many_dft_r2c_f03 │ │ │ │ │ + 45: 000008fc 128 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: 0000068c 64 FUNC GLOBAL DEFAULT 1 fftwf_mpi_plan_dft_r2c_f03 │ │ │ │ │ + 47: 0000097c 92 FUNC GLOBAL DEFAULT 1 fftwf_mpi_plan_dft_r2c_f03 │ │ │ │ │ 48: 00000000 0 NOTYPE GLOBAL DEFAULT UND fftwf_mpi_plan_dft_r2c │ │ │ │ │ - 49: 000006cc 64 FUNC GLOBAL DEFAULT 1 fftwf_mpi_plan_dft_r2c_2d_f03 │ │ │ │ │ + 49: 000009d8 92 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: 0000070c 72 FUNC GLOBAL DEFAULT 1 fftwf_mpi_plan_dft_r2c_3d_f03 │ │ │ │ │ + 51: 00000a34 108 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: 00000754 92 FUNC GLOBAL DEFAULT 1 fftwf_mpi_plan_many_dft_c2r_f03 │ │ │ │ │ + 53: 00000aa0 128 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: 000007b0 64 FUNC GLOBAL DEFAULT 1 fftwf_mpi_plan_dft_c2r_f03 │ │ │ │ │ + 55: 00000b20 92 FUNC GLOBAL DEFAULT 1 fftwf_mpi_plan_dft_c2r_f03 │ │ │ │ │ 56: 00000000 0 NOTYPE GLOBAL DEFAULT UND fftwf_mpi_plan_dft_c2r │ │ │ │ │ - 57: 000007f0 64 FUNC GLOBAL DEFAULT 1 fftwf_mpi_plan_dft_c2r_2d_f03 │ │ │ │ │ + 57: 00000b7c 92 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: 00000830 72 FUNC GLOBAL DEFAULT 1 fftwf_mpi_plan_dft_c2r_3d_f03 │ │ │ │ │ + 59: 00000bd8 108 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: 00000878 16 FUNC GLOBAL DEFAULT 1 fftwf_mpi_gather_wisdom_f03 │ │ │ │ │ + 61: 00000c44 28 FUNC GLOBAL DEFAULT 1 fftwf_mpi_gather_wisdom_f03 │ │ │ │ │ 62: 00000000 0 NOTYPE GLOBAL DEFAULT UND fftwf_mpi_gather_wisdom │ │ │ │ │ - 63: 00000888 16 FUNC GLOBAL DEFAULT 1 fftwf_mpi_broadcast_wisdom_f03 │ │ │ │ │ + 63: 00000c60 28 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 0x13cc contains 62 entries: │ │ │ │ │ +Relocation section '.rel.text' at offset 0x17b0 contains 62 entries: │ │ │ │ │ Offset Info Type Sym. Value Symbol's Name │ │ │ │ │ -0000002c 0000031c R_ARM_CALL 00000000 MPI_Comm_f2c │ │ │ │ │ -00000060 0000041d R_ARM_JUMP24 00000000 fftwf_mpi_local_size_many_transposed │ │ │ │ │ -00000080 0000031c R_ARM_CALL 00000000 MPI_Comm_f2c │ │ │ │ │ -000000a4 0000061d R_ARM_JUMP24 00000000 fftwf_mpi_local_size_many │ │ │ │ │ -000000c4 0000031c R_ARM_CALL 00000000 MPI_Comm_f2c │ │ │ │ │ -000000e8 0000081d R_ARM_JUMP24 00000000 fftwf_mpi_local_size_transposed │ │ │ │ │ -00000104 0000031c R_ARM_CALL 00000000 MPI_Comm_f2c │ │ │ │ │ -00000120 00000a1d R_ARM_JUMP24 00000000 fftwf_mpi_local_size │ │ │ │ │ -00000148 0000031c R_ARM_CALL 00000000 MPI_Comm_f2c │ │ │ │ │ -00000178 00000c1d R_ARM_JUMP24 00000000 fftwf_mpi_local_size_many_1d │ │ │ │ │ -00000198 0000031c R_ARM_CALL 00000000 MPI_Comm_f2c │ │ │ │ │ -000001c0 00000e1d R_ARM_JUMP24 00000000 fftwf_mpi_local_size_1d │ │ │ │ │ -000001dc 0000031c R_ARM_CALL 00000000 MPI_Comm_f2c │ │ │ │ │ -000001f8 0000101d R_ARM_JUMP24 00000000 fftwf_mpi_local_size_2d │ │ │ │ │ -00000218 0000031c R_ARM_CALL 00000000 MPI_Comm_f2c │ │ │ │ │ -0000023c 0000121d R_ARM_JUMP24 00000000 fftwf_mpi_local_size_2d_transposed │ │ │ │ │ -0000025c 0000031c R_ARM_CALL 00000000 MPI_Comm_f2c │ │ │ │ │ -0000027c 0000141d R_ARM_JUMP24 00000000 fftwf_mpi_local_size_3d │ │ │ │ │ -0000029c 0000031c R_ARM_CALL 00000000 MPI_Comm_f2c │ │ │ │ │ -000002c4 0000161d R_ARM_JUMP24 00000000 fftwf_mpi_local_size_3d_transposed │ │ │ │ │ -000002f0 0000031c R_ARM_CALL 00000000 MPI_Comm_f2c │ │ │ │ │ -00000320 0000181d R_ARM_JUMP24 00000000 fftwf_mpi_plan_many_transpose │ │ │ │ │ -00000340 0000031c R_ARM_CALL 00000000 MPI_Comm_f2c │ │ │ │ │ -00000360 00001a1d R_ARM_JUMP24 00000000 fftwf_mpi_plan_transpose │ │ │ │ │ -00000390 0000031c R_ARM_CALL 00000000 MPI_Comm_f2c │ │ │ │ │ -000003c4 00001c1d R_ARM_JUMP24 00000000 fftwf_mpi_plan_many_dft │ │ │ │ │ -000003e4 0000031c R_ARM_CALL 00000000 MPI_Comm_f2c │ │ │ │ │ -00000408 00001e1d R_ARM_JUMP24 00000000 fftwf_mpi_plan_dft │ │ │ │ │ -00000428 0000031c R_ARM_CALL 00000000 MPI_Comm_f2c │ │ │ │ │ -00000448 0000201d R_ARM_JUMP24 00000000 fftwf_mpi_plan_dft_1d │ │ │ │ │ -00000468 0000031c R_ARM_CALL 00000000 MPI_Comm_f2c │ │ │ │ │ -0000048c 0000221d R_ARM_JUMP24 00000000 fftwf_mpi_plan_dft_2d │ │ │ │ │ -000004b0 0000031c R_ARM_CALL 00000000 MPI_Comm_f2c │ │ │ │ │ -000004d8 0000241d R_ARM_JUMP24 00000000 fftwf_mpi_plan_dft_3d │ │ │ │ │ -00000508 0000031c R_ARM_CALL 00000000 MPI_Comm_f2c │ │ │ │ │ -0000053c 0000261d R_ARM_JUMP24 00000000 fftwf_mpi_plan_many_r2r │ │ │ │ │ -0000055c 0000031c R_ARM_CALL 00000000 MPI_Comm_f2c │ │ │ │ │ -00000580 0000281d R_ARM_JUMP24 00000000 fftwf_mpi_plan_r2r │ │ │ │ │ -000005a0 0000031c R_ARM_CALL 00000000 MPI_Comm_f2c │ │ │ │ │ -000005c8 00002a1d R_ARM_JUMP24 00000000 fftwf_mpi_plan_r2r_2d │ │ │ │ │ -000005f8 0000031c R_ARM_CALL 00000000 MPI_Comm_f2c │ │ │ │ │ -0000062c 00002c1d R_ARM_JUMP24 00000000 fftwf_mpi_plan_r2r_3d │ │ │ │ │ -00000658 0000031c R_ARM_CALL 00000000 MPI_Comm_f2c │ │ │ │ │ -00000688 00002e1d R_ARM_JUMP24 00000000 fftwf_mpi_plan_many_dft_r2c │ │ │ │ │ -000006a8 0000031c R_ARM_CALL 00000000 MPI_Comm_f2c │ │ │ │ │ -000006c8 0000301d R_ARM_JUMP24 00000000 fftwf_mpi_plan_dft_r2c │ │ │ │ │ -000006e8 0000031c R_ARM_CALL 00000000 MPI_Comm_f2c │ │ │ │ │ -00000708 0000321d R_ARM_JUMP24 00000000 fftwf_mpi_plan_dft_r2c_2d │ │ │ │ │ -0000072c 0000031c R_ARM_CALL 00000000 MPI_Comm_f2c │ │ │ │ │ -00000750 0000341d R_ARM_JUMP24 00000000 fftwf_mpi_plan_dft_r2c_3d │ │ │ │ │ -0000077c 0000031c R_ARM_CALL 00000000 MPI_Comm_f2c │ │ │ │ │ -000007ac 0000361d R_ARM_JUMP24 00000000 fftwf_mpi_plan_many_dft_c2r │ │ │ │ │ +0000003c 0000031c R_ARM_CALL 00000000 MPI_Comm_f2c │ │ │ │ │ +00000084 0000041d R_ARM_JUMP24 00000000 fftwf_mpi_local_size_many_transposed │ │ │ │ │ +000000b4 0000031c R_ARM_CALL 00000000 MPI_Comm_f2c │ │ │ │ │ +000000ec 0000061d R_ARM_JUMP24 00000000 fftwf_mpi_local_size_many │ │ │ │ │ +0000011c 0000031c R_ARM_CALL 00000000 MPI_Comm_f2c │ │ │ │ │ +00000154 0000081d R_ARM_JUMP24 00000000 fftwf_mpi_local_size_transposed │ │ │ │ │ +0000017c 0000031c R_ARM_CALL 00000000 MPI_Comm_f2c │ │ │ │ │ +000001a8 00000a1d R_ARM_JUMP24 00000000 fftwf_mpi_local_size │ │ │ │ │ +000001e0 0000031c R_ARM_CALL 00000000 MPI_Comm_f2c │ │ │ │ │ +00000224 00000c1d R_ARM_JUMP24 00000000 fftwf_mpi_local_size_many_1d │ │ │ │ │ +00000254 0000031c R_ARM_CALL 00000000 MPI_Comm_f2c │ │ │ │ │ +00000290 00000e1d R_ARM_JUMP24 00000000 fftwf_mpi_local_size_1d │ │ │ │ │ +000002b8 0000031c R_ARM_CALL 00000000 MPI_Comm_f2c │ │ │ │ │ +000002e4 0000101d R_ARM_JUMP24 00000000 fftwf_mpi_local_size_2d │ │ │ │ │ +00000314 0000031c R_ARM_CALL 00000000 MPI_Comm_f2c │ │ │ │ │ +0000034c 0000121d R_ARM_JUMP24 00000000 fftwf_mpi_local_size_2d_transposed │ │ │ │ │ +00000378 0000031c R_ARM_CALL 00000000 MPI_Comm_f2c │ │ │ │ │ +000003a8 0000141d R_ARM_JUMP24 00000000 fftwf_mpi_local_size_3d │ │ │ │ │ +000003d8 0000031c R_ARM_CALL 00000000 MPI_Comm_f2c │ │ │ │ │ +00000414 0000161d R_ARM_JUMP24 00000000 fftwf_mpi_local_size_3d_transposed │ │ │ │ │ +00000450 0000031c R_ARM_CALL 00000000 MPI_Comm_f2c │ │ │ │ │ +00000494 0000181d R_ARM_JUMP24 00000000 fftwf_mpi_plan_many_transpose │ │ │ │ │ +000004c0 0000031c R_ARM_CALL 00000000 MPI_Comm_f2c │ │ │ │ │ +000004f0 00001a1d R_ARM_JUMP24 00000000 fftwf_mpi_plan_transpose │ │ │ │ │ +00000530 0000031c R_ARM_CALL 00000000 MPI_Comm_f2c │ │ │ │ │ +00000578 00001c1d R_ARM_JUMP24 00000000 fftwf_mpi_plan_many_dft │ │ │ │ │ +000005a8 0000031c R_ARM_CALL 00000000 MPI_Comm_f2c │ │ │ │ │ +000005e0 00001e1d R_ARM_JUMP24 00000000 fftwf_mpi_plan_dft │ │ │ │ │ +0000060c 0000031c R_ARM_CALL 00000000 MPI_Comm_f2c │ │ │ │ │ +0000063c 0000201d R_ARM_JUMP24 00000000 fftwf_mpi_plan_dft_1d │ │ │ │ │ +0000066c 0000031c R_ARM_CALL 00000000 MPI_Comm_f2c │ │ │ │ │ +000006a4 0000221d R_ARM_JUMP24 00000000 fftwf_mpi_plan_dft_2d │ │ │ │ │ +000006d8 0000031c R_ARM_CALL 00000000 MPI_Comm_f2c │ │ │ │ │ +00000714 0000241d R_ARM_JUMP24 00000000 fftwf_mpi_plan_dft_3d │ │ │ │ │ +00000754 0000031c R_ARM_CALL 00000000 MPI_Comm_f2c │ │ │ │ │ +0000079c 0000261d R_ARM_JUMP24 00000000 fftwf_mpi_plan_many_r2r │ │ │ │ │ 000007cc 0000031c R_ARM_CALL 00000000 MPI_Comm_f2c │ │ │ │ │ -000007ec 0000381d R_ARM_JUMP24 00000000 fftwf_mpi_plan_dft_c2r │ │ │ │ │ -0000080c 0000031c R_ARM_CALL 00000000 MPI_Comm_f2c │ │ │ │ │ -0000082c 00003a1d R_ARM_JUMP24 00000000 fftwf_mpi_plan_dft_c2r_2d │ │ │ │ │ -00000850 0000031c R_ARM_CALL 00000000 MPI_Comm_f2c │ │ │ │ │ -00000874 00003c1d R_ARM_JUMP24 00000000 fftwf_mpi_plan_dft_c2r_3d │ │ │ │ │ -0000087c 0000031c R_ARM_CALL 00000000 MPI_Comm_f2c │ │ │ │ │ -00000884 00003e1d R_ARM_JUMP24 00000000 fftwf_mpi_gather_wisdom │ │ │ │ │ -0000088c 0000031c R_ARM_CALL 00000000 MPI_Comm_f2c │ │ │ │ │ -00000894 0000401d R_ARM_JUMP24 00000000 fftwf_mpi_broadcast_wisdom │ │ │ │ │ +00000804 0000281d R_ARM_JUMP24 00000000 fftwf_mpi_plan_r2r │ │ │ │ │ +00000834 0000031c R_ARM_CALL 00000000 MPI_Comm_f2c │ │ │ │ │ +00000870 00002a1d R_ARM_JUMP24 00000000 fftwf_mpi_plan_r2r_2d │ │ │ │ │ +000008b0 0000031c R_ARM_CALL 00000000 MPI_Comm_f2c │ │ │ │ │ +000008f8 00002c1d R_ARM_JUMP24 00000000 fftwf_mpi_plan_r2r_3d │ │ │ │ │ +00000934 0000031c R_ARM_CALL 00000000 MPI_Comm_f2c │ │ │ │ │ +00000978 00002e1d R_ARM_JUMP24 00000000 fftwf_mpi_plan_many_dft_r2c │ │ │ │ │ +000009a4 0000031c R_ARM_CALL 00000000 MPI_Comm_f2c │ │ │ │ │ +000009d4 0000301d R_ARM_JUMP24 00000000 fftwf_mpi_plan_dft_r2c │ │ │ │ │ +00000a00 0000031c R_ARM_CALL 00000000 MPI_Comm_f2c │ │ │ │ │ +00000a30 0000321d R_ARM_JUMP24 00000000 fftwf_mpi_plan_dft_r2c_2d │ │ │ │ │ +00000a64 0000031c R_ARM_CALL 00000000 MPI_Comm_f2c │ │ │ │ │ +00000a9c 0000341d R_ARM_JUMP24 00000000 fftwf_mpi_plan_dft_r2c_3d │ │ │ │ │ +00000ad8 0000031c R_ARM_CALL 00000000 MPI_Comm_f2c │ │ │ │ │ +00000b1c 0000361d R_ARM_JUMP24 00000000 fftwf_mpi_plan_many_dft_c2r │ │ │ │ │ +00000b48 0000031c R_ARM_CALL 00000000 MPI_Comm_f2c │ │ │ │ │ +00000b78 0000381d R_ARM_JUMP24 00000000 fftwf_mpi_plan_dft_c2r │ │ │ │ │ +00000ba4 0000031c R_ARM_CALL 00000000 MPI_Comm_f2c │ │ │ │ │ +00000bd4 00003a1d R_ARM_JUMP24 00000000 fftwf_mpi_plan_dft_c2r_2d │ │ │ │ │ +00000c08 0000031c R_ARM_CALL 00000000 MPI_Comm_f2c │ │ │ │ │ +00000c40 00003c1d R_ARM_JUMP24 00000000 fftwf_mpi_plan_dft_c2r_3d │ │ │ │ │ +00000c4c 0000031c R_ARM_CALL 00000000 MPI_Comm_f2c │ │ │ │ │ +00000c5c 00003e1d R_ARM_JUMP24 00000000 fftwf_mpi_gather_wisdom │ │ │ │ │ +00000c68 0000031c R_ARM_CALL 00000000 MPI_Comm_f2c │ │ │ │ │ +00000c78 0000401d R_ARM_JUMP24 00000000 fftwf_mpi_broadcast_wisdom │ │ │ │ ├── objdump --line-numbers --disassemble --demangle --reloc --no-show-raw-insn --section=.text {} │ │ │ │ │ @@ -1,709 +1,958 @@ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ Disassembly of section .text: │ │ │ │ │ │ │ │ │ │ 00000000 : │ │ │ │ │ fftwf_mpi_local_size_many_transposed_f03(): │ │ │ │ │ - push {r4, r5, r6, r7, r8, r9, sl, fp, lr} │ │ │ │ │ + strd r4, [sp, #-36]! @ 0xffffffdc │ │ │ │ │ + mov r5, r1 │ │ │ │ │ + strd r6, [sp, #8] │ │ │ │ │ + mov r6, r2 │ │ │ │ │ + mov r7, r3 │ │ │ │ │ + strd r8, [sp, #16] │ │ │ │ │ + strd sl, [sp, #24] │ │ │ │ │ + str lr, [sp, #32] │ │ │ │ │ sub sp, sp, #12 │ │ │ │ │ - str r0, [sp, #4] │ │ │ │ │ add r9, sp, #56 @ 0x38 │ │ │ │ │ + ldr r8, [sp, #48] @ 0x30 │ │ │ │ │ + str r0, [sp, #4] │ │ │ │ │ ldr r0, [sp, #52] @ 0x34 │ │ │ │ │ ldm r9, {r9, sl, fp} │ │ │ │ │ - ldr r8, [sp, #48] @ 0x30 │ │ │ │ │ ldr r4, [sp, #68] @ 0x44 │ │ │ │ │ - mov r5, r1 │ │ │ │ │ - mov r6, r2 │ │ │ │ │ - mov r7, r3 │ │ │ │ │ bl 0 │ │ │ │ │ R_ARM_CALL MPI_Comm_f2c │ │ │ │ │ mov r3, r7 │ │ │ │ │ mov r2, r6 │ │ │ │ │ - mov r1, r5 │ │ │ │ │ - str r4, [sp, #68] @ 0x44 │ │ │ │ │ - str fp, [sp, #64] @ 0x40 │ │ │ │ │ - str sl, [sp, #60] @ 0x3c │ │ │ │ │ - str r9, [sp, #56] @ 0x38 │ │ │ │ │ str r8, [sp, #48] @ 0x30 │ │ │ │ │ str r0, [sp, #52] @ 0x34 │ │ │ │ │ + mov r1, r5 │ │ │ │ │ ldr r0, [sp, #4] │ │ │ │ │ + str r9, [sp, #56] @ 0x38 │ │ │ │ │ + str sl, [sp, #60] @ 0x3c │ │ │ │ │ + str fp, [sp, #64] @ 0x40 │ │ │ │ │ + str r4, [sp, #68] @ 0x44 │ │ │ │ │ add sp, sp, #12 │ │ │ │ │ - pop {r4, r5, r6, r7, r8, r9, sl, fp, lr} │ │ │ │ │ + ldrd r4, [sp] │ │ │ │ │ + ldrd r6, [sp, #8] │ │ │ │ │ + ldrd r8, [sp, #16] │ │ │ │ │ + ldrd sl, [sp, #24] │ │ │ │ │ + ldr lr, [sp, #32] │ │ │ │ │ + add sp, sp, #36 @ 0x24 │ │ │ │ │ b 0 │ │ │ │ │ R_ARM_JUMP24 fftwf_mpi_local_size_many_transposed │ │ │ │ │ │ │ │ │ │ -00000064 : │ │ │ │ │ +00000088 : │ │ │ │ │ fftwf_mpi_local_size_many_f03(): │ │ │ │ │ - push {r4, r5, r6, r7, r8, r9, sl, lr} │ │ │ │ │ + strd r4, [sp, #-32]! @ 0xffffffe0 │ │ │ │ │ mov r4, r0 │ │ │ │ │ add r0, sp, #32 │ │ │ │ │ - ldm r0, {r0, r8, r9} │ │ │ │ │ mov r5, r1 │ │ │ │ │ + strd r6, [sp, #8] │ │ │ │ │ mov r6, r2 │ │ │ │ │ + strd r8, [sp, #16] │ │ │ │ │ mov r7, r3 │ │ │ │ │ + ldm r0, {r0, r8, r9} │ │ │ │ │ + str sl, [sp, #24] │ │ │ │ │ + str lr, [sp, #28] │ │ │ │ │ bl 0 │ │ │ │ │ R_ARM_CALL MPI_Comm_f2c │ │ │ │ │ + ldr sl, [sp, #24] │ │ │ │ │ mov r3, r7 │ │ │ │ │ mov r2, r6 │ │ │ │ │ mov r1, r5 │ │ │ │ │ - str r9, [sp, #40] @ 0x28 │ │ │ │ │ - str r8, [sp, #36] @ 0x24 │ │ │ │ │ str r0, [sp, #32] │ │ │ │ │ mov r0, r4 │ │ │ │ │ - pop {r4, r5, r6, r7, r8, r9, sl, lr} │ │ │ │ │ + ldrd r4, [sp] │ │ │ │ │ + str r8, [sp, #36] @ 0x24 │ │ │ │ │ + ldrd r6, [sp, #8] │ │ │ │ │ + str r9, [sp, #40] @ 0x28 │ │ │ │ │ + ldrd r8, [sp, #16] │ │ │ │ │ + ldr lr, [sp, #28] │ │ │ │ │ + add sp, sp, #32 │ │ │ │ │ b 0 │ │ │ │ │ R_ARM_JUMP24 fftwf_mpi_local_size_many │ │ │ │ │ │ │ │ │ │ -000000a8 : │ │ │ │ │ +000000f0 : │ │ │ │ │ fftwf_mpi_local_size_transposed_f03(): │ │ │ │ │ - push {r4, r5, r6, r7, r8, r9, sl, lr} │ │ │ │ │ + strd r4, [sp, #-32]! @ 0xffffffe0 │ │ │ │ │ mov r4, r0 │ │ │ │ │ - add r7, sp, #32 │ │ │ │ │ mov r0, r2 │ │ │ │ │ - ldm r7, {r7, r8, r9} │ │ │ │ │ + strd r6, [sp, #8] │ │ │ │ │ + add r7, sp, #32 │ │ │ │ │ mov r5, r1 │ │ │ │ │ + strd r8, [sp, #16] │ │ │ │ │ mov r6, r3 │ │ │ │ │ + ldm r7, {r7, r8, r9} │ │ │ │ │ + str sl, [sp, #24] │ │ │ │ │ + str lr, [sp, #28] │ │ │ │ │ bl 0 │ │ │ │ │ R_ARM_CALL MPI_Comm_f2c │ │ │ │ │ + ldr sl, [sp, #24] │ │ │ │ │ + mov r2, r0 │ │ │ │ │ mov r3, r6 │ │ │ │ │ mov r1, r5 │ │ │ │ │ - str r9, [sp, #40] @ 0x28 │ │ │ │ │ - str r8, [sp, #36] @ 0x24 │ │ │ │ │ - str r7, [sp, #32] │ │ │ │ │ - mov r2, r0 │ │ │ │ │ mov r0, r4 │ │ │ │ │ - pop {r4, r5, r6, r7, r8, r9, sl, lr} │ │ │ │ │ + str r7, [sp, #32] │ │ │ │ │ + ldrd r4, [sp] │ │ │ │ │ + str r8, [sp, #36] @ 0x24 │ │ │ │ │ + ldrd r6, [sp, #8] │ │ │ │ │ + str r9, [sp, #40] @ 0x28 │ │ │ │ │ + ldrd r8, [sp, #16] │ │ │ │ │ + ldr lr, [sp, #28] │ │ │ │ │ + add sp, sp, #32 │ │ │ │ │ b 0 │ │ │ │ │ R_ARM_JUMP24 fftwf_mpi_local_size_transposed │ │ │ │ │ │ │ │ │ │ -000000ec : │ │ │ │ │ +00000158 : │ │ │ │ │ fftwf_mpi_local_size_f03(): │ │ │ │ │ - push {r4, r5, r6, r7, r8, lr} │ │ │ │ │ + strd r4, [sp, #-24]! @ 0xffffffe8 │ │ │ │ │ mov r4, r0 │ │ │ │ │ mov r0, r2 │ │ │ │ │ - ldr r7, [sp, #24] │ │ │ │ │ + strd r6, [sp, #8] │ │ │ │ │ mov r5, r1 │ │ │ │ │ mov r6, r3 │ │ │ │ │ + ldr r7, [sp, #24] │ │ │ │ │ + str r8, [sp, #16] │ │ │ │ │ + str lr, [sp, #20] │ │ │ │ │ bl 0 │ │ │ │ │ R_ARM_CALL MPI_Comm_f2c │ │ │ │ │ + ldr r8, [sp, #16] │ │ │ │ │ + mov r2, r0 │ │ │ │ │ mov r3, r6 │ │ │ │ │ mov r1, r5 │ │ │ │ │ - str r7, [sp, #24] │ │ │ │ │ - mov r2, r0 │ │ │ │ │ mov r0, r4 │ │ │ │ │ - pop {r4, r5, r6, r7, r8, lr} │ │ │ │ │ + str r7, [sp, #24] │ │ │ │ │ + ldrd r4, [sp] │ │ │ │ │ + ldrd r6, [sp, #8] │ │ │ │ │ + ldr lr, [sp, #20] │ │ │ │ │ + add sp, sp, #24 │ │ │ │ │ b 0 │ │ │ │ │ R_ARM_JUMP24 fftwf_mpi_local_size │ │ │ │ │ │ │ │ │ │ -00000124 : │ │ │ │ │ +000001ac : │ │ │ │ │ fftwf_mpi_local_size_many_1d_f03(): │ │ │ │ │ - push {r4, r5, r6, r7, r8, r9, sl, fp, lr} │ │ │ │ │ - sub sp, sp, #4 │ │ │ │ │ + strd r4, [sp, #-36]! @ 0xffffffdc │ │ │ │ │ mov r4, r0 │ │ │ │ │ - add r7, sp, #40 @ 0x28 │ │ │ │ │ mov r0, r2 │ │ │ │ │ - ldm r7, {r7, r8, r9, sl} │ │ │ │ │ - ldr fp, [sp, #56] @ 0x38 │ │ │ │ │ + strd r6, [sp, #8] │ │ │ │ │ mov r5, r1 │ │ │ │ │ mov r6, r3 │ │ │ │ │ + strd r8, [sp, #16] │ │ │ │ │ + strd sl, [sp, #24] │ │ │ │ │ + str lr, [sp, #32] │ │ │ │ │ + sub sp, sp, #4 │ │ │ │ │ + add r7, sp, #40 @ 0x28 │ │ │ │ │ + ldr fp, [sp, #56] @ 0x38 │ │ │ │ │ + ldm r7, {r7, r8, r9, sl} │ │ │ │ │ bl 0 │ │ │ │ │ R_ARM_CALL MPI_Comm_f2c │ │ │ │ │ + mov r2, r0 │ │ │ │ │ mov r3, r6 │ │ │ │ │ mov r1, r5 │ │ │ │ │ - str fp, [sp, #56] @ 0x38 │ │ │ │ │ - str sl, [sp, #52] @ 0x34 │ │ │ │ │ - str r9, [sp, #48] @ 0x30 │ │ │ │ │ - str r8, [sp, #44] @ 0x2c │ │ │ │ │ - str r7, [sp, #40] @ 0x28 │ │ │ │ │ - mov r2, r0 │ │ │ │ │ mov r0, r4 │ │ │ │ │ + str r7, [sp, #40] @ 0x28 │ │ │ │ │ + str r8, [sp, #44] @ 0x2c │ │ │ │ │ + str r9, [sp, #48] @ 0x30 │ │ │ │ │ + str sl, [sp, #52] @ 0x34 │ │ │ │ │ + str fp, [sp, #56] @ 0x38 │ │ │ │ │ add sp, sp, #4 │ │ │ │ │ - pop {r4, r5, r6, r7, r8, r9, sl, fp, lr} │ │ │ │ │ + ldrd r4, [sp] │ │ │ │ │ + ldrd r6, [sp, #8] │ │ │ │ │ + ldrd r8, [sp, #16] │ │ │ │ │ + ldrd sl, [sp, #24] │ │ │ │ │ + ldr lr, [sp, #32] │ │ │ │ │ + add sp, sp, #36 @ 0x24 │ │ │ │ │ b 0 │ │ │ │ │ R_ARM_JUMP24 fftwf_mpi_local_size_many_1d │ │ │ │ │ │ │ │ │ │ -0000017c : │ │ │ │ │ +00000228 : │ │ │ │ │ fftwf_mpi_local_size_1d_f03(): │ │ │ │ │ - push {r4, r5, r6, r7, r8, r9, sl, lr} │ │ │ │ │ + strd r4, [sp, #-32]! @ 0xffffffe0 │ │ │ │ │ mov r4, r0 │ │ │ │ │ - add r7, sp, #32 │ │ │ │ │ mov r0, r1 │ │ │ │ │ - ldm r7, {r7, r8, r9, sl} │ │ │ │ │ + strd r6, [sp, #8] │ │ │ │ │ + add r7, sp, #32 │ │ │ │ │ mov r5, r2 │ │ │ │ │ + strd r8, [sp, #16] │ │ │ │ │ mov r6, r3 │ │ │ │ │ + str sl, [sp, #24] │ │ │ │ │ + ldm r7, {r7, r8, r9, sl} │ │ │ │ │ + str lr, [sp, #28] │ │ │ │ │ bl 0 │ │ │ │ │ R_ARM_CALL MPI_Comm_f2c │ │ │ │ │ + ldr lr, [sp, #28] │ │ │ │ │ + mov r1, r0 │ │ │ │ │ mov r3, r6 │ │ │ │ │ mov r2, r5 │ │ │ │ │ - str sl, [sp, #44] @ 0x2c │ │ │ │ │ - str r9, [sp, #40] @ 0x28 │ │ │ │ │ - str r8, [sp, #36] @ 0x24 │ │ │ │ │ - str r7, [sp, #32] │ │ │ │ │ - mov r1, r0 │ │ │ │ │ mov r0, r4 │ │ │ │ │ - pop {r4, r5, r6, r7, r8, r9, sl, lr} │ │ │ │ │ + str r7, [sp, #32] │ │ │ │ │ + ldrd r4, [sp] │ │ │ │ │ + str r8, [sp, #36] @ 0x24 │ │ │ │ │ + ldrd r6, [sp, #8] │ │ │ │ │ + str r9, [sp, #40] @ 0x28 │ │ │ │ │ + ldrd r8, [sp, #16] │ │ │ │ │ + str sl, [sp, #44] @ 0x2c │ │ │ │ │ + ldr sl, [sp, #24] │ │ │ │ │ + add sp, sp, #32 │ │ │ │ │ b 0 │ │ │ │ │ R_ARM_JUMP24 fftwf_mpi_local_size_1d │ │ │ │ │ │ │ │ │ │ -000001c4 : │ │ │ │ │ +00000294 : │ │ │ │ │ fftwf_mpi_local_size_2d_f03(): │ │ │ │ │ - push {r4, r5, r6, r7, r8, lr} │ │ │ │ │ + strd r4, [sp, #-24]! @ 0xffffffe8 │ │ │ │ │ mov r4, r0 │ │ │ │ │ mov r0, r2 │ │ │ │ │ - ldr r7, [sp, #24] │ │ │ │ │ + strd r6, [sp, #8] │ │ │ │ │ mov r5, r1 │ │ │ │ │ mov r6, r3 │ │ │ │ │ + ldr r7, [sp, #24] │ │ │ │ │ + str r8, [sp, #16] │ │ │ │ │ + str lr, [sp, #20] │ │ │ │ │ bl 0 │ │ │ │ │ R_ARM_CALL MPI_Comm_f2c │ │ │ │ │ + ldr r8, [sp, #16] │ │ │ │ │ + mov r2, r0 │ │ │ │ │ mov r3, r6 │ │ │ │ │ mov r1, r5 │ │ │ │ │ - str r7, [sp, #24] │ │ │ │ │ - mov r2, r0 │ │ │ │ │ mov r0, r4 │ │ │ │ │ - pop {r4, r5, r6, r7, r8, lr} │ │ │ │ │ + str r7, [sp, #24] │ │ │ │ │ + ldrd r4, [sp] │ │ │ │ │ + ldrd r6, [sp, #8] │ │ │ │ │ + ldr lr, [sp, #20] │ │ │ │ │ + add sp, sp, #24 │ │ │ │ │ b 0 │ │ │ │ │ R_ARM_JUMP24 fftwf_mpi_local_size_2d │ │ │ │ │ │ │ │ │ │ -000001fc : │ │ │ │ │ +000002e8 : │ │ │ │ │ fftwf_mpi_local_size_2d_transposed_f03(): │ │ │ │ │ - push {r4, r5, r6, r7, r8, r9, sl, lr} │ │ │ │ │ + strd r4, [sp, #-32]! @ 0xffffffe0 │ │ │ │ │ mov r4, r0 │ │ │ │ │ - add r7, sp, #32 │ │ │ │ │ mov r0, r2 │ │ │ │ │ - ldm r7, {r7, r8, r9} │ │ │ │ │ + strd r6, [sp, #8] │ │ │ │ │ + add r7, sp, #32 │ │ │ │ │ mov r5, r1 │ │ │ │ │ + strd r8, [sp, #16] │ │ │ │ │ mov r6, r3 │ │ │ │ │ + ldm r7, {r7, r8, r9} │ │ │ │ │ + str sl, [sp, #24] │ │ │ │ │ + str lr, [sp, #28] │ │ │ │ │ bl 0 │ │ │ │ │ R_ARM_CALL MPI_Comm_f2c │ │ │ │ │ + ldr sl, [sp, #24] │ │ │ │ │ + mov r2, r0 │ │ │ │ │ mov r3, r6 │ │ │ │ │ mov r1, r5 │ │ │ │ │ - str r9, [sp, #40] @ 0x28 │ │ │ │ │ - str r8, [sp, #36] @ 0x24 │ │ │ │ │ - str r7, [sp, #32] │ │ │ │ │ - mov r2, r0 │ │ │ │ │ mov r0, r4 │ │ │ │ │ - pop {r4, r5, r6, r7, r8, r9, sl, lr} │ │ │ │ │ + str r7, [sp, #32] │ │ │ │ │ + ldrd r4, [sp] │ │ │ │ │ + str r8, [sp, #36] @ 0x24 │ │ │ │ │ + ldrd r6, [sp, #8] │ │ │ │ │ + str r9, [sp, #40] @ 0x28 │ │ │ │ │ + ldrd r8, [sp, #16] │ │ │ │ │ + ldr lr, [sp, #28] │ │ │ │ │ + add sp, sp, #32 │ │ │ │ │ b 0 │ │ │ │ │ R_ARM_JUMP24 fftwf_mpi_local_size_2d_transposed │ │ │ │ │ │ │ │ │ │ -00000240 : │ │ │ │ │ +00000350 : │ │ │ │ │ fftwf_mpi_local_size_3d_f03(): │ │ │ │ │ - push {r4, r5, r6, r7, r8, lr} │ │ │ │ │ + strd r4, [sp, #-24]! @ 0xffffffe8 │ │ │ │ │ mov r4, r0 │ │ │ │ │ mov r0, r3 │ │ │ │ │ - ldr r7, [sp, #24] │ │ │ │ │ - ldr r8, [sp, #28] │ │ │ │ │ + strd r6, [sp, #8] │ │ │ │ │ mov r5, r1 │ │ │ │ │ mov r6, r2 │ │ │ │ │ + ldr r7, [sp, #24] │ │ │ │ │ + str r8, [sp, #16] │ │ │ │ │ + ldr r8, [sp, #28] │ │ │ │ │ + str lr, [sp, #20] │ │ │ │ │ bl 0 │ │ │ │ │ R_ARM_CALL MPI_Comm_f2c │ │ │ │ │ + ldr lr, [sp, #20] │ │ │ │ │ + mov r3, r0 │ │ │ │ │ mov r2, r6 │ │ │ │ │ mov r1, r5 │ │ │ │ │ - str r8, [sp, #28] │ │ │ │ │ - str r7, [sp, #24] │ │ │ │ │ - mov r3, r0 │ │ │ │ │ mov r0, r4 │ │ │ │ │ - pop {r4, r5, r6, r7, r8, lr} │ │ │ │ │ + str r7, [sp, #24] │ │ │ │ │ + ldrd r4, [sp] │ │ │ │ │ + str r8, [sp, #28] │ │ │ │ │ + ldrd r6, [sp, #8] │ │ │ │ │ + ldr r8, [sp, #16] │ │ │ │ │ + add sp, sp, #24 │ │ │ │ │ b 0 │ │ │ │ │ R_ARM_JUMP24 fftwf_mpi_local_size_3d │ │ │ │ │ │ │ │ │ │ -00000280 : │ │ │ │ │ +000003ac : │ │ │ │ │ fftwf_mpi_local_size_3d_transposed_f03(): │ │ │ │ │ - push {r4, r5, r6, r7, r8, r9, sl, lr} │ │ │ │ │ + strd r4, [sp, #-32]! @ 0xffffffe0 │ │ │ │ │ mov r4, r0 │ │ │ │ │ - add r7, sp, #32 │ │ │ │ │ mov r0, r3 │ │ │ │ │ - ldm r7, {r7, r8, r9, sl} │ │ │ │ │ + strd r6, [sp, #8] │ │ │ │ │ + add r7, sp, #32 │ │ │ │ │ mov r5, r1 │ │ │ │ │ + strd r8, [sp, #16] │ │ │ │ │ mov r6, r2 │ │ │ │ │ + str sl, [sp, #24] │ │ │ │ │ + ldm r7, {r7, r8, r9, sl} │ │ │ │ │ + str lr, [sp, #28] │ │ │ │ │ bl 0 │ │ │ │ │ R_ARM_CALL MPI_Comm_f2c │ │ │ │ │ + ldr lr, [sp, #28] │ │ │ │ │ + mov r3, r0 │ │ │ │ │ mov r2, r6 │ │ │ │ │ mov r1, r5 │ │ │ │ │ - str sl, [sp, #44] @ 0x2c │ │ │ │ │ - str r9, [sp, #40] @ 0x28 │ │ │ │ │ - str r8, [sp, #36] @ 0x24 │ │ │ │ │ - str r7, [sp, #32] │ │ │ │ │ - mov r3, r0 │ │ │ │ │ mov r0, r4 │ │ │ │ │ - pop {r4, r5, r6, r7, r8, r9, sl, lr} │ │ │ │ │ + str r7, [sp, #32] │ │ │ │ │ + ldrd r4, [sp] │ │ │ │ │ + str r8, [sp, #36] @ 0x24 │ │ │ │ │ + ldrd r6, [sp, #8] │ │ │ │ │ + str r9, [sp, #40] @ 0x28 │ │ │ │ │ + ldrd r8, [sp, #16] │ │ │ │ │ + str sl, [sp, #44] @ 0x2c │ │ │ │ │ + ldr sl, [sp, #24] │ │ │ │ │ + add sp, sp, #32 │ │ │ │ │ b 0 │ │ │ │ │ R_ARM_JUMP24 fftwf_mpi_local_size_3d_transposed │ │ │ │ │ │ │ │ │ │ -000002c8 : │ │ │ │ │ +00000418 : │ │ │ │ │ fftwf_mpi_plan_many_transpose_f03(): │ │ │ │ │ - push {r4, r5, r6, r7, r8, r9, sl, fp, lr} │ │ │ │ │ - sub sp, sp, #4 │ │ │ │ │ + strd r4, [sp, #-36]! @ 0xffffffdc │ │ │ │ │ mov r4, r0 │ │ │ │ │ - ldr r0, [sp, #52] @ 0x34 │ │ │ │ │ - ldrd r8, [sp, #40] @ 0x28 │ │ │ │ │ - ldr sl, [sp, #48] @ 0x30 │ │ │ │ │ - ldr fp, [sp, #56] @ 0x38 │ │ │ │ │ mov r5, r1 │ │ │ │ │ + strd r6, [sp, #8] │ │ │ │ │ mov r6, r2 │ │ │ │ │ mov r7, r3 │ │ │ │ │ + strd r8, [sp, #16] │ │ │ │ │ + strd sl, [sp, #24] │ │ │ │ │ + str lr, [sp, #32] │ │ │ │ │ + sub sp, sp, #4 │ │ │ │ │ + ldrd r8, [sp, #40] @ 0x28 │ │ │ │ │ + ldr sl, [sp, #48] @ 0x30 │ │ │ │ │ + ldr r0, [sp, #52] @ 0x34 │ │ │ │ │ + ldr fp, [sp, #56] @ 0x38 │ │ │ │ │ bl 0 │ │ │ │ │ R_ARM_CALL MPI_Comm_f2c │ │ │ │ │ mov r3, r7 │ │ │ │ │ mov r2, r6 │ │ │ │ │ - mov r1, r5 │ │ │ │ │ - str fp, [sp, #56] @ 0x38 │ │ │ │ │ - str sl, [sp, #48] @ 0x30 │ │ │ │ │ - str r9, [sp, #44] @ 0x2c │ │ │ │ │ str r8, [sp, #40] @ 0x28 │ │ │ │ │ + mov r1, r5 │ │ │ │ │ str r0, [sp, #52] @ 0x34 │ │ │ │ │ mov r0, r4 │ │ │ │ │ + str r9, [sp, #44] @ 0x2c │ │ │ │ │ + str sl, [sp, #48] @ 0x30 │ │ │ │ │ + str fp, [sp, #56] @ 0x38 │ │ │ │ │ add sp, sp, #4 │ │ │ │ │ - pop {r4, r5, r6, r7, r8, r9, sl, fp, lr} │ │ │ │ │ + ldrd r4, [sp] │ │ │ │ │ + ldrd r6, [sp, #8] │ │ │ │ │ + ldrd r8, [sp, #16] │ │ │ │ │ + ldrd sl, [sp, #24] │ │ │ │ │ + ldr lr, [sp, #32] │ │ │ │ │ + add sp, sp, #36 @ 0x24 │ │ │ │ │ b 0 │ │ │ │ │ R_ARM_JUMP24 fftwf_mpi_plan_many_transpose │ │ │ │ │ │ │ │ │ │ -00000324 : │ │ │ │ │ +00000498 : │ │ │ │ │ fftwf_mpi_plan_transpose_f03(): │ │ │ │ │ - push {r4, r5, r6, r7, r8, lr} │ │ │ │ │ + strd r4, [sp, #-24]! @ 0xffffffe8 │ │ │ │ │ mov r4, r0 │ │ │ │ │ + mov r5, r1 │ │ │ │ │ ldr r0, [sp, #24] │ │ │ │ │ + str r8, [sp, #16] │ │ │ │ │ ldr r8, [sp, #28] │ │ │ │ │ - mov r5, r1 │ │ │ │ │ + strd r6, [sp, #8] │ │ │ │ │ mov r6, r2 │ │ │ │ │ mov r7, r3 │ │ │ │ │ + str lr, [sp, #20] │ │ │ │ │ bl 0 │ │ │ │ │ R_ARM_CALL MPI_Comm_f2c │ │ │ │ │ + ldr lr, [sp, #20] │ │ │ │ │ mov r3, r7 │ │ │ │ │ mov r2, r6 │ │ │ │ │ mov r1, r5 │ │ │ │ │ - str r8, [sp, #28] │ │ │ │ │ str r0, [sp, #24] │ │ │ │ │ mov r0, r4 │ │ │ │ │ - pop {r4, r5, r6, r7, r8, lr} │ │ │ │ │ + ldrd r4, [sp] │ │ │ │ │ + str r8, [sp, #28] │ │ │ │ │ + ldrd r6, [sp, #8] │ │ │ │ │ + ldr r8, [sp, #16] │ │ │ │ │ + add sp, sp, #24 │ │ │ │ │ b 0 │ │ │ │ │ R_ARM_JUMP24 fftwf_mpi_plan_transpose │ │ │ │ │ │ │ │ │ │ -00000364 : │ │ │ │ │ +000004f4 : │ │ │ │ │ fftwf_mpi_plan_many_dft_f03(): │ │ │ │ │ - push {r4, r5, r6, r7, r8, r9, sl, fp, lr} │ │ │ │ │ + strd r4, [sp, #-36]! @ 0xffffffdc │ │ │ │ │ + mov r5, r1 │ │ │ │ │ + strd r6, [sp, #8] │ │ │ │ │ + mov r6, r2 │ │ │ │ │ + mov r7, r3 │ │ │ │ │ + strd r8, [sp, #16] │ │ │ │ │ + strd sl, [sp, #24] │ │ │ │ │ + str lr, [sp, #32] │ │ │ │ │ sub sp, sp, #12 │ │ │ │ │ - str r0, [sp, #4] │ │ │ │ │ - ldr r0, [sp, #60] @ 0x3c │ │ │ │ │ ldrd r8, [sp, #48] @ 0x30 │ │ │ │ │ + str r0, [sp, #4] │ │ │ │ │ ldr sl, [sp, #56] @ 0x38 │ │ │ │ │ + ldr r0, [sp, #60] @ 0x3c │ │ │ │ │ ldr fp, [sp, #64] @ 0x40 │ │ │ │ │ ldr r4, [sp, #68] @ 0x44 │ │ │ │ │ - mov r5, r1 │ │ │ │ │ - mov r6, r2 │ │ │ │ │ - mov r7, r3 │ │ │ │ │ bl 0 │ │ │ │ │ R_ARM_CALL MPI_Comm_f2c │ │ │ │ │ mov r3, r7 │ │ │ │ │ mov r2, r6 │ │ │ │ │ - mov r1, r5 │ │ │ │ │ - str r4, [sp, #68] @ 0x44 │ │ │ │ │ - str fp, [sp, #64] @ 0x40 │ │ │ │ │ - str sl, [sp, #56] @ 0x38 │ │ │ │ │ - str r9, [sp, #52] @ 0x34 │ │ │ │ │ str r8, [sp, #48] @ 0x30 │ │ │ │ │ str r0, [sp, #60] @ 0x3c │ │ │ │ │ + mov r1, r5 │ │ │ │ │ ldr r0, [sp, #4] │ │ │ │ │ + str r9, [sp, #52] @ 0x34 │ │ │ │ │ + str sl, [sp, #56] @ 0x38 │ │ │ │ │ + str fp, [sp, #64] @ 0x40 │ │ │ │ │ + str r4, [sp, #68] @ 0x44 │ │ │ │ │ add sp, sp, #12 │ │ │ │ │ - pop {r4, r5, r6, r7, r8, r9, sl, fp, lr} │ │ │ │ │ + ldrd r4, [sp] │ │ │ │ │ + ldrd r6, [sp, #8] │ │ │ │ │ + ldrd r8, [sp, #16] │ │ │ │ │ + ldrd sl, [sp, #24] │ │ │ │ │ + ldr lr, [sp, #32] │ │ │ │ │ + add sp, sp, #36 @ 0x24 │ │ │ │ │ b 0 │ │ │ │ │ R_ARM_JUMP24 fftwf_mpi_plan_many_dft │ │ │ │ │ │ │ │ │ │ -000003c8 : │ │ │ │ │ +0000057c : │ │ │ │ │ fftwf_mpi_plan_dft_f03(): │ │ │ │ │ - push {r4, r5, r6, r7, r8, r9, sl, lr} │ │ │ │ │ + strd r4, [sp, #-32]! @ 0xffffffe0 │ │ │ │ │ mov r4, r0 │ │ │ │ │ add r0, sp, #32 │ │ │ │ │ - ldm r0, {r0, r8, r9} │ │ │ │ │ mov r5, r1 │ │ │ │ │ + strd r6, [sp, #8] │ │ │ │ │ mov r6, r2 │ │ │ │ │ + strd r8, [sp, #16] │ │ │ │ │ mov r7, r3 │ │ │ │ │ + ldm r0, {r0, r8, r9} │ │ │ │ │ + str sl, [sp, #24] │ │ │ │ │ + str lr, [sp, #28] │ │ │ │ │ bl 0 │ │ │ │ │ R_ARM_CALL MPI_Comm_f2c │ │ │ │ │ + ldr sl, [sp, #24] │ │ │ │ │ mov r3, r7 │ │ │ │ │ mov r2, r6 │ │ │ │ │ mov r1, r5 │ │ │ │ │ - str r9, [sp, #40] @ 0x28 │ │ │ │ │ - str r8, [sp, #36] @ 0x24 │ │ │ │ │ str r0, [sp, #32] │ │ │ │ │ mov r0, r4 │ │ │ │ │ - pop {r4, r5, r6, r7, r8, r9, sl, lr} │ │ │ │ │ + ldrd r4, [sp] │ │ │ │ │ + str r8, [sp, #36] @ 0x24 │ │ │ │ │ + ldrd r6, [sp, #8] │ │ │ │ │ + str r9, [sp, #40] @ 0x28 │ │ │ │ │ + ldrd r8, [sp, #16] │ │ │ │ │ + ldr lr, [sp, #28] │ │ │ │ │ + add sp, sp, #32 │ │ │ │ │ b 0 │ │ │ │ │ R_ARM_JUMP24 fftwf_mpi_plan_dft │ │ │ │ │ │ │ │ │ │ -0000040c : │ │ │ │ │ +000005e4 : │ │ │ │ │ fftwf_mpi_plan_dft_1d_f03(): │ │ │ │ │ - push {r4, r5, r6, r7, r8, lr} │ │ │ │ │ + strd r4, [sp, #-24]! @ 0xffffffe8 │ │ │ │ │ mov r4, r0 │ │ │ │ │ mov r0, r3 │ │ │ │ │ - ldr r7, [sp, #24] │ │ │ │ │ - ldr r8, [sp, #28] │ │ │ │ │ + strd r6, [sp, #8] │ │ │ │ │ mov r5, r1 │ │ │ │ │ mov r6, r2 │ │ │ │ │ + ldr r7, [sp, #24] │ │ │ │ │ + str r8, [sp, #16] │ │ │ │ │ + ldr r8, [sp, #28] │ │ │ │ │ + str lr, [sp, #20] │ │ │ │ │ bl 0 │ │ │ │ │ R_ARM_CALL MPI_Comm_f2c │ │ │ │ │ + ldr lr, [sp, #20] │ │ │ │ │ + mov r3, r0 │ │ │ │ │ mov r2, r6 │ │ │ │ │ mov r1, r5 │ │ │ │ │ - str r8, [sp, #28] │ │ │ │ │ - str r7, [sp, #24] │ │ │ │ │ - mov r3, r0 │ │ │ │ │ mov r0, r4 │ │ │ │ │ - pop {r4, r5, r6, r7, r8, lr} │ │ │ │ │ + str r7, [sp, #24] │ │ │ │ │ + ldrd r4, [sp] │ │ │ │ │ + str r8, [sp, #28] │ │ │ │ │ + ldrd r6, [sp, #8] │ │ │ │ │ + ldr r8, [sp, #16] │ │ │ │ │ + add sp, sp, #24 │ │ │ │ │ b 0 │ │ │ │ │ R_ARM_JUMP24 fftwf_mpi_plan_dft_1d │ │ │ │ │ │ │ │ │ │ -0000044c : │ │ │ │ │ +00000640 : │ │ │ │ │ fftwf_mpi_plan_dft_2d_f03(): │ │ │ │ │ - push {r4, r5, r6, r7, r8, r9, sl, lr} │ │ │ │ │ + strd r4, [sp, #-32]! @ 0xffffffe0 │ │ │ │ │ mov r4, r0 │ │ │ │ │ add r0, sp, #32 │ │ │ │ │ - ldm r0, {r0, r8, r9} │ │ │ │ │ mov r5, r1 │ │ │ │ │ + strd r6, [sp, #8] │ │ │ │ │ mov r6, r2 │ │ │ │ │ + strd r8, [sp, #16] │ │ │ │ │ mov r7, r3 │ │ │ │ │ + ldm r0, {r0, r8, r9} │ │ │ │ │ + str sl, [sp, #24] │ │ │ │ │ + str lr, [sp, #28] │ │ │ │ │ bl 0 │ │ │ │ │ R_ARM_CALL MPI_Comm_f2c │ │ │ │ │ + ldr sl, [sp, #24] │ │ │ │ │ mov r3, r7 │ │ │ │ │ mov r2, r6 │ │ │ │ │ mov r1, r5 │ │ │ │ │ - str r9, [sp, #40] @ 0x28 │ │ │ │ │ - str r8, [sp, #36] @ 0x24 │ │ │ │ │ str r0, [sp, #32] │ │ │ │ │ mov r0, r4 │ │ │ │ │ - pop {r4, r5, r6, r7, r8, r9, sl, lr} │ │ │ │ │ + ldrd r4, [sp] │ │ │ │ │ + str r8, [sp, #36] @ 0x24 │ │ │ │ │ + ldrd r6, [sp, #8] │ │ │ │ │ + str r9, [sp, #40] @ 0x28 │ │ │ │ │ + ldrd r8, [sp, #16] │ │ │ │ │ + ldr lr, [sp, #28] │ │ │ │ │ + add sp, sp, #32 │ │ │ │ │ b 0 │ │ │ │ │ R_ARM_JUMP24 fftwf_mpi_plan_dft_2d │ │ │ │ │ │ │ │ │ │ -00000490 : │ │ │ │ │ +000006a8 : │ │ │ │ │ fftwf_mpi_plan_dft_3d_f03(): │ │ │ │ │ - push {r4, r5, r6, r7, r8, r9, sl, lr} │ │ │ │ │ + strd r4, [sp, #-32]! @ 0xffffffe0 │ │ │ │ │ mov r4, r0 │ │ │ │ │ add r0, sp, #36 @ 0x24 │ │ │ │ │ - ldm r0, {r0, r9, sl} │ │ │ │ │ - ldr r8, [sp, #32] │ │ │ │ │ mov r5, r1 │ │ │ │ │ + strd r6, [sp, #8] │ │ │ │ │ mov r6, r2 │ │ │ │ │ + strd r8, [sp, #16] │ │ │ │ │ mov r7, r3 │ │ │ │ │ + ldr r8, [sp, #32] │ │ │ │ │ + str sl, [sp, #24] │ │ │ │ │ + ldm r0, {r0, r9, sl} │ │ │ │ │ + str lr, [sp, #28] │ │ │ │ │ bl 0 │ │ │ │ │ R_ARM_CALL MPI_Comm_f2c │ │ │ │ │ + ldr lr, [sp, #28] │ │ │ │ │ mov r3, r7 │ │ │ │ │ mov r2, r6 │ │ │ │ │ mov r1, r5 │ │ │ │ │ - str sl, [sp, #44] @ 0x2c │ │ │ │ │ - str r9, [sp, #40] @ 0x28 │ │ │ │ │ str r8, [sp, #32] │ │ │ │ │ + ldrd r6, [sp, #8] │ │ │ │ │ str r0, [sp, #36] @ 0x24 │ │ │ │ │ mov r0, r4 │ │ │ │ │ - pop {r4, r5, r6, r7, r8, r9, sl, lr} │ │ │ │ │ + ldrd r4, [sp] │ │ │ │ │ + str r9, [sp, #40] @ 0x28 │ │ │ │ │ + ldrd r8, [sp, #16] │ │ │ │ │ + str sl, [sp, #44] @ 0x2c │ │ │ │ │ + ldr sl, [sp, #24] │ │ │ │ │ + add sp, sp, #32 │ │ │ │ │ b 0 │ │ │ │ │ R_ARM_JUMP24 fftwf_mpi_plan_dft_3d │ │ │ │ │ │ │ │ │ │ -000004dc : │ │ │ │ │ +00000718 : │ │ │ │ │ fftwf_mpi_plan_many_r2r_f03(): │ │ │ │ │ - push {r4, r5, r6, r7, r8, r9, sl, fp, lr} │ │ │ │ │ + strd r4, [sp, #-36]! @ 0xffffffdc │ │ │ │ │ + mov r5, r1 │ │ │ │ │ + strd r6, [sp, #8] │ │ │ │ │ + mov r6, r2 │ │ │ │ │ + mov r7, r3 │ │ │ │ │ + strd r8, [sp, #16] │ │ │ │ │ + strd sl, [sp, #24] │ │ │ │ │ + str lr, [sp, #32] │ │ │ │ │ sub sp, sp, #12 │ │ │ │ │ - str r0, [sp, #4] │ │ │ │ │ - ldr r0, [sp, #60] @ 0x3c │ │ │ │ │ ldrd r8, [sp, #48] @ 0x30 │ │ │ │ │ + str r0, [sp, #4] │ │ │ │ │ ldr sl, [sp, #56] @ 0x38 │ │ │ │ │ + ldr r0, [sp, #60] @ 0x3c │ │ │ │ │ ldr fp, [sp, #64] @ 0x40 │ │ │ │ │ ldr r4, [sp, #68] @ 0x44 │ │ │ │ │ - mov r5, r1 │ │ │ │ │ - mov r6, r2 │ │ │ │ │ - mov r7, r3 │ │ │ │ │ bl 0 │ │ │ │ │ R_ARM_CALL MPI_Comm_f2c │ │ │ │ │ mov r3, r7 │ │ │ │ │ mov r2, r6 │ │ │ │ │ - mov r1, r5 │ │ │ │ │ - str r4, [sp, #68] @ 0x44 │ │ │ │ │ - str fp, [sp, #64] @ 0x40 │ │ │ │ │ - str sl, [sp, #56] @ 0x38 │ │ │ │ │ - str r9, [sp, #52] @ 0x34 │ │ │ │ │ str r8, [sp, #48] @ 0x30 │ │ │ │ │ str r0, [sp, #60] @ 0x3c │ │ │ │ │ + mov r1, r5 │ │ │ │ │ ldr r0, [sp, #4] │ │ │ │ │ + str r9, [sp, #52] @ 0x34 │ │ │ │ │ + str sl, [sp, #56] @ 0x38 │ │ │ │ │ + str fp, [sp, #64] @ 0x40 │ │ │ │ │ + str r4, [sp, #68] @ 0x44 │ │ │ │ │ add sp, sp, #12 │ │ │ │ │ - pop {r4, r5, r6, r7, r8, r9, sl, fp, lr} │ │ │ │ │ + ldrd r4, [sp] │ │ │ │ │ + ldrd r6, [sp, #8] │ │ │ │ │ + ldrd r8, [sp, #16] │ │ │ │ │ + ldrd sl, [sp, #24] │ │ │ │ │ + ldr lr, [sp, #32] │ │ │ │ │ + add sp, sp, #36 @ 0x24 │ │ │ │ │ b 0 │ │ │ │ │ R_ARM_JUMP24 fftwf_mpi_plan_many_r2r │ │ │ │ │ │ │ │ │ │ -00000540 : │ │ │ │ │ +000007a0 : │ │ │ │ │ fftwf_mpi_plan_r2r_f03(): │ │ │ │ │ - push {r4, r5, r6, r7, r8, r9, sl, lr} │ │ │ │ │ + strd r4, [sp, #-32]! @ 0xffffffe0 │ │ │ │ │ mov r4, r0 │ │ │ │ │ add r0, sp, #32 │ │ │ │ │ - ldm r0, {r0, r8, r9} │ │ │ │ │ mov r5, r1 │ │ │ │ │ + strd r6, [sp, #8] │ │ │ │ │ mov r6, r2 │ │ │ │ │ + strd r8, [sp, #16] │ │ │ │ │ mov r7, r3 │ │ │ │ │ + ldm r0, {r0, r8, r9} │ │ │ │ │ + str sl, [sp, #24] │ │ │ │ │ + str lr, [sp, #28] │ │ │ │ │ bl 0 │ │ │ │ │ R_ARM_CALL MPI_Comm_f2c │ │ │ │ │ + ldr sl, [sp, #24] │ │ │ │ │ mov r3, r7 │ │ │ │ │ mov r2, r6 │ │ │ │ │ mov r1, r5 │ │ │ │ │ - str r9, [sp, #40] @ 0x28 │ │ │ │ │ - str r8, [sp, #36] @ 0x24 │ │ │ │ │ str r0, [sp, #32] │ │ │ │ │ mov r0, r4 │ │ │ │ │ - pop {r4, r5, r6, r7, r8, r9, sl, lr} │ │ │ │ │ + ldrd r4, [sp] │ │ │ │ │ + str r8, [sp, #36] @ 0x24 │ │ │ │ │ + ldrd r6, [sp, #8] │ │ │ │ │ + str r9, [sp, #40] @ 0x28 │ │ │ │ │ + ldrd r8, [sp, #16] │ │ │ │ │ + ldr lr, [sp, #28] │ │ │ │ │ + add sp, sp, #32 │ │ │ │ │ b 0 │ │ │ │ │ R_ARM_JUMP24 fftwf_mpi_plan_r2r │ │ │ │ │ │ │ │ │ │ -00000584 : │ │ │ │ │ +00000808 : │ │ │ │ │ fftwf_mpi_plan_r2r_2d_f03(): │ │ │ │ │ - push {r4, r5, r6, r7, r8, r9, sl, lr} │ │ │ │ │ + strd r4, [sp, #-32]! @ 0xffffffe0 │ │ │ │ │ mov r4, r0 │ │ │ │ │ add r0, sp, #32 │ │ │ │ │ - ldm r0, {r0, r8, r9, sl} │ │ │ │ │ mov r5, r1 │ │ │ │ │ + strd r6, [sp, #8] │ │ │ │ │ mov r6, r2 │ │ │ │ │ + strd r8, [sp, #16] │ │ │ │ │ mov r7, r3 │ │ │ │ │ + str sl, [sp, #24] │ │ │ │ │ + ldm r0, {r0, r8, r9, sl} │ │ │ │ │ + str lr, [sp, #28] │ │ │ │ │ bl 0 │ │ │ │ │ R_ARM_CALL MPI_Comm_f2c │ │ │ │ │ + ldr lr, [sp, #28] │ │ │ │ │ mov r3, r7 │ │ │ │ │ mov r2, r6 │ │ │ │ │ mov r1, r5 │ │ │ │ │ - str sl, [sp, #44] @ 0x2c │ │ │ │ │ - str r9, [sp, #40] @ 0x28 │ │ │ │ │ - str r8, [sp, #36] @ 0x24 │ │ │ │ │ str r0, [sp, #32] │ │ │ │ │ mov r0, r4 │ │ │ │ │ - pop {r4, r5, r6, r7, r8, r9, sl, lr} │ │ │ │ │ + ldrd r4, [sp] │ │ │ │ │ + str r8, [sp, #36] @ 0x24 │ │ │ │ │ + ldrd r6, [sp, #8] │ │ │ │ │ + str r9, [sp, #40] @ 0x28 │ │ │ │ │ + ldrd r8, [sp, #16] │ │ │ │ │ + str sl, [sp, #44] @ 0x2c │ │ │ │ │ + ldr sl, [sp, #24] │ │ │ │ │ + add sp, sp, #32 │ │ │ │ │ b 0 │ │ │ │ │ R_ARM_JUMP24 fftwf_mpi_plan_r2r_2d │ │ │ │ │ │ │ │ │ │ -000005cc : │ │ │ │ │ +00000874 : │ │ │ │ │ fftwf_mpi_plan_r2r_3d_f03(): │ │ │ │ │ - push {r4, r5, r6, r7, r8, r9, sl, fp, lr} │ │ │ │ │ + strd r4, [sp, #-36]! @ 0xffffffdc │ │ │ │ │ + mov r5, r1 │ │ │ │ │ + strd r6, [sp, #8] │ │ │ │ │ + mov r6, r2 │ │ │ │ │ + mov r7, r3 │ │ │ │ │ + strd r8, [sp, #16] │ │ │ │ │ + strd sl, [sp, #24] │ │ │ │ │ + str lr, [sp, #32] │ │ │ │ │ sub sp, sp, #12 │ │ │ │ │ - str r0, [sp, #4] │ │ │ │ │ add r9, sp, #56 @ 0x38 │ │ │ │ │ + ldr r8, [sp, #48] @ 0x30 │ │ │ │ │ + str r0, [sp, #4] │ │ │ │ │ ldr r0, [sp, #52] @ 0x34 │ │ │ │ │ ldm r9, {r9, sl, fp} │ │ │ │ │ - ldr r8, [sp, #48] @ 0x30 │ │ │ │ │ ldr r4, [sp, #68] @ 0x44 │ │ │ │ │ - mov r5, r1 │ │ │ │ │ - mov r6, r2 │ │ │ │ │ - mov r7, r3 │ │ │ │ │ bl 0 │ │ │ │ │ R_ARM_CALL MPI_Comm_f2c │ │ │ │ │ mov r3, r7 │ │ │ │ │ mov r2, r6 │ │ │ │ │ - mov r1, r5 │ │ │ │ │ - str r4, [sp, #68] @ 0x44 │ │ │ │ │ - str fp, [sp, #64] @ 0x40 │ │ │ │ │ - str sl, [sp, #60] @ 0x3c │ │ │ │ │ - str r9, [sp, #56] @ 0x38 │ │ │ │ │ str r8, [sp, #48] @ 0x30 │ │ │ │ │ str r0, [sp, #52] @ 0x34 │ │ │ │ │ + mov r1, r5 │ │ │ │ │ ldr r0, [sp, #4] │ │ │ │ │ + str r9, [sp, #56] @ 0x38 │ │ │ │ │ + str sl, [sp, #60] @ 0x3c │ │ │ │ │ + str fp, [sp, #64] @ 0x40 │ │ │ │ │ + str r4, [sp, #68] @ 0x44 │ │ │ │ │ add sp, sp, #12 │ │ │ │ │ - pop {r4, r5, r6, r7, r8, r9, sl, fp, lr} │ │ │ │ │ + ldrd r4, [sp] │ │ │ │ │ + ldrd r6, [sp, #8] │ │ │ │ │ + ldrd r8, [sp, #16] │ │ │ │ │ + ldrd sl, [sp, #24] │ │ │ │ │ + ldr lr, [sp, #32] │ │ │ │ │ + add sp, sp, #36 @ 0x24 │ │ │ │ │ b 0 │ │ │ │ │ R_ARM_JUMP24 fftwf_mpi_plan_r2r_3d │ │ │ │ │ │ │ │ │ │ -00000630 : │ │ │ │ │ +000008fc : │ │ │ │ │ fftwf_mpi_plan_many_dft_r2c_f03(): │ │ │ │ │ - push {r4, r5, r6, r7, r8, r9, sl, fp, lr} │ │ │ │ │ - sub sp, sp, #4 │ │ │ │ │ + strd r4, [sp, #-36]! @ 0xffffffdc │ │ │ │ │ mov r4, r0 │ │ │ │ │ - ldr r0, [sp, #52] @ 0x34 │ │ │ │ │ - ldrd r8, [sp, #40] @ 0x28 │ │ │ │ │ - ldr sl, [sp, #48] @ 0x30 │ │ │ │ │ - ldr fp, [sp, #56] @ 0x38 │ │ │ │ │ mov r5, r1 │ │ │ │ │ + strd r6, [sp, #8] │ │ │ │ │ mov r6, r2 │ │ │ │ │ mov r7, r3 │ │ │ │ │ + strd r8, [sp, #16] │ │ │ │ │ + strd sl, [sp, #24] │ │ │ │ │ + str lr, [sp, #32] │ │ │ │ │ + sub sp, sp, #4 │ │ │ │ │ + ldrd r8, [sp, #40] @ 0x28 │ │ │ │ │ + ldr sl, [sp, #48] @ 0x30 │ │ │ │ │ + ldr r0, [sp, #52] @ 0x34 │ │ │ │ │ + ldr fp, [sp, #56] @ 0x38 │ │ │ │ │ bl 0 │ │ │ │ │ R_ARM_CALL MPI_Comm_f2c │ │ │ │ │ mov r3, r7 │ │ │ │ │ mov r2, r6 │ │ │ │ │ - mov r1, r5 │ │ │ │ │ - str fp, [sp, #56] @ 0x38 │ │ │ │ │ - str sl, [sp, #48] @ 0x30 │ │ │ │ │ - str r9, [sp, #44] @ 0x2c │ │ │ │ │ str r8, [sp, #40] @ 0x28 │ │ │ │ │ + mov r1, r5 │ │ │ │ │ str r0, [sp, #52] @ 0x34 │ │ │ │ │ mov r0, r4 │ │ │ │ │ + str r9, [sp, #44] @ 0x2c │ │ │ │ │ + str sl, [sp, #48] @ 0x30 │ │ │ │ │ + str fp, [sp, #56] @ 0x38 │ │ │ │ │ add sp, sp, #4 │ │ │ │ │ - pop {r4, r5, r6, r7, r8, r9, sl, fp, lr} │ │ │ │ │ + ldrd r4, [sp] │ │ │ │ │ + ldrd r6, [sp, #8] │ │ │ │ │ + ldrd r8, [sp, #16] │ │ │ │ │ + ldrd sl, [sp, #24] │ │ │ │ │ + ldr lr, [sp, #32] │ │ │ │ │ + add sp, sp, #36 @ 0x24 │ │ │ │ │ b 0 │ │ │ │ │ R_ARM_JUMP24 fftwf_mpi_plan_many_dft_r2c │ │ │ │ │ │ │ │ │ │ -0000068c : │ │ │ │ │ +0000097c : │ │ │ │ │ fftwf_mpi_plan_dft_r2c_f03(): │ │ │ │ │ - push {r4, r5, r6, r7, r8, lr} │ │ │ │ │ + strd r4, [sp, #-24]! @ 0xffffffe8 │ │ │ │ │ mov r4, r0 │ │ │ │ │ + mov r5, r1 │ │ │ │ │ ldr r0, [sp, #24] │ │ │ │ │ + str r8, [sp, #16] │ │ │ │ │ ldr r8, [sp, #28] │ │ │ │ │ - mov r5, r1 │ │ │ │ │ + strd r6, [sp, #8] │ │ │ │ │ mov r6, r2 │ │ │ │ │ mov r7, r3 │ │ │ │ │ + str lr, [sp, #20] │ │ │ │ │ bl 0 │ │ │ │ │ R_ARM_CALL MPI_Comm_f2c │ │ │ │ │ + ldr lr, [sp, #20] │ │ │ │ │ mov r3, r7 │ │ │ │ │ mov r2, r6 │ │ │ │ │ mov r1, r5 │ │ │ │ │ - str r8, [sp, #28] │ │ │ │ │ str r0, [sp, #24] │ │ │ │ │ mov r0, r4 │ │ │ │ │ - pop {r4, r5, r6, r7, r8, lr} │ │ │ │ │ + ldrd r4, [sp] │ │ │ │ │ + str r8, [sp, #28] │ │ │ │ │ + ldrd r6, [sp, #8] │ │ │ │ │ + ldr r8, [sp, #16] │ │ │ │ │ + add sp, sp, #24 │ │ │ │ │ b 0 │ │ │ │ │ R_ARM_JUMP24 fftwf_mpi_plan_dft_r2c │ │ │ │ │ │ │ │ │ │ -000006cc : │ │ │ │ │ +000009d8 : │ │ │ │ │ fftwf_mpi_plan_dft_r2c_2d_f03(): │ │ │ │ │ - push {r4, r5, r6, r7, r8, lr} │ │ │ │ │ + strd r4, [sp, #-24]! @ 0xffffffe8 │ │ │ │ │ mov r4, r0 │ │ │ │ │ + mov r5, r1 │ │ │ │ │ ldr r0, [sp, #24] │ │ │ │ │ + str r8, [sp, #16] │ │ │ │ │ ldr r8, [sp, #28] │ │ │ │ │ - mov r5, r1 │ │ │ │ │ + strd r6, [sp, #8] │ │ │ │ │ mov r6, r2 │ │ │ │ │ mov r7, r3 │ │ │ │ │ + str lr, [sp, #20] │ │ │ │ │ bl 0 │ │ │ │ │ R_ARM_CALL MPI_Comm_f2c │ │ │ │ │ + ldr lr, [sp, #20] │ │ │ │ │ mov r3, r7 │ │ │ │ │ mov r2, r6 │ │ │ │ │ mov r1, r5 │ │ │ │ │ - str r8, [sp, #28] │ │ │ │ │ str r0, [sp, #24] │ │ │ │ │ mov r0, r4 │ │ │ │ │ - pop {r4, r5, r6, r7, r8, lr} │ │ │ │ │ + ldrd r4, [sp] │ │ │ │ │ + str r8, [sp, #28] │ │ │ │ │ + ldrd r6, [sp, #8] │ │ │ │ │ + ldr r8, [sp, #16] │ │ │ │ │ + add sp, sp, #24 │ │ │ │ │ b 0 │ │ │ │ │ R_ARM_JUMP24 fftwf_mpi_plan_dft_r2c_2d │ │ │ │ │ │ │ │ │ │ -0000070c : │ │ │ │ │ +00000a34 : │ │ │ │ │ fftwf_mpi_plan_dft_r2c_3d_f03(): │ │ │ │ │ - push {r4, r5, r6, r7, r8, r9, sl, lr} │ │ │ │ │ + strd r4, [sp, #-32]! @ 0xffffffe0 │ │ │ │ │ mov r4, r0 │ │ │ │ │ + mov r5, r1 │ │ │ │ │ ldr r0, [sp, #36] @ 0x24 │ │ │ │ │ + strd r8, [sp, #16] │ │ │ │ │ ldr r8, [sp, #32] │ │ │ │ │ - ldr r9, [sp, #40] @ 0x28 │ │ │ │ │ - mov r5, r1 │ │ │ │ │ + strd r6, [sp, #8] │ │ │ │ │ mov r6, r2 │ │ │ │ │ mov r7, r3 │ │ │ │ │ + ldr r9, [sp, #40] @ 0x28 │ │ │ │ │ + str sl, [sp, #24] │ │ │ │ │ + str lr, [sp, #28] │ │ │ │ │ bl 0 │ │ │ │ │ R_ARM_CALL MPI_Comm_f2c │ │ │ │ │ + ldr sl, [sp, #24] │ │ │ │ │ mov r3, r7 │ │ │ │ │ mov r2, r6 │ │ │ │ │ mov r1, r5 │ │ │ │ │ - str r9, [sp, #40] @ 0x28 │ │ │ │ │ str r8, [sp, #32] │ │ │ │ │ + ldrd r6, [sp, #8] │ │ │ │ │ str r0, [sp, #36] @ 0x24 │ │ │ │ │ mov r0, r4 │ │ │ │ │ - pop {r4, r5, r6, r7, r8, r9, sl, lr} │ │ │ │ │ + ldrd r4, [sp] │ │ │ │ │ + str r9, [sp, #40] @ 0x28 │ │ │ │ │ + ldrd r8, [sp, #16] │ │ │ │ │ + ldr lr, [sp, #28] │ │ │ │ │ + add sp, sp, #32 │ │ │ │ │ b 0 │ │ │ │ │ R_ARM_JUMP24 fftwf_mpi_plan_dft_r2c_3d │ │ │ │ │ │ │ │ │ │ -00000754 : │ │ │ │ │ +00000aa0 : │ │ │ │ │ fftwf_mpi_plan_many_dft_c2r_f03(): │ │ │ │ │ - push {r4, r5, r6, r7, r8, r9, sl, fp, lr} │ │ │ │ │ - sub sp, sp, #4 │ │ │ │ │ + strd r4, [sp, #-36]! @ 0xffffffdc │ │ │ │ │ mov r4, r0 │ │ │ │ │ - ldr r0, [sp, #52] @ 0x34 │ │ │ │ │ - ldrd r8, [sp, #40] @ 0x28 │ │ │ │ │ - ldr sl, [sp, #48] @ 0x30 │ │ │ │ │ - ldr fp, [sp, #56] @ 0x38 │ │ │ │ │ mov r5, r1 │ │ │ │ │ + strd r6, [sp, #8] │ │ │ │ │ mov r6, r2 │ │ │ │ │ mov r7, r3 │ │ │ │ │ + strd r8, [sp, #16] │ │ │ │ │ + strd sl, [sp, #24] │ │ │ │ │ + str lr, [sp, #32] │ │ │ │ │ + sub sp, sp, #4 │ │ │ │ │ + ldrd r8, [sp, #40] @ 0x28 │ │ │ │ │ + ldr sl, [sp, #48] @ 0x30 │ │ │ │ │ + ldr r0, [sp, #52] @ 0x34 │ │ │ │ │ + ldr fp, [sp, #56] @ 0x38 │ │ │ │ │ bl 0 │ │ │ │ │ R_ARM_CALL MPI_Comm_f2c │ │ │ │ │ mov r3, r7 │ │ │ │ │ mov r2, r6 │ │ │ │ │ - mov r1, r5 │ │ │ │ │ - str fp, [sp, #56] @ 0x38 │ │ │ │ │ - str sl, [sp, #48] @ 0x30 │ │ │ │ │ - str r9, [sp, #44] @ 0x2c │ │ │ │ │ str r8, [sp, #40] @ 0x28 │ │ │ │ │ + mov r1, r5 │ │ │ │ │ str r0, [sp, #52] @ 0x34 │ │ │ │ │ mov r0, r4 │ │ │ │ │ + str r9, [sp, #44] @ 0x2c │ │ │ │ │ + str sl, [sp, #48] @ 0x30 │ │ │ │ │ + str fp, [sp, #56] @ 0x38 │ │ │ │ │ add sp, sp, #4 │ │ │ │ │ - pop {r4, r5, r6, r7, r8, r9, sl, fp, lr} │ │ │ │ │ + ldrd r4, [sp] │ │ │ │ │ + ldrd r6, [sp, #8] │ │ │ │ │ + ldrd r8, [sp, #16] │ │ │ │ │ + ldrd sl, [sp, #24] │ │ │ │ │ + ldr lr, [sp, #32] │ │ │ │ │ + add sp, sp, #36 @ 0x24 │ │ │ │ │ b 0 │ │ │ │ │ R_ARM_JUMP24 fftwf_mpi_plan_many_dft_c2r │ │ │ │ │ │ │ │ │ │ -000007b0 : │ │ │ │ │ +00000b20 : │ │ │ │ │ fftwf_mpi_plan_dft_c2r_f03(): │ │ │ │ │ - push {r4, r5, r6, r7, r8, lr} │ │ │ │ │ + strd r4, [sp, #-24]! @ 0xffffffe8 │ │ │ │ │ mov r4, r0 │ │ │ │ │ + mov r5, r1 │ │ │ │ │ ldr r0, [sp, #24] │ │ │ │ │ + str r8, [sp, #16] │ │ │ │ │ ldr r8, [sp, #28] │ │ │ │ │ - mov r5, r1 │ │ │ │ │ + strd r6, [sp, #8] │ │ │ │ │ mov r6, r2 │ │ │ │ │ mov r7, r3 │ │ │ │ │ + str lr, [sp, #20] │ │ │ │ │ bl 0 │ │ │ │ │ R_ARM_CALL MPI_Comm_f2c │ │ │ │ │ + ldr lr, [sp, #20] │ │ │ │ │ mov r3, r7 │ │ │ │ │ mov r2, r6 │ │ │ │ │ mov r1, r5 │ │ │ │ │ - str r8, [sp, #28] │ │ │ │ │ str r0, [sp, #24] │ │ │ │ │ mov r0, r4 │ │ │ │ │ - pop {r4, r5, r6, r7, r8, lr} │ │ │ │ │ + ldrd r4, [sp] │ │ │ │ │ + str r8, [sp, #28] │ │ │ │ │ + ldrd r6, [sp, #8] │ │ │ │ │ + ldr r8, [sp, #16] │ │ │ │ │ + add sp, sp, #24 │ │ │ │ │ b 0 │ │ │ │ │ R_ARM_JUMP24 fftwf_mpi_plan_dft_c2r │ │ │ │ │ │ │ │ │ │ -000007f0 : │ │ │ │ │ +00000b7c : │ │ │ │ │ fftwf_mpi_plan_dft_c2r_2d_f03(): │ │ │ │ │ - push {r4, r5, r6, r7, r8, lr} │ │ │ │ │ + strd r4, [sp, #-24]! @ 0xffffffe8 │ │ │ │ │ mov r4, r0 │ │ │ │ │ + mov r5, r1 │ │ │ │ │ ldr r0, [sp, #24] │ │ │ │ │ + str r8, [sp, #16] │ │ │ │ │ ldr r8, [sp, #28] │ │ │ │ │ - mov r5, r1 │ │ │ │ │ + strd r6, [sp, #8] │ │ │ │ │ mov r6, r2 │ │ │ │ │ mov r7, r3 │ │ │ │ │ + str lr, [sp, #20] │ │ │ │ │ bl 0 │ │ │ │ │ R_ARM_CALL MPI_Comm_f2c │ │ │ │ │ + ldr lr, [sp, #20] │ │ │ │ │ mov r3, r7 │ │ │ │ │ mov r2, r6 │ │ │ │ │ mov r1, r5 │ │ │ │ │ - str r8, [sp, #28] │ │ │ │ │ str r0, [sp, #24] │ │ │ │ │ mov r0, r4 │ │ │ │ │ - pop {r4, r5, r6, r7, r8, lr} │ │ │ │ │ + ldrd r4, [sp] │ │ │ │ │ + str r8, [sp, #28] │ │ │ │ │ + ldrd r6, [sp, #8] │ │ │ │ │ + ldr r8, [sp, #16] │ │ │ │ │ + add sp, sp, #24 │ │ │ │ │ b 0 │ │ │ │ │ R_ARM_JUMP24 fftwf_mpi_plan_dft_c2r_2d │ │ │ │ │ │ │ │ │ │ -00000830 : │ │ │ │ │ +00000bd8 : │ │ │ │ │ fftwf_mpi_plan_dft_c2r_3d_f03(): │ │ │ │ │ - push {r4, r5, r6, r7, r8, r9, sl, lr} │ │ │ │ │ + strd r4, [sp, #-32]! @ 0xffffffe0 │ │ │ │ │ mov r4, r0 │ │ │ │ │ + mov r5, r1 │ │ │ │ │ ldr r0, [sp, #36] @ 0x24 │ │ │ │ │ + strd r8, [sp, #16] │ │ │ │ │ ldr r8, [sp, #32] │ │ │ │ │ - ldr r9, [sp, #40] @ 0x28 │ │ │ │ │ - mov r5, r1 │ │ │ │ │ + strd r6, [sp, #8] │ │ │ │ │ mov r6, r2 │ │ │ │ │ mov r7, r3 │ │ │ │ │ + ldr r9, [sp, #40] @ 0x28 │ │ │ │ │ + str sl, [sp, #24] │ │ │ │ │ + str lr, [sp, #28] │ │ │ │ │ bl 0 │ │ │ │ │ R_ARM_CALL MPI_Comm_f2c │ │ │ │ │ + ldr sl, [sp, #24] │ │ │ │ │ mov r3, r7 │ │ │ │ │ mov r2, r6 │ │ │ │ │ mov r1, r5 │ │ │ │ │ - str r9, [sp, #40] @ 0x28 │ │ │ │ │ str r8, [sp, #32] │ │ │ │ │ + ldrd r6, [sp, #8] │ │ │ │ │ str r0, [sp, #36] @ 0x24 │ │ │ │ │ mov r0, r4 │ │ │ │ │ - pop {r4, r5, r6, r7, r8, r9, sl, lr} │ │ │ │ │ + ldrd r4, [sp] │ │ │ │ │ + str r9, [sp, #40] @ 0x28 │ │ │ │ │ + ldrd r8, [sp, #16] │ │ │ │ │ + ldr lr, [sp, #28] │ │ │ │ │ + add sp, sp, #32 │ │ │ │ │ b 0 │ │ │ │ │ R_ARM_JUMP24 fftwf_mpi_plan_dft_c2r_3d │ │ │ │ │ │ │ │ │ │ -00000878 : │ │ │ │ │ +00000c44 : │ │ │ │ │ fftwf_mpi_gather_wisdom_f03(): │ │ │ │ │ - push {r4, lr} │ │ │ │ │ + str r4, [sp, #-8]! │ │ │ │ │ + str lr, [sp, #4] │ │ │ │ │ bl 0 │ │ │ │ │ R_ARM_CALL MPI_Comm_f2c │ │ │ │ │ - pop {r4, lr} │ │ │ │ │ + ldr r4, [sp] │ │ │ │ │ + ldr lr, [sp, #4] │ │ │ │ │ + add sp, sp, #8 │ │ │ │ │ b 0 │ │ │ │ │ R_ARM_JUMP24 fftwf_mpi_gather_wisdom │ │ │ │ │ │ │ │ │ │ -00000888 : │ │ │ │ │ +00000c60 : │ │ │ │ │ fftwf_mpi_broadcast_wisdom_f03(): │ │ │ │ │ - push {r4, lr} │ │ │ │ │ + str r4, [sp, #-8]! │ │ │ │ │ + str lr, [sp, #4] │ │ │ │ │ bl 0 │ │ │ │ │ R_ARM_CALL MPI_Comm_f2c │ │ │ │ │ - pop {r4, lr} │ │ │ │ │ + ldr r4, [sp] │ │ │ │ │ + ldr lr, [sp, #4] │ │ │ │ │ + add sp, sp, #8 │ │ │ │ │ b 0 │ │ │ │ │ R_ARM_JUMP24 fftwf_mpi_broadcast_wisdom │ │ │ ├── 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: 3832 (bytes into file) │ │ │ │ │ + Start of section headers: 3968 (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 0xef8: │ │ │ │ │ +There are 15 section headers, starting at offset 0xf80: │ │ │ │ │ │ │ │ │ │ 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 0006fc 00 AX 0 0 4 │ │ │ │ │ - [ 2] .rel.text REL 00000000 000cb8 000190 08 I 12 1 4 │ │ │ │ │ - [ 3] .data PROGBITS 00000000 000730 000000 00 WA 0 0 1 │ │ │ │ │ - [ 4] .bss NOBITS 00000000 000730 000000 00 WA 0 0 1 │ │ │ │ │ - [ 5] .rodata.str1.4 PROGBITS 00000000 000730 00003b 01 AMS 0 0 4 │ │ │ │ │ - [ 6] .data.rel.ro PROGBITS 00000000 00076b 000010 00 WA 0 0 4 │ │ │ │ │ - [ 7] .rel.data.rel.ro REL 00000000 000e48 000020 08 I 12 6 4 │ │ │ │ │ - [ 8] .data.rel.ro.local PROGBITS 00000000 00077b 00000c 00 WA 0 0 4 │ │ │ │ │ - [ 9] .rel.data.rel.ro.local REL 00000000 000e68 000008 08 I 12 8 4 │ │ │ │ │ - [10] .note.GNU-stack PROGBITS 00000000 000787 000000 00 0 0 1 │ │ │ │ │ - [11] .ARM.attributes ARM_ATTRIBUTES 00000000 000787 00002b 00 0 0 1 │ │ │ │ │ - [12] .symtab SYMTAB 00000000 0007b4 000300 10 13 24 4 │ │ │ │ │ - [13] .strtab STRTAB 00000000 000ab4 000204 00 0 0 1 │ │ │ │ │ - [14] .shstrtab STRTAB 00000000 000e70 000087 00 0 0 1 │ │ │ │ │ + [ 1] .text PROGBITS 00000000 000034 000784 00 AX 0 0 4 │ │ │ │ │ + [ 2] .rel.text REL 00000000 000d40 000190 08 I 12 1 4 │ │ │ │ │ + [ 3] .data PROGBITS 00000000 0007b8 000000 00 WA 0 0 1 │ │ │ │ │ + [ 4] .bss NOBITS 00000000 0007b8 000000 00 WA 0 0 1 │ │ │ │ │ + [ 5] .rodata.str1.4 PROGBITS 00000000 0007b8 00003b 01 AMS 0 0 4 │ │ │ │ │ + [ 6] .data.rel.ro PROGBITS 00000000 0007f3 000010 00 WA 0 0 4 │ │ │ │ │ + [ 7] .rel.data.rel.ro REL 00000000 000ed0 000020 08 I 12 6 4 │ │ │ │ │ + [ 8] .data.rel.ro.local PROGBITS 00000000 000803 00000c 00 WA 0 0 4 │ │ │ │ │ + [ 9] .rel.data.rel.ro.local REL 00000000 000ef0 000008 08 I 12 8 4 │ │ │ │ │ + [10] .note.GNU-stack PROGBITS 00000000 00080f 000000 00 0 0 1 │ │ │ │ │ + [11] .ARM.attributes ARM_ATTRIBUTES 00000000 00080f 00002b 00 0 0 1 │ │ │ │ │ + [12] .symtab SYMTAB 00000000 00083c 000300 10 13 24 4 │ │ │ │ │ + [13] .strtab STRTAB 00000000 000b3c 000204 00 0 0 1 │ │ │ │ │ + [14] .shstrtab STRTAB 00000000 000ef8 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 {} │ │ │ │ │ @@ -3,26 +3,26 @@ │ │ │ │ │ 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: 00000000 0 NOTYPE LOCAL DEFAULT 1 $a │ │ │ │ │ - 6: 00000000 112 FUNC LOCAL DEFAULT 1 print │ │ │ │ │ - 7: 00000064 0 NOTYPE LOCAL DEFAULT 1 $d │ │ │ │ │ - 8: 00000070 0 NOTYPE LOCAL DEFAULT 1 $a │ │ │ │ │ - 9: 00000070 1108 FUNC LOCAL DEFAULT 1 mkplan │ │ │ │ │ - 10: 000004bc 0 NOTYPE LOCAL DEFAULT 1 $d │ │ │ │ │ - 11: 000004c4 360 FUNC LOCAL DEFAULT 1 apply │ │ │ │ │ - 12: 000004c4 0 NOTYPE LOCAL DEFAULT 1 $a │ │ │ │ │ - 13: 00000628 0 NOTYPE LOCAL DEFAULT 1 $d │ │ │ │ │ - 14: 0000062c 0 NOTYPE LOCAL DEFAULT 1 $a │ │ │ │ │ - 15: 0000062c 60 FUNC LOCAL DEFAULT 1 destroy │ │ │ │ │ - 16: 00000668 60 FUNC LOCAL DEFAULT 1 awake │ │ │ │ │ - 17: 000006f8 0 NOTYPE LOCAL DEFAULT 1 $d │ │ │ │ │ + 6: 00000000 124 FUNC LOCAL DEFAULT 1 print │ │ │ │ │ + 7: 00000070 0 NOTYPE LOCAL DEFAULT 1 $d │ │ │ │ │ + 8: 0000007c 0 NOTYPE LOCAL DEFAULT 1 $a │ │ │ │ │ + 9: 0000007c 1148 FUNC LOCAL DEFAULT 1 mkplan │ │ │ │ │ + 10: 000004f0 0 NOTYPE LOCAL DEFAULT 1 $d │ │ │ │ │ + 11: 000004f8 392 FUNC LOCAL DEFAULT 1 apply │ │ │ │ │ + 12: 000004f8 0 NOTYPE LOCAL DEFAULT 1 $a │ │ │ │ │ + 13: 0000067c 0 NOTYPE LOCAL DEFAULT 1 $d │ │ │ │ │ + 14: 00000680 0 NOTYPE LOCAL DEFAULT 1 $a │ │ │ │ │ + 15: 00000680 72 FUNC LOCAL DEFAULT 1 destroy │ │ │ │ │ + 16: 000006c8 80 FUNC LOCAL DEFAULT 1 awake │ │ │ │ │ + 17: 00000780 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 MPI_Comm_rank │ │ │ │ │ @@ -41,11 +41,11 @@ │ │ │ │ │ 37: 00000000 0 NOTYPE GLOBAL DEFAULT UND fftwf_mkplan_f_d │ │ │ │ │ 38: 00000000 0 NOTYPE GLOBAL DEFAULT UND fftwf_mktensor_1d │ │ │ │ │ 39: 00000000 0 NOTYPE GLOBAL DEFAULT UND MPI_Alltoallv │ │ │ │ │ 40: 00000000 0 NOTYPE GLOBAL DEFAULT UND MPI_Alltoall │ │ │ │ │ 41: 00000000 0 NOTYPE GLOBAL DEFAULT UND fftwf_ifree0 │ │ │ │ │ 42: 00000000 0 NOTYPE GLOBAL DEFAULT UND MPI_Comm_free │ │ │ │ │ 43: 00000000 0 NOTYPE GLOBAL DEFAULT UND fftwf_plan_awake │ │ │ │ │ - 44: 000006a4 88 FUNC GLOBAL DEFAULT 1 fftwf_mpi_transpose_alltoall_register │ │ │ │ │ + 44: 00000718 108 FUNC GLOBAL DEFAULT 1 fftwf_mpi_transpose_alltoall_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_transpose_solve │ │ │ │ ├── readelf --wide --relocs {} │ │ │ │ │ @@ -1,64 +1,64 @@ │ │ │ │ │ │ │ │ │ │ -Relocation section '.rel.text' at offset 0xcb8 contains 50 entries: │ │ │ │ │ +Relocation section '.rel.text' at offset 0xd40 contains 50 entries: │ │ │ │ │ Offset Info Type Sym. Value Symbol's Name │ │ │ │ │ -00000064 00000203 R_ARM_REL32 00000000 .LC0 │ │ │ │ │ -00000068 00000403 R_ARM_REL32 00000008 .LC2 │ │ │ │ │ -0000006c 00000303 R_ARM_REL32 00000004 .LC1 │ │ │ │ │ -00000100 0000181c R_ARM_CALL 00000000 MPI_Comm_rank │ │ │ │ │ -0000010c 0000191c R_ARM_CALL 00000000 MPI_Comm_size │ │ │ │ │ -0000011c 00001a1c R_ARM_CALL 00000000 fftwf_mpi_block │ │ │ │ │ -00000184 00001b1c R_ARM_CALL 00000000 fftwf_mpi_mkplans_posttranspose │ │ │ │ │ -00000194 00001c1c R_ARM_CALL 00000000 fftwf_mpi_any_true │ │ │ │ │ -000001b4 00001d1c R_ARM_CALL 00000000 fftwf_mkplan_rdft │ │ │ │ │ -000001f4 00001e1c R_ARM_CALL 00000000 MPI_Comm_dup │ │ │ │ │ -00000200 00001f1c R_ARM_CALL 00000000 fftwf_malloc_plain │ │ │ │ │ -00000234 00001a1c R_ARM_CALL 00000000 fftwf_mpi_block │ │ │ │ │ -00000248 00001a1c R_ARM_CALL 00000000 fftwf_mpi_block │ │ │ │ │ -00000294 00001a1c R_ARM_CALL 00000000 fftwf_mpi_block │ │ │ │ │ -000002a8 00001a1c R_ARM_CALL 00000000 fftwf_mpi_block │ │ │ │ │ -00000368 0000201c R_ARM_CALL 00000000 fftwf_ops_zero │ │ │ │ │ -00000380 0000211c R_ARM_CALL 00000000 fftwf_ops_add2 │ │ │ │ │ -00000398 0000211c R_ARM_CALL 00000000 fftwf_ops_add2 │ │ │ │ │ -000003b0 0000211c R_ARM_CALL 00000000 fftwf_ops_add2 │ │ │ │ │ -000003c8 0000211c R_ARM_CALL 00000000 fftwf_ops_add2 │ │ │ │ │ -000003dc 0000221c R_ARM_CALL 00000000 fftwf_plan_destroy_internal │ │ │ │ │ -000003e4 0000221c R_ARM_CALL 00000000 fftwf_plan_destroy_internal │ │ │ │ │ -000003ec 0000221c R_ARM_CALL 00000000 fftwf_plan_destroy_internal │ │ │ │ │ -000003f4 0000221c R_ARM_CALL 00000000 fftwf_plan_destroy_internal │ │ │ │ │ -00000424 0000231c R_ARM_CALL 00000000 fftwf_mktensor_3d │ │ │ │ │ -00000434 0000241c R_ARM_CALL 00000000 fftwf_mkproblem_rdft_0_d │ │ │ │ │ -00000450 0000251c R_ARM_CALL 00000000 fftwf_mkplan_f_d │ │ │ │ │ -00000464 00001c1c R_ARM_CALL 00000000 fftwf_mpi_any_true │ │ │ │ │ -0000048c 0000261c R_ARM_CALL 00000000 fftwf_mktensor_1d │ │ │ │ │ -0000049c 0000241c R_ARM_CALL 00000000 fftwf_mkproblem_rdft_0_d │ │ │ │ │ -000004c0 00001203 R_ARM_REL32 00000000 .data.rel.ro │ │ │ │ │ -00000524 0000271c R_ARM_CALL 00000000 MPI_Alltoallv │ │ │ │ │ -000005a8 0000281c R_ARM_CALL 00000000 MPI_Alltoall │ │ │ │ │ -000005f8 0000271c R_ARM_CALL 00000000 MPI_Alltoallv │ │ │ │ │ -00000620 0000281c R_ARM_CALL 00000000 MPI_Alltoall │ │ │ │ │ -00000638 0000291c R_ARM_CALL 00000000 fftwf_ifree0 │ │ │ │ │ -00000640 00002a1c R_ARM_CALL 00000000 MPI_Comm_free │ │ │ │ │ -00000648 0000221c R_ARM_CALL 00000000 fftwf_plan_destroy_internal │ │ │ │ │ -00000650 0000221c R_ARM_CALL 00000000 fftwf_plan_destroy_internal │ │ │ │ │ -00000658 0000221c R_ARM_CALL 00000000 fftwf_plan_destroy_internal │ │ │ │ │ -00000664 0000221d R_ARM_JUMP24 00000000 fftwf_plan_destroy_internal │ │ │ │ │ -00000678 00002b1c R_ARM_CALL 00000000 fftwf_plan_awake │ │ │ │ │ -00000684 00002b1c R_ARM_CALL 00000000 fftwf_plan_awake │ │ │ │ │ -00000690 00002b1c R_ARM_CALL 00000000 fftwf_plan_awake │ │ │ │ │ -000006a0 00002b1d R_ARM_JUMP24 00000000 fftwf_plan_awake │ │ │ │ │ -000006bc 00002d1c R_ARM_CALL 00000000 fftwf_mksolver │ │ │ │ │ -000006d0 00002e1c R_ARM_CALL 00000000 fftwf_solver_register │ │ │ │ │ -000006dc 00002d1c R_ARM_CALL 00000000 fftwf_mksolver │ │ │ │ │ -000006f4 00002e1d R_ARM_JUMP24 00000000 fftwf_solver_register │ │ │ │ │ -000006f8 00001503 R_ARM_REL32 00000000 .data.rel.ro.local │ │ │ │ │ +00000070 00000203 R_ARM_REL32 00000000 .LC0 │ │ │ │ │ +00000074 00000403 R_ARM_REL32 00000008 .LC2 │ │ │ │ │ +00000078 00000303 R_ARM_REL32 00000004 .LC1 │ │ │ │ │ +00000130 0000181c R_ARM_CALL 00000000 MPI_Comm_rank │ │ │ │ │ +0000013c 0000191c R_ARM_CALL 00000000 MPI_Comm_size │ │ │ │ │ +0000014c 00001a1c R_ARM_CALL 00000000 fftwf_mpi_block │ │ │ │ │ +000001b4 00001b1c R_ARM_CALL 00000000 fftwf_mpi_mkplans_posttranspose │ │ │ │ │ +000001c4 00001c1c R_ARM_CALL 00000000 fftwf_mpi_any_true │ │ │ │ │ +000001e4 00001d1c R_ARM_CALL 00000000 fftwf_mkplan_rdft │ │ │ │ │ +00000224 00001e1c R_ARM_CALL 00000000 MPI_Comm_dup │ │ │ │ │ +00000230 00001f1c R_ARM_CALL 00000000 fftwf_malloc_plain │ │ │ │ │ +00000268 00001a1c R_ARM_CALL 00000000 fftwf_mpi_block │ │ │ │ │ +0000027c 00001a1c R_ARM_CALL 00000000 fftwf_mpi_block │ │ │ │ │ +000002cc 00001a1c R_ARM_CALL 00000000 fftwf_mpi_block │ │ │ │ │ +000002e0 00001a1c R_ARM_CALL 00000000 fftwf_mpi_block │ │ │ │ │ +000003a0 0000201c R_ARM_CALL 00000000 fftwf_ops_zero │ │ │ │ │ +000003b8 0000211c R_ARM_CALL 00000000 fftwf_ops_add2 │ │ │ │ │ +000003d0 0000211c R_ARM_CALL 00000000 fftwf_ops_add2 │ │ │ │ │ +000003e8 0000211c R_ARM_CALL 00000000 fftwf_ops_add2 │ │ │ │ │ +00000400 0000211c R_ARM_CALL 00000000 fftwf_ops_add2 │ │ │ │ │ +00000410 0000221c R_ARM_CALL 00000000 fftwf_plan_destroy_internal │ │ │ │ │ +00000418 0000221c R_ARM_CALL 00000000 fftwf_plan_destroy_internal │ │ │ │ │ +00000420 0000221c R_ARM_CALL 00000000 fftwf_plan_destroy_internal │ │ │ │ │ +00000428 0000221c R_ARM_CALL 00000000 fftwf_plan_destroy_internal │ │ │ │ │ +00000458 0000231c R_ARM_CALL 00000000 fftwf_mktensor_3d │ │ │ │ │ +00000468 0000241c R_ARM_CALL 00000000 fftwf_mkproblem_rdft_0_d │ │ │ │ │ +00000484 0000251c R_ARM_CALL 00000000 fftwf_mkplan_f_d │ │ │ │ │ +00000498 00001c1c R_ARM_CALL 00000000 fftwf_mpi_any_true │ │ │ │ │ +000004c0 0000261c R_ARM_CALL 00000000 fftwf_mktensor_1d │ │ │ │ │ +000004d0 0000241c R_ARM_CALL 00000000 fftwf_mkproblem_rdft_0_d │ │ │ │ │ +000004f4 00001203 R_ARM_REL32 00000000 .data.rel.ro │ │ │ │ │ +00000560 0000271c R_ARM_CALL 00000000 MPI_Alltoallv │ │ │ │ │ +000005f0 0000281c R_ARM_CALL 00000000 MPI_Alltoall │ │ │ │ │ +0000064c 0000271c R_ARM_CALL 00000000 MPI_Alltoallv │ │ │ │ │ +00000674 0000281c R_ARM_CALL 00000000 MPI_Alltoall │ │ │ │ │ +00000690 0000291c R_ARM_CALL 00000000 fftwf_ifree0 │ │ │ │ │ +00000698 00002a1c R_ARM_CALL 00000000 MPI_Comm_free │ │ │ │ │ +000006a0 0000221c R_ARM_CALL 00000000 fftwf_plan_destroy_internal │ │ │ │ │ +000006a8 0000221c R_ARM_CALL 00000000 fftwf_plan_destroy_internal │ │ │ │ │ +000006b0 0000221c R_ARM_CALL 00000000 fftwf_plan_destroy_internal │ │ │ │ │ +000006c4 0000221d R_ARM_JUMP24 00000000 fftwf_plan_destroy_internal │ │ │ │ │ +000006e0 00002b1c R_ARM_CALL 00000000 fftwf_plan_awake │ │ │ │ │ +000006ec 00002b1c R_ARM_CALL 00000000 fftwf_plan_awake │ │ │ │ │ +000006f8 00002b1c R_ARM_CALL 00000000 fftwf_plan_awake │ │ │ │ │ +00000714 00002b1d R_ARM_JUMP24 00000000 fftwf_plan_awake │ │ │ │ │ +00000738 00002d1c R_ARM_CALL 00000000 fftwf_mksolver │ │ │ │ │ +0000074c 00002e1c R_ARM_CALL 00000000 fftwf_solver_register │ │ │ │ │ +00000758 00002d1c R_ARM_CALL 00000000 fftwf_mksolver │ │ │ │ │ +0000077c 00002e1d R_ARM_JUMP24 00000000 fftwf_solver_register │ │ │ │ │ +00000780 00001503 R_ARM_REL32 00000000 .data.rel.ro.local │ │ │ │ │ │ │ │ │ │ -Relocation section '.rel.data.rel.ro' at offset 0xe48 contains 4 entries: │ │ │ │ │ +Relocation section '.rel.data.rel.ro' at offset 0xed0 contains 4 entries: │ │ │ │ │ Offset Info Type Sym. Value Symbol's Name │ │ │ │ │ 00000000 00002f02 R_ARM_ABS32 00000000 fftwf_mpi_transpose_solve │ │ │ │ │ -00000004 00001002 R_ARM_ABS32 00000668 awake │ │ │ │ │ +00000004 00001002 R_ARM_ABS32 000006c8 awake │ │ │ │ │ 00000008 00000602 R_ARM_ABS32 00000000 print │ │ │ │ │ -0000000c 00000f02 R_ARM_ABS32 0000062c destroy │ │ │ │ │ +0000000c 00000f02 R_ARM_ABS32 00000680 destroy │ │ │ │ │ │ │ │ │ │ -Relocation section '.rel.data.rel.ro.local' at offset 0xe68 contains 1 entry: │ │ │ │ │ +Relocation section '.rel.data.rel.ro.local' at offset 0xef0 contains 1 entry: │ │ │ │ │ Offset Info Type Sym. Value Symbol's Name │ │ │ │ │ -00000004 00000902 R_ARM_ABS32 00000070 mkplan │ │ │ │ │ +00000004 00000902 R_ARM_ABS32 0000007c mkplan │ │ │ │ ├── objdump --line-numbers --disassemble --demangle --reloc --no-show-raw-insn --section=.text {} │ │ │ │ │ @@ -2,518 +2,552 @@ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ Disassembly of section .text: │ │ │ │ │ │ │ │ │ │ 00000000 : │ │ │ │ │ print(): │ │ │ │ │ mov r3, r0 │ │ │ │ │ + mov r0, r1 │ │ │ │ │ + str r4, [sp, #-8]! │ │ │ │ │ ldr r2, [r3, #108] @ 0x6c │ │ │ │ │ - push {r4, lr} │ │ │ │ │ - cmp r2, #0 │ │ │ │ │ - ldr r4, [r1] │ │ │ │ │ + str lr, [sp, #4] │ │ │ │ │ sub sp, sp, #16 │ │ │ │ │ - mov r0, r1 │ │ │ │ │ - beq 58 │ │ │ │ │ - ldr r2, [pc, #60] @ 64 │ │ │ │ │ + ldr r4, [r1] │ │ │ │ │ + cmp r2, #0 │ │ │ │ │ + beq 64 │ │ │ │ │ + ldr r2, [pc, #68] @ 70 │ │ │ │ │ add r2, pc, r2 │ │ │ │ │ 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] │ │ │ │ │ - ldr r1, [pc, #32] @ 68 │ │ │ │ │ + ldr r1, [pc, #40] @ 74 │ │ │ │ │ ldr r3, [r3, #64] @ 0x40 │ │ │ │ │ add r1, pc, r1 │ │ │ │ │ blx r4 │ │ │ │ │ add sp, sp, #16 │ │ │ │ │ - pop {r4, pc} │ │ │ │ │ - ldr r2, [pc, #12] @ 6c │ │ │ │ │ + ldr r4, [sp] │ │ │ │ │ + add sp, sp, #4 │ │ │ │ │ + pop {pc} @ (ldr pc, [sp], #4) │ │ │ │ │ + ldr r2, [pc, #12] @ 78 │ │ │ │ │ add r2, pc, r2 │ │ │ │ │ - b 28 │ │ │ │ │ - .word 0x00000038 │ │ │ │ │ + b 2c │ │ │ │ │ + .word 0x00000040 │ │ │ │ │ R_ARM_REL32 .LC0 │ │ │ │ │ - .word 0x00000018 │ │ │ │ │ + .word 0x00000020 │ │ │ │ │ R_ARM_REL32 .LC2 │ │ │ │ │ .word 0x00000008 │ │ │ │ │ R_ARM_REL32 .LC1 │ │ │ │ │ │ │ │ │ │ -00000070 : │ │ │ │ │ +0000007c : │ │ │ │ │ mkplan(): │ │ │ │ │ - push {r4, r5, r6, r7, r8, r9, sl, fp, lr} │ │ │ │ │ mov r3, #0 │ │ │ │ │ - sub sp, sp, #100 @ 0x64 │ │ │ │ │ + strd r4, [sp, #-36]! @ 0xffffffdc │ │ │ │ │ mov r5, r2 │ │ │ │ │ - str r3, [sp, #68] @ 0x44 │ │ │ │ │ + strd r6, [sp, #8] │ │ │ │ │ + strd r8, [sp, #16] │ │ │ │ │ + strd sl, [sp, #24] │ │ │ │ │ + str lr, [sp, #32] │ │ │ │ │ + sub sp, sp, #100 @ 0x64 │ │ │ │ │ ldr r2, [r1, #16] │ │ │ │ │ + str r3, [sp, #68] @ 0x44 │ │ │ │ │ str r3, [sp, #72] @ 0x48 │ │ │ │ │ str r3, [sp, #76] @ 0x4c │ │ │ │ │ ldr r3, [r1, #20] │ │ │ │ │ cmp r2, r3 │ │ │ │ │ - beq cc │ │ │ │ │ + beq e8 │ │ │ │ │ ldr r3, [r5, #164] @ 0xa4 │ │ │ │ │ - ldr r8, [r1, #24] │ │ │ │ │ - tst r3, #4096 @ 0x1000 │ │ │ │ │ mov r7, r0 │ │ │ │ │ mov r4, r1 │ │ │ │ │ + ldr r8, [r1, #24] │ │ │ │ │ + tst r3, #4096 @ 0x1000 │ │ │ │ │ and r2, r8, #4 │ │ │ │ │ - bne d8 │ │ │ │ │ + bne 108 │ │ │ │ │ cmp r2, #0 │ │ │ │ │ - bne ec │ │ │ │ │ + bne 11c │ │ │ │ │ ldr r3, [r7, #8] │ │ │ │ │ cmp r3, #0 │ │ │ │ │ - beq ec │ │ │ │ │ + beq 11c │ │ │ │ │ mov r0, #0 │ │ │ │ │ add sp, sp, #100 @ 0x64 │ │ │ │ │ - pop {r4, r5, r6, r7, r8, r9, sl, fp, pc} │ │ │ │ │ + ldrd r4, [sp] │ │ │ │ │ + ldrd r6, [sp, #8] │ │ │ │ │ + ldrd r8, [sp, #16] │ │ │ │ │ + ldrd sl, [sp, #24] │ │ │ │ │ + add sp, sp, #32 │ │ │ │ │ + pop {pc} @ (ldr pc, [sp], #4) │ │ │ │ │ cmp r2, #0 │ │ │ │ │ - beq cc │ │ │ │ │ + beq e8 │ │ │ │ │ ldr r3, [r7, #8] │ │ │ │ │ cmp r3, #0 │ │ │ │ │ - bne cc │ │ │ │ │ + bne e8 │ │ │ │ │ bics r8, r8, #12 │ │ │ │ │ - bne cc │ │ │ │ │ + bne e8 │ │ │ │ │ add r1, sp, #88 @ 0x58 │ │ │ │ │ - ldr r0, [r4, #36] @ 0x24 │ │ │ │ │ ldr r6, [r4, #4] │ │ │ │ │ + ldr r0, [r4, #36] @ 0x24 │ │ │ │ │ bl 0 │ │ │ │ │ R_ARM_CALL MPI_Comm_rank │ │ │ │ │ - add r1, sp, #92 @ 0x5c │ │ │ │ │ ldr r0, [r4, #36] @ 0x24 │ │ │ │ │ + add r1, sp, #92 @ 0x5c │ │ │ │ │ bl 0 │ │ │ │ │ R_ARM_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_CALL fftwf_mpi_block │ │ │ │ │ ldr r3, [r4, #24] │ │ │ │ │ - ands r9, r3, #4 │ │ │ │ │ mov r2, r0 │ │ │ │ │ - beq 3fc │ │ │ │ │ + ands r9, r3, #4 │ │ │ │ │ + beq 430 │ │ │ │ │ ldr r1, [r7, #8] │ │ │ │ │ cmp r1, #0 │ │ │ │ │ - bne 478 │ │ │ │ │ + bne 4ac │ │ │ │ │ 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] │ │ │ │ │ - mov r0, r4 │ │ │ │ │ mov r2, r7 │ │ │ │ │ bl 0 │ │ │ │ │ R_ARM_CALL fftwf_mpi_mkplans_posttranspose │ │ │ │ │ - ldr r1, [r4, #36] @ 0x24 │ │ │ │ │ clz r0, r0 │ │ │ │ │ + ldr r1, [r4, #36] @ 0x24 │ │ │ │ │ lsr r0, r0, #5 │ │ │ │ │ bl 0 │ │ │ │ │ R_ARM_CALL fftwf_mpi_any_true │ │ │ │ │ subs r5, r0, #0 │ │ │ │ │ - bne 3d8 │ │ │ │ │ - ldr r2, [pc, #788] @ 4bc │ │ │ │ │ - ldr r1, [pc, #788] @ 4c0 │ │ │ │ │ + bne 40c │ │ │ │ │ + ldr r2, [pc, #792] @ 4f0 │ │ │ │ │ + mov r0, #112 @ 0x70 │ │ │ │ │ + ldr r1, [pc, #788] @ 4f4 │ │ │ │ │ add r2, pc, r2 │ │ │ │ │ add r1, pc, r1 │ │ │ │ │ - mov r0, #112 @ 0x70 │ │ │ │ │ bl 0 │ │ │ │ │ R_ARM_CALL fftwf_mkplan_rdft │ │ │ │ │ ldr r3, [sp, #40] @ 0x28 │ │ │ │ │ + add r1, r0, #80 @ 0x50 │ │ │ │ │ + str r0, [sp, #48] @ 0x30 │ │ │ │ │ str r3, [r0, #64] @ 0x40 │ │ │ │ │ ldr r3, [sp, #68] @ 0x44 │ │ │ │ │ str r3, [r0, #68] @ 0x44 │ │ │ │ │ ldr r3, [sp, #72] @ 0x48 │ │ │ │ │ str r3, [r0, #72] @ 0x48 │ │ │ │ │ ldr r3, [sp, #80] @ 0x50 │ │ │ │ │ str r3, [r0, #100] @ 0x64 │ │ │ │ │ ldr r3, [sp, #84] @ 0x54 │ │ │ │ │ str r3, [r0, #104] @ 0x68 │ │ │ │ │ ldr r3, [sp, #76] @ 0x4c │ │ │ │ │ - add r1, r0, #80 @ 0x50 │ │ │ │ │ str r3, [r0, #76] @ 0x4c │ │ │ │ │ - str r0, [sp, #44] @ 0x2c │ │ │ │ │ ldr r0, [r4, #36] @ 0x24 │ │ │ │ │ bl 0 │ │ │ │ │ R_ARM_CALL MPI_Comm_dup │ │ │ │ │ ldr r0, [sp, #92] @ 0x5c │ │ │ │ │ lsl r0, r0, #4 │ │ │ │ │ bl 0 │ │ │ │ │ R_ARM_CALL fftwf_malloc_plain │ │ │ │ │ ldr r3, [sp, #92] @ 0x5c │ │ │ │ │ - ldr r2, [sp, #88] @ 0x58 │ │ │ │ │ + mov sl, r0 │ │ │ │ │ + str r0, [sp, #56] @ 0x38 │ │ │ │ │ ldr r1, [r4, #28] │ │ │ │ │ - add sl, r0, r3, lsl #3 │ │ │ │ │ - add fp, r0, r3, lsl #2 │ │ │ │ │ - str r0, [sp, #52] @ 0x34 │ │ │ │ │ - add r3, sl, r3, lsl #2 │ │ │ │ │ - mov r9, r0 │ │ │ │ │ + lsl r3, r3, #2 │ │ │ │ │ + add r9, r0, r3 │ │ │ │ │ ldr r0, [r4, #8] │ │ │ │ │ - str r3, [sp, #48] @ 0x30 │ │ │ │ │ - str fp, [sp, #56] @ 0x38 │ │ │ │ │ - str sl, [sp, #60] @ 0x3c │ │ │ │ │ + add r2, r9, r3 │ │ │ │ │ + add r3, r2, r3 │ │ │ │ │ + str r2, [sp, #44] @ 0x2c │ │ │ │ │ + ldr r2, [sp, #88] @ 0x58 │ │ │ │ │ + str r3, [sp, #52] @ 0x34 │ │ │ │ │ + str r9, [sp, #60] @ 0x3c │ │ │ │ │ bl 0 │ │ │ │ │ R_ARM_CALL fftwf_mpi_block │ │ │ │ │ - ldr r2, [sp, #88] @ 0x58 │ │ │ │ │ ldr r1, [r4, #32] │ │ │ │ │ mov r7, r0 │ │ │ │ │ ldr r0, [r4, #12] │ │ │ │ │ + ldr r2, [sp, #88] @ 0x58 │ │ │ │ │ bl 0 │ │ │ │ │ R_ARM_CALL fftwf_mpi_block │ │ │ │ │ ldr r3, [sp, #92] @ 0x5c │ │ │ │ │ - cmp r3, #0 │ │ │ │ │ mov r8, r0 │ │ │ │ │ - ble 4b4 │ │ │ │ │ - ldr r3, [sp, #48] @ 0x30 │ │ │ │ │ - sub r2, r9, #4 │ │ │ │ │ - sub r9, r3, #4 │ │ │ │ │ + cmp r3, #0 │ │ │ │ │ + ble 4e8 │ │ │ │ │ + ldr r2, [sp, #44] @ 0x2c │ │ │ │ │ + sub r1, sl, #4 │ │ │ │ │ + sub fp, r9, #4 │ │ │ │ │ + ldr r3, [sp, #52] @ 0x34 │ │ │ │ │ + str r1, [sp, #28] │ │ │ │ │ mov r1, #1 │ │ │ │ │ + sub sl, r2, #4 │ │ │ │ │ + str r1, [sp, #36] @ 0x24 │ │ │ │ │ + sub r9, r3, #4 │ │ │ │ │ mov r3, r9 │ │ │ │ │ - sub fp, fp, #4 │ │ │ │ │ - sub sl, sl, #4 │ │ │ │ │ mov r9, r7 │ │ │ │ │ - str r2, [sp, #28] │ │ │ │ │ - str r1, [sp, #36] @ 0x24 │ │ │ │ │ - ldr r1, [r4, #28] │ │ │ │ │ - mov r2, r5 │ │ │ │ │ ldr r0, [r4, #8] │ │ │ │ │ + mov r2, r5 │ │ │ │ │ str r3, [sp, #32] │ │ │ │ │ + ldr r1, [r4, #28] │ │ │ │ │ bl 0 │ │ │ │ │ R_ARM_CALL fftwf_mpi_block │ │ │ │ │ - mov r2, r5 │ │ │ │ │ ldr r1, [r4, #32] │ │ │ │ │ + mov r2, r5 │ │ │ │ │ mov r7, r0 │ │ │ │ │ ldr r0, [r4, #12] │ │ │ │ │ bl 0 │ │ │ │ │ R_ARM_CALL fftwf_mpi_block │ │ │ │ │ ldr r1, [r4, #28] │ │ │ │ │ ldr r3, [sp, #32] │ │ │ │ │ cmp r1, r7 │ │ │ │ │ movne r2, #0 │ │ │ │ │ strne r2, [sp, #36] @ 0x24 │ │ │ │ │ - bne 2dc │ │ │ │ │ - ldr r2, [sp, #36] @ 0x24 │ │ │ │ │ + bne 314 │ │ │ │ │ ldr r1, [r4, #32] │ │ │ │ │ + ldr r2, [sp, #36] @ 0x24 │ │ │ │ │ cmp r1, r0 │ │ │ │ │ movne r2, #0 │ │ │ │ │ andeq r2, r2, #1 │ │ │ │ │ str r2, [sp, #36] @ 0x24 │ │ │ │ │ mul r0, r9, r0 │ │ │ │ │ ldr r2, [sp, #28] │ │ │ │ │ - mul r0, r6, r0 │ │ │ │ │ mul r7, r8, r7 │ │ │ │ │ + mul r0, r6, r0 │ │ │ │ │ + mul r7, r6, r7 │ │ │ │ │ str r0, [r2, #4]! │ │ │ │ │ ldr r1, [r4, #32] │ │ │ │ │ - mul r7, r6, r7 │ │ │ │ │ - mul r1, r9, r1 │ │ │ │ │ str r2, [sp, #28] │ │ │ │ │ + mul r1, r9, r1 │ │ │ │ │ mul r1, r5, r1 │ │ │ │ │ mul r1, r6, r1 │ │ │ │ │ str r1, [fp, #4]! │ │ │ │ │ str r7, [sl, #4]! │ │ │ │ │ ldr r1, [r4, #28] │ │ │ │ │ mul r1, r8, r1 │ │ │ │ │ mul r1, r5, r1 │ │ │ │ │ add r5, r5, #1 │ │ │ │ │ mul r1, r6, r1 │ │ │ │ │ str r1, [r3, #4]! │ │ │ │ │ ldr r1, [sp, #92] @ 0x5c │ │ │ │ │ cmp r1, r5 │ │ │ │ │ - bgt 284 │ │ │ │ │ + bgt 2bc │ │ │ │ │ ldr r1, [sp, #36] @ 0x24 │ │ │ │ │ - ldr r3, [sp, #44] @ 0x2c │ │ │ │ │ - ldr r2, [sp, #52] @ 0x34 │ │ │ │ │ - str r2, [r3, #84] @ 0x54 │ │ │ │ │ + ldr r3, [sp, #48] @ 0x30 │ │ │ │ │ ldr r2, [sp, #56] @ 0x38 │ │ │ │ │ - str r2, [r3, #88] @ 0x58 │ │ │ │ │ - ldr r2, [sp, #60] @ 0x3c │ │ │ │ │ add r4, r3, #8 │ │ │ │ │ + mov r0, r4 │ │ │ │ │ + str r2, [r3, #84] @ 0x54 │ │ │ │ │ + ldr r2, [sp, #60] @ 0x3c │ │ │ │ │ + str r2, [r3, #88] @ 0x58 │ │ │ │ │ + ldr r2, [sp, #44] @ 0x2c │ │ │ │ │ + str r1, [r3, #108] @ 0x6c │ │ │ │ │ str r2, [r3, #92] @ 0x5c │ │ │ │ │ - ldr r2, [sp, #48] @ 0x30 │ │ │ │ │ + ldr r2, [sp, #52] @ 0x34 │ │ │ │ │ str r2, [r3, #96] @ 0x60 │ │ │ │ │ - str r1, [r3, #108] @ 0x6c │ │ │ │ │ - mov r0, r4 │ │ │ │ │ bl 0 │ │ │ │ │ R_ARM_CALL fftwf_ops_zero │ │ │ │ │ ldr r3, [sp, #40] @ 0x28 │ │ │ │ │ cmp r3, #0 │ │ │ │ │ - beq 384 │ │ │ │ │ + beq 3bc │ │ │ │ │ mov r1, r4 │ │ │ │ │ add r0, r3, #8 │ │ │ │ │ bl 0 │ │ │ │ │ R_ARM_CALL fftwf_ops_add2 │ │ │ │ │ ldr r0, [sp, #68] @ 0x44 │ │ │ │ │ cmp r0, #0 │ │ │ │ │ - beq 39c │ │ │ │ │ + beq 3d4 │ │ │ │ │ mov r1, r4 │ │ │ │ │ add r0, r0, #8 │ │ │ │ │ bl 0 │ │ │ │ │ R_ARM_CALL fftwf_ops_add2 │ │ │ │ │ ldr r0, [sp, #72] @ 0x48 │ │ │ │ │ cmp r0, #0 │ │ │ │ │ - beq 3b4 │ │ │ │ │ + beq 3ec │ │ │ │ │ mov r1, r4 │ │ │ │ │ add r0, r0, #8 │ │ │ │ │ bl 0 │ │ │ │ │ R_ARM_CALL fftwf_ops_add2 │ │ │ │ │ ldr r0, [sp, #76] @ 0x4c │ │ │ │ │ cmp r0, #0 │ │ │ │ │ - beq 3cc │ │ │ │ │ + beq 404 │ │ │ │ │ mov r1, r4 │ │ │ │ │ add r0, r0, #8 │ │ │ │ │ bl 0 │ │ │ │ │ R_ARM_CALL fftwf_ops_add2 │ │ │ │ │ - ldr r0, [sp, #44] @ 0x2c │ │ │ │ │ - add sp, sp, #100 @ 0x64 │ │ │ │ │ - pop {r4, r5, r6, r7, r8, r9, sl, fp, pc} │ │ │ │ │ + ldr r0, [sp, #48] @ 0x30 │ │ │ │ │ + b ec │ │ │ │ │ ldr r0, [sp, #76] @ 0x4c │ │ │ │ │ bl 0 │ │ │ │ │ R_ARM_CALL fftwf_plan_destroy_internal │ │ │ │ │ ldr r0, [sp, #72] @ 0x48 │ │ │ │ │ bl 0 │ │ │ │ │ R_ARM_CALL fftwf_plan_destroy_internal │ │ │ │ │ ldr r0, [sp, #68] @ 0x44 │ │ │ │ │ bl 0 │ │ │ │ │ R_ARM_CALL fftwf_plan_destroy_internal │ │ │ │ │ ldr r0, [sp, #40] @ 0x28 │ │ │ │ │ bl 0 │ │ │ │ │ R_ARM_CALL fftwf_plan_destroy_internal │ │ │ │ │ - b cc │ │ │ │ │ + b e8 │ │ │ │ │ mul r2, r6, r2 │ │ │ │ │ mov r3, #1 │ │ │ │ │ + str r6, [sp] │ │ │ │ │ str r2, [sp, #4] │ │ │ │ │ - str r3, [sp, #16] │ │ │ │ │ - str r3, [sp, #12] │ │ │ │ │ + mov r2, r6 │ │ │ │ │ str r6, [sp, #8] │ │ │ │ │ - str r6, [sp] │ │ │ │ │ + str r3, [sp, #12] │ │ │ │ │ + str r3, [sp, #16] │ │ │ │ │ ldr r3, [r4, #12] │ │ │ │ │ - mov r2, r6 │ │ │ │ │ mul r1, r6, r3 │ │ │ │ │ bl 0 │ │ │ │ │ R_ARM_CALL fftwf_mktensor_3d │ │ │ │ │ ldr r7, [r4, #16] │ │ │ │ │ ldr r2, [r4, #20] │ │ │ │ │ mov r1, r7 │ │ │ │ │ bl 0 │ │ │ │ │ R_ARM_CALL fftwf_mkproblem_rdft_0_d │ │ │ │ │ mov r3, #8 │ │ │ │ │ + mov r1, r0 │ │ │ │ │ str r3, [sp] │ │ │ │ │ mov r3, r9 │ │ │ │ │ - mov r1, r0 │ │ │ │ │ mov r2, r3 │ │ │ │ │ mov r0, r5 │ │ │ │ │ bl 0 │ │ │ │ │ R_ARM_CALL fftwf_mkplan_f_d │ │ │ │ │ - ldr r1, [r4, #36] @ 0x24 │ │ │ │ │ str r0, [sp, #40] @ 0x28 │ │ │ │ │ clz r0, r0 │ │ │ │ │ + ldr r1, [r4, #36] @ 0x24 │ │ │ │ │ lsr r0, r0, #5 │ │ │ │ │ bl 0 │ │ │ │ │ R_ARM_CALL fftwf_mpi_any_true │ │ │ │ │ cmp r0, #0 │ │ │ │ │ - bne 3d8 │ │ │ │ │ + bne 40c │ │ │ │ │ ldr r3, [r4, #20] │ │ │ │ │ - b 148 │ │ │ │ │ + b 178 │ │ │ │ │ ldr r3, [r4, #12] │ │ │ │ │ mul r0, r3, r2 │ │ │ │ │ mov r2, #1 │ │ │ │ │ mov r1, r2 │ │ │ │ │ mul r0, r6, r0 │ │ │ │ │ bl 0 │ │ │ │ │ R_ARM_CALL fftwf_mktensor_1d │ │ │ │ │ ldr r7, [r4, #16] │ │ │ │ │ ldr r2, [r4, #20] │ │ │ │ │ mov r1, r7 │ │ │ │ │ bl 0 │ │ │ │ │ R_ARM_CALL fftwf_mkproblem_rdft_0_d │ │ │ │ │ mov r3, #8 │ │ │ │ │ + mov r1, r0 │ │ │ │ │ str r3, [sp] │ │ │ │ │ mov r3, r8 │ │ │ │ │ - mov r1, r0 │ │ │ │ │ - b 448 │ │ │ │ │ + b 47c │ │ │ │ │ mov r1, #1 │ │ │ │ │ - b 338 │ │ │ │ │ + b 370 │ │ │ │ │ .word 0x00000314 │ │ │ │ │ .word 0x0000030c │ │ │ │ │ R_ARM_REL32 .data.rel.ro │ │ │ │ │ │ │ │ │ │ -000004c4 : │ │ │ │ │ +000004f8 : │ │ │ │ │ apply(): │ │ │ │ │ - push {r4, r5, r6, lr} │ │ │ │ │ + strd r4, [sp, #-16]! │ │ │ │ │ mov r4, r0 │ │ │ │ │ + mov r5, r2 │ │ │ │ │ ldr r0, [r0, #64] @ 0x40 │ │ │ │ │ + str r6, [sp, #8] │ │ │ │ │ + mov r6, r1 │ │ │ │ │ + str lr, [sp, #12] │ │ │ │ │ sub sp, sp, #24 │ │ │ │ │ cmp r0, #0 │ │ │ │ │ - mov r6, r1 │ │ │ │ │ - mov r5, r2 │ │ │ │ │ - beq 5c0 │ │ │ │ │ + beq 614 │ │ │ │ │ ldr r3, [r0, #56] @ 0x38 │ │ │ │ │ blx r3 │ │ │ │ │ + ldr ip, [r4, #80] @ 0x50 │ │ │ │ │ ldr r3, [r4, #108] @ 0x6c │ │ │ │ │ ldr r1, [r4, #84] @ 0x54 │ │ │ │ │ - cmp r3, #0 │ │ │ │ │ ldr r0, [r4, #92] @ 0x5c │ │ │ │ │ - ldr ip, [r4, #80] @ 0x50 │ │ │ │ │ - bne 58c │ │ │ │ │ - ldr r3, [pc, #284] @ 628 │ │ │ │ │ - str ip, [sp, #16] │ │ │ │ │ + cmp r3, #0 │ │ │ │ │ + bne 5d4 │ │ │ │ │ + ldr r3, [pc, #308] @ 67c │ │ │ │ │ str r3, [sp, #12] │ │ │ │ │ + str ip, [sp, #16] │ │ │ │ │ ldr r2, [r4, #96] @ 0x60 │ │ │ │ │ str r6, [sp] │ │ │ │ │ stmib sp, {r0, r2} │ │ │ │ │ mov r0, r5 │ │ │ │ │ ldr r2, [r4, #88] @ 0x58 │ │ │ │ │ bl 0 │ │ │ │ │ R_ARM_CALL MPI_Alltoallv │ │ │ │ │ ldr r0, [r4, #68] @ 0x44 │ │ │ │ │ cmp r0, #0 │ │ │ │ │ - beq 5b8 │ │ │ │ │ + beq 600 │ │ │ │ │ ldr r3, [r0, #56] @ 0x38 │ │ │ │ │ mov r2, r5 │ │ │ │ │ mov r1, r6 │ │ │ │ │ blx r3 │ │ │ │ │ ldr r0, [r4, #72] @ 0x48 │ │ │ │ │ cmp r0, #0 │ │ │ │ │ - beq 5b8 │ │ │ │ │ - ldr r2, [r4, #104] @ 0x68 │ │ │ │ │ + beq 600 │ │ │ │ │ ldr r1, [r4, #100] @ 0x64 │ │ │ │ │ + ldr r2, [r4, #104] @ 0x68 │ │ │ │ │ ldr r3, [r0, #56] @ 0x38 │ │ │ │ │ - add r2, r5, r2, lsl #2 │ │ │ │ │ add r1, r6, r1, lsl #2 │ │ │ │ │ + add r2, r5, r2, lsl #2 │ │ │ │ │ blx r3 │ │ │ │ │ ldr r0, [r4, #76] @ 0x4c │ │ │ │ │ cmp r0, #0 │ │ │ │ │ - beq 5b8 │ │ │ │ │ + beq 600 │ │ │ │ │ + ldr r3, [r0, #56] @ 0x38 │ │ │ │ │ mov r2, r5 │ │ │ │ │ mov r1, r5 │ │ │ │ │ - ldr r3, [r0, #56] @ 0x38 │ │ │ │ │ add sp, sp, #24 │ │ │ │ │ - pop {r4, r5, r6, lr} │ │ │ │ │ + ldrd r4, [sp] │ │ │ │ │ + ldr r6, [sp, #8] │ │ │ │ │ + ldr lr, [sp, #12] │ │ │ │ │ + add sp, sp, #16 │ │ │ │ │ bx r3 │ │ │ │ │ - ldr r2, [pc, #148] @ 628 │ │ │ │ │ + ldr r2, [pc, #160] @ 67c │ │ │ │ │ ldr r1, [r1] │ │ │ │ │ stmib sp, {r2, ip} │ │ │ │ │ ldr r3, [r0] │ │ │ │ │ - str r3, [sp] │ │ │ │ │ mov r0, r5 │ │ │ │ │ + str r3, [sp] │ │ │ │ │ mov r3, r6 │ │ │ │ │ bl 0 │ │ │ │ │ R_ARM_CALL MPI_Alltoall │ │ │ │ │ ldr r0, [r4, #68] @ 0x44 │ │ │ │ │ cmp r0, #0 │ │ │ │ │ - bne 534 │ │ │ │ │ + bne 570 │ │ │ │ │ add sp, sp, #24 │ │ │ │ │ - pop {r4, r5, r6, pc} │ │ │ │ │ + ldrd r4, [sp] │ │ │ │ │ + ldr r6, [sp, #8] │ │ │ │ │ + add sp, sp, #12 │ │ │ │ │ + pop {pc} @ (ldr pc, [sp], #4) │ │ │ │ │ + ldr ip, [r4, #80] @ 0x50 │ │ │ │ │ ldr r3, [r4, #108] @ 0x6c │ │ │ │ │ ldr r1, [r4, #84] @ 0x54 │ │ │ │ │ - cmp r3, #0 │ │ │ │ │ ldr r0, [r4, #92] @ 0x5c │ │ │ │ │ - ldr ip, [r4, #80] @ 0x50 │ │ │ │ │ - bne 604 │ │ │ │ │ - ldr r3, [pc, #72] @ 628 │ │ │ │ │ - str ip, [sp, #16] │ │ │ │ │ + cmp r3, #0 │ │ │ │ │ + bne 658 │ │ │ │ │ + ldr r3, [pc, #72] @ 67c │ │ │ │ │ str r3, [sp, #12] │ │ │ │ │ + str ip, [sp, #16] │ │ │ │ │ ldr r2, [r4, #96] @ 0x60 │ │ │ │ │ str r5, [sp] │ │ │ │ │ stmib sp, {r0, r2} │ │ │ │ │ mov r0, r6 │ │ │ │ │ ldr r2, [r4, #88] @ 0x58 │ │ │ │ │ bl 0 │ │ │ │ │ R_ARM_CALL MPI_Alltoallv │ │ │ │ │ mov r6, r5 │ │ │ │ │ - b 528 │ │ │ │ │ - ldr r2, [pc, #28] @ 628 │ │ │ │ │ + b 564 │ │ │ │ │ + ldr r2, [pc, #28] @ 67c │ │ │ │ │ ldr r1, [r1] │ │ │ │ │ stmib sp, {r2, ip} │ │ │ │ │ ldr r3, [r0] │ │ │ │ │ - str r3, [sp] │ │ │ │ │ mov r0, r6 │ │ │ │ │ + str r3, [sp] │ │ │ │ │ mov r3, r5 │ │ │ │ │ bl 0 │ │ │ │ │ R_ARM_CALL MPI_Alltoall │ │ │ │ │ - b 5fc │ │ │ │ │ + b 650 │ │ │ │ │ .word 0x4c00040a │ │ │ │ │ │ │ │ │ │ -0000062c : │ │ │ │ │ +00000680 : │ │ │ │ │ destroy(): │ │ │ │ │ - push {r4, lr} │ │ │ │ │ + str r4, [sp, #-8]! │ │ │ │ │ mov r4, r0 │ │ │ │ │ ldr r0, [r0, #84] @ 0x54 │ │ │ │ │ + str lr, [sp, #4] │ │ │ │ │ bl 0 │ │ │ │ │ R_ARM_CALL fftwf_ifree0 │ │ │ │ │ add r0, r4, #80 @ 0x50 │ │ │ │ │ bl 0 │ │ │ │ │ R_ARM_CALL MPI_Comm_free │ │ │ │ │ ldr r0, [r4, #76] @ 0x4c │ │ │ │ │ bl 0 │ │ │ │ │ R_ARM_CALL fftwf_plan_destroy_internal │ │ │ │ │ ldr r0, [r4, #72] @ 0x48 │ │ │ │ │ bl 0 │ │ │ │ │ R_ARM_CALL fftwf_plan_destroy_internal │ │ │ │ │ ldr r0, [r4, #68] @ 0x44 │ │ │ │ │ bl 0 │ │ │ │ │ R_ARM_CALL fftwf_plan_destroy_internal │ │ │ │ │ + ldr lr, [sp, #4] │ │ │ │ │ ldr r0, [r4, #64] @ 0x40 │ │ │ │ │ - pop {r4, lr} │ │ │ │ │ + ldr r4, [sp] │ │ │ │ │ + add sp, sp, #8 │ │ │ │ │ b 0 │ │ │ │ │ R_ARM_JUMP24 fftwf_plan_destroy_internal │ │ │ │ │ │ │ │ │ │ -00000668 : │ │ │ │ │ +000006c8 : │ │ │ │ │ awake(): │ │ │ │ │ - push {r4, r5, r6, lr} │ │ │ │ │ + strd r4, [sp, #-16]! │ │ │ │ │ mov r4, r0 │ │ │ │ │ mov r5, r1 │ │ │ │ │ ldr r0, [r0, #64] @ 0x40 │ │ │ │ │ + str r6, [sp, #8] │ │ │ │ │ + str lr, [sp, #12] │ │ │ │ │ bl 0 │ │ │ │ │ R_ARM_CALL fftwf_plan_awake │ │ │ │ │ ldr r0, [r4, #68] @ 0x44 │ │ │ │ │ mov r1, r5 │ │ │ │ │ bl 0 │ │ │ │ │ R_ARM_CALL fftwf_plan_awake │ │ │ │ │ ldr r0, [r4, #72] @ 0x48 │ │ │ │ │ mov r1, r5 │ │ │ │ │ bl 0 │ │ │ │ │ R_ARM_CALL fftwf_plan_awake │ │ │ │ │ - ldr r0, [r4, #76] @ 0x4c │ │ │ │ │ + ldr r6, [sp, #8] │ │ │ │ │ mov r1, r5 │ │ │ │ │ - pop {r4, r5, r6, lr} │ │ │ │ │ + ldr lr, [sp, #12] │ │ │ │ │ + ldr r0, [r4, #76] @ 0x4c │ │ │ │ │ + ldrd r4, [sp] │ │ │ │ │ + add sp, sp, #16 │ │ │ │ │ b 0 │ │ │ │ │ R_ARM_JUMP24 fftwf_plan_awake │ │ │ │ │ │ │ │ │ │ -000006a4 : │ │ │ │ │ +00000718 : │ │ │ │ │ fftwf_mpi_transpose_alltoall_register(): │ │ │ │ │ - push {r4, r5, r6, lr} │ │ │ │ │ - ldr r5, [pc, #72] @ 6f8 │ │ │ │ │ + strd r4, [sp, #-16]! │ │ │ │ │ mov r4, r0 │ │ │ │ │ + mov r0, #12 │ │ │ │ │ + ldr r5, [pc, #84] @ 780 │ │ │ │ │ + str r6, [sp, #8] │ │ │ │ │ + str lr, [sp, #12] │ │ │ │ │ add r5, pc, r5 │ │ │ │ │ mov r1, r5 │ │ │ │ │ - mov r0, #12 │ │ │ │ │ bl 0 │ │ │ │ │ R_ARM_CALL fftwf_mksolver │ │ │ │ │ mov r3, #0 │ │ │ │ │ - str r3, [r0, #8] │ │ │ │ │ mov r1, r0 │ │ │ │ │ + str r3, [r0, #8] │ │ │ │ │ mov r0, r4 │ │ │ │ │ bl 0 │ │ │ │ │ R_ARM_CALL fftwf_solver_register │ │ │ │ │ mov r1, r5 │ │ │ │ │ mov r0, #12 │ │ │ │ │ bl 0 │ │ │ │ │ R_ARM_CALL fftwf_mksolver │ │ │ │ │ mov r3, #1 │ │ │ │ │ + ldr r6, [sp, #8] │ │ │ │ │ mov r1, r0 │ │ │ │ │ + ldr lr, [sp, #12] │ │ │ │ │ str r3, [r0, #8] │ │ │ │ │ mov r0, r4 │ │ │ │ │ - pop {r4, r5, r6, lr} │ │ │ │ │ + ldrd r4, [sp] │ │ │ │ │ + add sp, sp, #16 │ │ │ │ │ b 0 │ │ │ │ │ R_ARM_JUMP24 fftwf_solver_register │ │ │ │ │ - .word 0x00000040 │ │ │ │ │ + .word 0x00000048 │ │ │ │ │ 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: 6712 (bytes into file) │ │ │ │ │ + Start of section headers: 6952 (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 0x1a38: │ │ │ │ │ +There are 15 section headers, starting at offset 0x1b28: │ │ │ │ │ │ │ │ │ │ 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 001028 00 AX 0 0 4 │ │ │ │ │ - [ 2] .rel.text REL 00000000 0016d8 0002b0 08 I 12 1 4 │ │ │ │ │ - [ 3] .data PROGBITS 00000000 00105c 000000 00 WA 0 0 1 │ │ │ │ │ - [ 4] .bss NOBITS 00000000 00105c 000000 00 WA 0 0 1 │ │ │ │ │ - [ 5] .rodata.str1.4 PROGBITS 00000000 00105c 00003b 01 AMS 0 0 4 │ │ │ │ │ - [ 6] .data.rel.ro PROGBITS 00000000 001097 000010 00 WA 0 0 4 │ │ │ │ │ - [ 7] .rel.data.rel.ro REL 00000000 001988 000020 08 I 12 6 4 │ │ │ │ │ - [ 8] .data.rel.ro.local PROGBITS 00000000 0010a7 00000c 00 WA 0 0 4 │ │ │ │ │ - [ 9] .rel.data.rel.ro.local REL 00000000 0019a8 000008 08 I 12 8 4 │ │ │ │ │ - [10] .note.GNU-stack PROGBITS 00000000 0010b3 000000 00 0 0 1 │ │ │ │ │ - [11] .ARM.attributes ARM_ATTRIBUTES 00000000 0010b3 00002b 00 0 0 1 │ │ │ │ │ - [12] .symtab SYMTAB 00000000 0010e0 000380 10 13 26 4 │ │ │ │ │ - [13] .strtab STRTAB 00000000 001460 000275 00 0 0 1 │ │ │ │ │ - [14] .shstrtab STRTAB 00000000 0019b0 000087 00 0 0 1 │ │ │ │ │ + [ 1] .text PROGBITS 00000000 000034 001118 00 AX 0 0 4 │ │ │ │ │ + [ 2] .rel.text REL 00000000 0017c8 0002b0 08 I 12 1 4 │ │ │ │ │ + [ 3] .data PROGBITS 00000000 00114c 000000 00 WA 0 0 1 │ │ │ │ │ + [ 4] .bss NOBITS 00000000 00114c 000000 00 WA 0 0 1 │ │ │ │ │ + [ 5] .rodata.str1.4 PROGBITS 00000000 00114c 00003b 01 AMS 0 0 4 │ │ │ │ │ + [ 6] .data.rel.ro PROGBITS 00000000 001187 000010 00 WA 0 0 4 │ │ │ │ │ + [ 7] .rel.data.rel.ro REL 00000000 001a78 000020 08 I 12 6 4 │ │ │ │ │ + [ 8] .data.rel.ro.local PROGBITS 00000000 001197 00000c 00 WA 0 0 4 │ │ │ │ │ + [ 9] .rel.data.rel.ro.local REL 00000000 001a98 000008 08 I 12 8 4 │ │ │ │ │ + [10] .note.GNU-stack PROGBITS 00000000 0011a3 000000 00 0 0 1 │ │ │ │ │ + [11] .ARM.attributes ARM_ATTRIBUTES 00000000 0011a3 00002b 00 0 0 1 │ │ │ │ │ + [12] .symtab SYMTAB 00000000 0011d0 000380 10 13 26 4 │ │ │ │ │ + [13] .strtab STRTAB 00000000 001550 000275 00 0 0 1 │ │ │ │ │ + [14] .shstrtab STRTAB 00000000 001aa0 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 {} │ │ │ │ │ @@ -3,28 +3,28 @@ │ │ │ │ │ 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: 00000000 0 NOTYPE LOCAL DEFAULT 1 $a │ │ │ │ │ - 6: 00000000 112 FUNC LOCAL DEFAULT 1 print │ │ │ │ │ - 7: 00000064 0 NOTYPE LOCAL DEFAULT 1 $d │ │ │ │ │ - 8: 00000070 0 NOTYPE LOCAL DEFAULT 1 $a │ │ │ │ │ - 9: 00000070 480 FUNC LOCAL DEFAULT 1 fill1_comm_sched │ │ │ │ │ - 10: 00000250 624 FUNC LOCAL DEFAULT 1 transpose_chunks │ │ │ │ │ - 11: 000004b8 0 NOTYPE LOCAL DEFAULT 1 $d │ │ │ │ │ - 12: 000004c0 0 NOTYPE LOCAL DEFAULT 1 $a │ │ │ │ │ - 13: 000004c0 308 FUNC LOCAL DEFAULT 1 apply │ │ │ │ │ - 14: 000005f4 68 FUNC LOCAL DEFAULT 1 destroy │ │ │ │ │ - 15: 00000638 60 FUNC LOCAL DEFAULT 1 awake │ │ │ │ │ - 16: 000009d8 1528 FUNC LOCAL DEFAULT 1 mkplan │ │ │ │ │ - 17: 00000fc8 0 NOTYPE LOCAL DEFAULT 1 $d │ │ │ │ │ - 18: 00000fd0 0 NOTYPE LOCAL DEFAULT 1 $a │ │ │ │ │ - 19: 00001024 0 NOTYPE LOCAL DEFAULT 1 $d │ │ │ │ │ + 6: 00000000 124 FUNC LOCAL DEFAULT 1 print │ │ │ │ │ + 7: 00000070 0 NOTYPE LOCAL DEFAULT 1 $d │ │ │ │ │ + 8: 0000007c 0 NOTYPE LOCAL DEFAULT 1 $a │ │ │ │ │ + 9: 0000007c 516 FUNC LOCAL DEFAULT 1 fill1_comm_sched │ │ │ │ │ + 10: 00000280 660 FUNC LOCAL DEFAULT 1 transpose_chunks │ │ │ │ │ + 11: 0000050c 0 NOTYPE LOCAL DEFAULT 1 $d │ │ │ │ │ + 12: 00000514 0 NOTYPE LOCAL DEFAULT 1 $a │ │ │ │ │ + 13: 00000514 352 FUNC LOCAL DEFAULT 1 apply │ │ │ │ │ + 14: 00000674 80 FUNC LOCAL DEFAULT 1 destroy │ │ │ │ │ + 15: 000006c4 80 FUNC LOCAL DEFAULT 1 awake │ │ │ │ │ + 16: 00000a98 1556 FUNC LOCAL DEFAULT 1 mkplan │ │ │ │ │ + 17: 000010a4 0 NOTYPE LOCAL DEFAULT 1 $d │ │ │ │ │ + 18: 000010ac 0 NOTYPE LOCAL DEFAULT 1 $a │ │ │ │ │ + 19: 00001114 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 __aeabi_idivmod │ │ │ │ │ @@ -33,15 +33,15 @@ │ │ │ │ │ 29: 00000000 0 NOTYPE GLOBAL DEFAULT UND fftwf_malloc_plain │ │ │ │ │ 30: 00000000 0 NOTYPE GLOBAL DEFAULT UND memmove │ │ │ │ │ 31: 00000000 0 NOTYPE GLOBAL DEFAULT UND fftwf_ifree │ │ │ │ │ 32: 00000000 0 NOTYPE GLOBAL DEFAULT UND fftwf_ifree0 │ │ │ │ │ 33: 00000000 0 NOTYPE GLOBAL DEFAULT UND MPI_Comm_free │ │ │ │ │ 34: 00000000 0 NOTYPE GLOBAL DEFAULT UND fftwf_plan_destroy_internal │ │ │ │ │ 35: 00000000 0 NOTYPE GLOBAL DEFAULT UND fftwf_plan_awake │ │ │ │ │ - 36: 00000674 868 FUNC GLOBAL DEFAULT 1 fftwf_mpi_mkplans_posttranspose │ │ │ │ │ + 36: 00000714 900 FUNC GLOBAL DEFAULT 1 fftwf_mpi_mkplans_posttranspose │ │ │ │ │ 37: 00000000 0 NOTYPE GLOBAL DEFAULT UND fftwf_mpi_block │ │ │ │ │ 38: 00000000 0 NOTYPE GLOBAL DEFAULT UND fftwf_mktensor_4d │ │ │ │ │ 39: 00000000 0 NOTYPE GLOBAL DEFAULT UND fftwf_mkproblem_rdft_0_d │ │ │ │ │ 40: 00000000 0 NOTYPE GLOBAL DEFAULT UND fftwf_mkplan_f_d │ │ │ │ │ 41: 00000000 0 NOTYPE GLOBAL DEFAULT UND fftwf_mktensor_3d │ │ │ │ │ 42: 00000000 0 NOTYPE GLOBAL DEFAULT UND fftwf_mktensor_2d │ │ │ │ │ 43: 00000000 0 NOTYPE GLOBAL DEFAULT UND MPI_Comm_rank │ │ │ │ │ @@ -49,11 +49,11 @@ │ │ │ │ │ 45: 00000000 0 NOTYPE GLOBAL DEFAULT UND fftwf_mpi_any_true │ │ │ │ │ 46: 00000000 0 NOTYPE GLOBAL DEFAULT UND fftwf_mkplan_rdft │ │ │ │ │ 47: 00000000 0 NOTYPE GLOBAL DEFAULT UND MPI_Comm_dup │ │ │ │ │ 48: 00000000 0 NOTYPE GLOBAL DEFAULT UND fftwf_mpi_num_blocks │ │ │ │ │ 49: 00000000 0 NOTYPE GLOBAL DEFAULT UND fftwf_imax │ │ │ │ │ 50: 00000000 0 NOTYPE GLOBAL DEFAULT UND fftwf_ops_zero │ │ │ │ │ 51: 00000000 0 NOTYPE GLOBAL DEFAULT UND fftwf_ops_add2 │ │ │ │ │ - 52: 00000fd0 88 FUNC GLOBAL DEFAULT 1 fftwf_mpi_transpose_pairwise_register │ │ │ │ │ + 52: 000010ac 108 FUNC GLOBAL DEFAULT 1 fftwf_mpi_transpose_pairwise_register │ │ │ │ │ 53: 00000000 0 NOTYPE GLOBAL DEFAULT UND fftwf_mksolver │ │ │ │ │ 54: 00000000 0 NOTYPE GLOBAL DEFAULT UND fftwf_solver_register │ │ │ │ │ 55: 00000000 0 NOTYPE GLOBAL DEFAULT UND fftwf_mpi_transpose_solve │ │ │ │ ├── readelf --wide --relocs {} │ │ │ │ │ @@ -1,100 +1,100 @@ │ │ │ │ │ │ │ │ │ │ -Relocation section '.rel.text' at offset 0x16d8 contains 86 entries: │ │ │ │ │ +Relocation section '.rel.text' at offset 0x17c8 contains 86 entries: │ │ │ │ │ Offset Info Type Sym. Value Symbol's Name │ │ │ │ │ -00000064 00000303 R_ARM_REL32 00000004 .LC1 │ │ │ │ │ -00000068 00000403 R_ARM_REL32 00000008 .LC2 │ │ │ │ │ -0000006c 00000203 R_ARM_REL32 00000000 .LC0 │ │ │ │ │ -000000d8 00001a1c R_ARM_CALL 00000000 __aeabi_idivmod │ │ │ │ │ -000000f8 00001a1c R_ARM_CALL 00000000 __aeabi_idivmod │ │ │ │ │ -00000110 00001a1c R_ARM_CALL 00000000 __aeabi_idivmod │ │ │ │ │ -00000130 00001a1c R_ARM_CALL 00000000 __aeabi_idivmod │ │ │ │ │ -000001c8 00001a1c R_ARM_CALL 00000000 __aeabi_idivmod │ │ │ │ │ -000001e8 00001a1c R_ARM_CALL 00000000 __aeabi_idivmod │ │ │ │ │ -00000200 00001a1c R_ARM_CALL 00000000 __aeabi_idivmod │ │ │ │ │ -00000220 00001a1c R_ARM_CALL 00000000 __aeabi_idivmod │ │ │ │ │ -00000344 00001b1c R_ARM_CALL 00000000 MPI_Sendrecv │ │ │ │ │ -00000388 00001c1c R_ARM_CALL 00000000 memcpy │ │ │ │ │ -000003a4 00001d1c R_ARM_CALL 00000000 fftwf_malloc_plain │ │ │ │ │ -000003f4 00001e1c R_ARM_CALL 00000000 memmove │ │ │ │ │ -0000042c 00001c1c R_ARM_CALL 00000000 memcpy │ │ │ │ │ -00000498 00001b1c R_ARM_CALL 00000000 MPI_Sendrecv │ │ │ │ │ -000004ac 00001f1c R_ARM_CALL 00000000 fftwf_ifree │ │ │ │ │ -00000600 0000201c R_ARM_CALL 00000000 fftwf_ifree0 │ │ │ │ │ -00000608 0000201c R_ARM_CALL 00000000 fftwf_ifree0 │ │ │ │ │ -00000610 0000211c R_ARM_CALL 00000000 MPI_Comm_free │ │ │ │ │ -00000618 0000221c R_ARM_CALL 00000000 fftwf_plan_destroy_internal │ │ │ │ │ -00000620 0000221c R_ARM_CALL 00000000 fftwf_plan_destroy_internal │ │ │ │ │ -00000628 0000221c R_ARM_CALL 00000000 fftwf_plan_destroy_internal │ │ │ │ │ -00000634 0000221d R_ARM_JUMP24 00000000 fftwf_plan_destroy_internal │ │ │ │ │ -00000648 0000231c R_ARM_CALL 00000000 fftwf_plan_awake │ │ │ │ │ -00000654 0000231c R_ARM_CALL 00000000 fftwf_plan_awake │ │ │ │ │ -00000660 0000231c R_ARM_CALL 00000000 fftwf_plan_awake │ │ │ │ │ -00000670 0000231d R_ARM_JUMP24 00000000 fftwf_plan_awake │ │ │ │ │ -000006a0 0000251c R_ARM_CALL 00000000 fftwf_mpi_block │ │ │ │ │ -000006b4 00001a1c R_ARM_CALL 00000000 __aeabi_idivmod │ │ │ │ │ -0000074c 0000261c R_ARM_CALL 00000000 fftwf_mktensor_4d │ │ │ │ │ -00000758 0000271c R_ARM_CALL 00000000 fftwf_mkproblem_rdft_0_d │ │ │ │ │ -00000774 0000281c R_ARM_CALL 00000000 fftwf_mkplan_f_d │ │ │ │ │ -000007d0 0000291c R_ARM_CALL 00000000 fftwf_mktensor_3d │ │ │ │ │ -000007ec 0000271c R_ARM_CALL 00000000 fftwf_mkproblem_rdft_0_d │ │ │ │ │ -00000804 0000281c R_ARM_CALL 00000000 fftwf_mkplan_f_d │ │ │ │ │ -0000085c 0000291c R_ARM_CALL 00000000 fftwf_mktensor_3d │ │ │ │ │ -00000868 0000271c R_ARM_CALL 00000000 fftwf_mkproblem_rdft_0_d │ │ │ │ │ -00000884 0000281c R_ARM_CALL 00000000 fftwf_mkplan_f_d │ │ │ │ │ -000008e4 00002a1c R_ARM_CALL 00000000 fftwf_mktensor_2d │ │ │ │ │ -00000900 0000271c R_ARM_CALL 00000000 fftwf_mkproblem_rdft_0_d │ │ │ │ │ -00000918 0000281c R_ARM_CALL 00000000 fftwf_mkplan_f_d │ │ │ │ │ -00000934 0000221c R_ARM_CALL 00000000 fftwf_plan_destroy_internal │ │ │ │ │ -00000940 0000221c R_ARM_CALL 00000000 fftwf_plan_destroy_internal │ │ │ │ │ -0000094c 0000221c R_ARM_CALL 00000000 fftwf_plan_destroy_internal │ │ │ │ │ -0000099c 0000291c R_ARM_CALL 00000000 fftwf_mktensor_3d │ │ │ │ │ -000009a8 0000271c R_ARM_CALL 00000000 fftwf_mkproblem_rdft_0_d │ │ │ │ │ -000009c0 0000281c R_ARM_CALL 00000000 fftwf_mkplan_f_d │ │ │ │ │ -00000a50 00002b1c R_ARM_CALL 00000000 MPI_Comm_rank │ │ │ │ │ -00000a5c 00002c1c R_ARM_CALL 00000000 MPI_Comm_size │ │ │ │ │ -00000a6c 0000251c R_ARM_CALL 00000000 fftwf_mpi_block │ │ │ │ │ -00000ad4 0000241c R_ARM_CALL 00000674 fftwf_mpi_mkplans_posttranspose │ │ │ │ │ -00000ae0 00002d1c R_ARM_CALL 00000000 fftwf_mpi_any_true │ │ │ │ │ -00000b1c 00002e1c R_ARM_CALL 00000000 fftwf_mkplan_rdft │ │ │ │ │ -00000b68 00002f1c R_ARM_CALL 00000000 MPI_Comm_dup │ │ │ │ │ -00000b74 0000301c R_ARM_CALL 00000000 fftwf_mpi_num_blocks │ │ │ │ │ -00000b84 0000301c R_ARM_CALL 00000000 fftwf_mpi_num_blocks │ │ │ │ │ -00000b90 0000311c R_ARM_CALL 00000000 fftwf_imax │ │ │ │ │ -00000b9c 00001d1c R_ARM_CALL 00000000 fftwf_malloc_plain │ │ │ │ │ -00000bcc 0000251c R_ARM_CALL 00000000 fftwf_mpi_block │ │ │ │ │ -00000be0 0000251c R_ARM_CALL 00000000 fftwf_mpi_block │ │ │ │ │ -00000c3c 0000251c R_ARM_CALL 00000000 fftwf_mpi_block │ │ │ │ │ -00000c50 0000251c R_ARM_CALL 00000000 fftwf_mpi_block │ │ │ │ │ -00000d30 0000321c R_ARM_CALL 00000000 fftwf_ops_zero │ │ │ │ │ -00000d48 0000331c R_ARM_CALL 00000000 fftwf_ops_add2 │ │ │ │ │ -00000d60 0000331c R_ARM_CALL 00000000 fftwf_ops_add2 │ │ │ │ │ -00000d78 0000331c R_ARM_CALL 00000000 fftwf_ops_add2 │ │ │ │ │ -00000d90 0000331c R_ARM_CALL 00000000 fftwf_ops_add2 │ │ │ │ │ -00000dd8 0000291c R_ARM_CALL 00000000 fftwf_mktensor_3d │ │ │ │ │ -00000de4 0000271c R_ARM_CALL 00000000 fftwf_mkproblem_rdft_0_d │ │ │ │ │ -00000e00 0000281c R_ARM_CALL 00000000 fftwf_mkplan_f_d │ │ │ │ │ -00000e14 00002d1c R_ARM_CALL 00000000 fftwf_mpi_any_true │ │ │ │ │ -00000e30 0000221c R_ARM_CALL 00000000 fftwf_plan_destroy_internal │ │ │ │ │ -00000e38 0000221c R_ARM_CALL 00000000 fftwf_plan_destroy_internal │ │ │ │ │ -00000e40 0000221c R_ARM_CALL 00000000 fftwf_plan_destroy_internal │ │ │ │ │ -00000e48 0000221c R_ARM_CALL 00000000 fftwf_plan_destroy_internal │ │ │ │ │ -00000e54 00001d1c R_ARM_CALL 00000000 fftwf_malloc_plain │ │ │ │ │ -00000e80 00001d1c R_ARM_CALL 00000000 fftwf_malloc_plain │ │ │ │ │ -00000f4c 00001f1c R_ARM_CALL 00000000 fftwf_ifree │ │ │ │ │ -00000fcc 00001403 R_ARM_REL32 00000000 .data.rel.ro │ │ │ │ │ -00000fe8 0000351c R_ARM_CALL 00000000 fftwf_mksolver │ │ │ │ │ -00000ffc 0000361c R_ARM_CALL 00000000 fftwf_solver_register │ │ │ │ │ -00001008 0000351c R_ARM_CALL 00000000 fftwf_mksolver │ │ │ │ │ -00001020 0000361d R_ARM_JUMP24 00000000 fftwf_solver_register │ │ │ │ │ -00001024 00001703 R_ARM_REL32 00000000 .data.rel.ro.local │ │ │ │ │ +00000070 00000303 R_ARM_REL32 00000004 .LC1 │ │ │ │ │ +00000074 00000403 R_ARM_REL32 00000008 .LC2 │ │ │ │ │ +00000078 00000203 R_ARM_REL32 00000000 .LC0 │ │ │ │ │ +000000f4 00001a1c R_ARM_CALL 00000000 __aeabi_idivmod │ │ │ │ │ +00000114 00001a1c R_ARM_CALL 00000000 __aeabi_idivmod │ │ │ │ │ +0000012c 00001a1c R_ARM_CALL 00000000 __aeabi_idivmod │ │ │ │ │ +0000014c 00001a1c R_ARM_CALL 00000000 __aeabi_idivmod │ │ │ │ │ +000001f8 00001a1c R_ARM_CALL 00000000 __aeabi_idivmod │ │ │ │ │ +00000218 00001a1c R_ARM_CALL 00000000 __aeabi_idivmod │ │ │ │ │ +00000230 00001a1c R_ARM_CALL 00000000 __aeabi_idivmod │ │ │ │ │ +00000250 00001a1c R_ARM_CALL 00000000 __aeabi_idivmod │ │ │ │ │ +00000388 00001b1c R_ARM_CALL 00000000 MPI_Sendrecv │ │ │ │ │ +000003cc 00001c1c R_ARM_CALL 00000000 memcpy │ │ │ │ │ +000003fc 00001d1c R_ARM_CALL 00000000 fftwf_malloc_plain │ │ │ │ │ +00000450 00001e1c R_ARM_CALL 00000000 memmove │ │ │ │ │ +0000048c 00001c1c R_ARM_CALL 00000000 memcpy │ │ │ │ │ +000004f0 00001b1c R_ARM_CALL 00000000 MPI_Sendrecv │ │ │ │ │ +00000504 00001f1c R_ARM_CALL 00000000 fftwf_ifree │ │ │ │ │ +00000684 0000201c R_ARM_CALL 00000000 fftwf_ifree0 │ │ │ │ │ +0000068c 0000201c R_ARM_CALL 00000000 fftwf_ifree0 │ │ │ │ │ +00000694 0000211c R_ARM_CALL 00000000 MPI_Comm_free │ │ │ │ │ +0000069c 0000221c R_ARM_CALL 00000000 fftwf_plan_destroy_internal │ │ │ │ │ +000006a4 0000221c R_ARM_CALL 00000000 fftwf_plan_destroy_internal │ │ │ │ │ +000006ac 0000221c R_ARM_CALL 00000000 fftwf_plan_destroy_internal │ │ │ │ │ +000006c0 0000221d R_ARM_JUMP24 00000000 fftwf_plan_destroy_internal │ │ │ │ │ +000006dc 0000231c R_ARM_CALL 00000000 fftwf_plan_awake │ │ │ │ │ +000006e8 0000231c R_ARM_CALL 00000000 fftwf_plan_awake │ │ │ │ │ +000006f4 0000231c R_ARM_CALL 00000000 fftwf_plan_awake │ │ │ │ │ +00000710 0000231d R_ARM_JUMP24 00000000 fftwf_plan_awake │ │ │ │ │ +00000754 0000251c R_ARM_CALL 00000000 fftwf_mpi_block │ │ │ │ │ +00000764 00001a1c R_ARM_CALL 00000000 __aeabi_idivmod │ │ │ │ │ +00000800 0000261c R_ARM_CALL 00000000 fftwf_mktensor_4d │ │ │ │ │ +0000080c 0000271c R_ARM_CALL 00000000 fftwf_mkproblem_rdft_0_d │ │ │ │ │ +00000824 0000281c R_ARM_CALL 00000000 fftwf_mkplan_f_d │ │ │ │ │ +00000880 0000291c R_ARM_CALL 00000000 fftwf_mktensor_3d │ │ │ │ │ +0000089c 0000271c R_ARM_CALL 00000000 fftwf_mkproblem_rdft_0_d │ │ │ │ │ +000008b4 0000281c R_ARM_CALL 00000000 fftwf_mkplan_f_d │ │ │ │ │ +00000924 0000291c R_ARM_CALL 00000000 fftwf_mktensor_3d │ │ │ │ │ +00000930 0000271c R_ARM_CALL 00000000 fftwf_mkproblem_rdft_0_d │ │ │ │ │ +00000948 0000281c R_ARM_CALL 00000000 fftwf_mkplan_f_d │ │ │ │ │ +000009a8 00002a1c R_ARM_CALL 00000000 fftwf_mktensor_2d │ │ │ │ │ +000009c4 0000271c R_ARM_CALL 00000000 fftwf_mkproblem_rdft_0_d │ │ │ │ │ +000009dc 0000281c R_ARM_CALL 00000000 fftwf_mkplan_f_d │ │ │ │ │ +000009f8 0000221c R_ARM_CALL 00000000 fftwf_plan_destroy_internal │ │ │ │ │ +00000a04 0000221c R_ARM_CALL 00000000 fftwf_plan_destroy_internal │ │ │ │ │ +00000a10 0000221c R_ARM_CALL 00000000 fftwf_plan_destroy_internal │ │ │ │ │ +00000a5c 0000291c R_ARM_CALL 00000000 fftwf_mktensor_3d │ │ │ │ │ +00000a68 0000271c R_ARM_CALL 00000000 fftwf_mkproblem_rdft_0_d │ │ │ │ │ +00000a80 0000281c R_ARM_CALL 00000000 fftwf_mkplan_f_d │ │ │ │ │ +00000b34 00002b1c R_ARM_CALL 00000000 MPI_Comm_rank │ │ │ │ │ +00000b40 00002c1c R_ARM_CALL 00000000 MPI_Comm_size │ │ │ │ │ +00000b50 0000251c R_ARM_CALL 00000000 fftwf_mpi_block │ │ │ │ │ +00000bb8 0000241c R_ARM_CALL 00000714 fftwf_mpi_mkplans_posttranspose │ │ │ │ │ +00000bc4 00002d1c R_ARM_CALL 00000000 fftwf_mpi_any_true │ │ │ │ │ +00000bfc 00002e1c R_ARM_CALL 00000000 fftwf_mkplan_rdft │ │ │ │ │ +00000c48 00002f1c R_ARM_CALL 00000000 MPI_Comm_dup │ │ │ │ │ +00000c54 0000301c R_ARM_CALL 00000000 fftwf_mpi_num_blocks │ │ │ │ │ +00000c64 0000301c R_ARM_CALL 00000000 fftwf_mpi_num_blocks │ │ │ │ │ +00000c70 0000311c R_ARM_CALL 00000000 fftwf_imax │ │ │ │ │ +00000c7c 00001d1c R_ARM_CALL 00000000 fftwf_malloc_plain │ │ │ │ │ +00000cb4 0000251c R_ARM_CALL 00000000 fftwf_mpi_block │ │ │ │ │ +00000cc8 0000251c R_ARM_CALL 00000000 fftwf_mpi_block │ │ │ │ │ +00000d28 0000251c R_ARM_CALL 00000000 fftwf_mpi_block │ │ │ │ │ +00000d3c 0000251c R_ARM_CALL 00000000 fftwf_mpi_block │ │ │ │ │ +00000e20 0000321c R_ARM_CALL 00000000 fftwf_ops_zero │ │ │ │ │ +00000e38 0000331c R_ARM_CALL 00000000 fftwf_ops_add2 │ │ │ │ │ +00000e4c 0000331c R_ARM_CALL 00000000 fftwf_ops_add2 │ │ │ │ │ +00000e64 0000331c R_ARM_CALL 00000000 fftwf_ops_add2 │ │ │ │ │ +00000e7c 0000331c R_ARM_CALL 00000000 fftwf_ops_add2 │ │ │ │ │ +00000ec0 0000291c R_ARM_CALL 00000000 fftwf_mktensor_3d │ │ │ │ │ +00000ecc 0000271c R_ARM_CALL 00000000 fftwf_mkproblem_rdft_0_d │ │ │ │ │ +00000ee8 0000281c R_ARM_CALL 00000000 fftwf_mkplan_f_d │ │ │ │ │ +00000efc 00002d1c R_ARM_CALL 00000000 fftwf_mpi_any_true │ │ │ │ │ +00000f14 0000221c R_ARM_CALL 00000000 fftwf_plan_destroy_internal │ │ │ │ │ +00000f1c 0000221c R_ARM_CALL 00000000 fftwf_plan_destroy_internal │ │ │ │ │ +00000f24 0000221c R_ARM_CALL 00000000 fftwf_plan_destroy_internal │ │ │ │ │ +00000f2c 0000221c R_ARM_CALL 00000000 fftwf_plan_destroy_internal │ │ │ │ │ +00000f38 00001d1c R_ARM_CALL 00000000 fftwf_malloc_plain │ │ │ │ │ +00000f64 00001d1c R_ARM_CALL 00000000 fftwf_malloc_plain │ │ │ │ │ +00001030 00001f1c R_ARM_CALL 00000000 fftwf_ifree │ │ │ │ │ +000010a8 00001403 R_ARM_REL32 00000000 .data.rel.ro │ │ │ │ │ +000010cc 0000351c R_ARM_CALL 00000000 fftwf_mksolver │ │ │ │ │ +000010e0 0000361c R_ARM_CALL 00000000 fftwf_solver_register │ │ │ │ │ +000010ec 0000351c R_ARM_CALL 00000000 fftwf_mksolver │ │ │ │ │ +00001110 0000361d R_ARM_JUMP24 00000000 fftwf_solver_register │ │ │ │ │ +00001114 00001703 R_ARM_REL32 00000000 .data.rel.ro.local │ │ │ │ │ │ │ │ │ │ -Relocation section '.rel.data.rel.ro' at offset 0x1988 contains 4 entries: │ │ │ │ │ +Relocation section '.rel.data.rel.ro' at offset 0x1a78 contains 4 entries: │ │ │ │ │ Offset Info Type Sym. Value Symbol's Name │ │ │ │ │ 00000000 00003702 R_ARM_ABS32 00000000 fftwf_mpi_transpose_solve │ │ │ │ │ -00000004 00000f02 R_ARM_ABS32 00000638 awake │ │ │ │ │ +00000004 00000f02 R_ARM_ABS32 000006c4 awake │ │ │ │ │ 00000008 00000602 R_ARM_ABS32 00000000 print │ │ │ │ │ -0000000c 00000e02 R_ARM_ABS32 000005f4 destroy │ │ │ │ │ +0000000c 00000e02 R_ARM_ABS32 00000674 destroy │ │ │ │ │ │ │ │ │ │ -Relocation section '.rel.data.rel.ro.local' at offset 0x19a8 contains 1 entry: │ │ │ │ │ +Relocation section '.rel.data.rel.ro.local' at offset 0x1a98 contains 1 entry: │ │ │ │ │ Offset Info Type Sym. Value Symbol's Name │ │ │ │ │ -00000004 00001002 R_ARM_ABS32 000009d8 mkplan │ │ │ │ │ +00000004 00001002 R_ARM_ABS32 00000a98 mkplan │ │ │ │ ├── objdump --line-numbers --disassemble --demangle --reloc --no-show-raw-insn --section=.text {} │ │ │ │ │ @@ -2,352 +2,376 @@ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ Disassembly of section .text: │ │ │ │ │ │ │ │ │ │ 00000000 : │ │ │ │ │ print(): │ │ │ │ │ mov r3, r0 │ │ │ │ │ + mov r0, r1 │ │ │ │ │ + str r4, [sp, #-8]! │ │ │ │ │ ldr r2, [r3, #120] @ 0x78 │ │ │ │ │ - push {r4, lr} │ │ │ │ │ - cmp r2, #2 │ │ │ │ │ - ldr r4, [r1] │ │ │ │ │ + str lr, [sp, #4] │ │ │ │ │ sub sp, sp, #16 │ │ │ │ │ - mov r0, r1 │ │ │ │ │ - beq 58 │ │ │ │ │ - ldr r2, [pc, #60] @ 64 │ │ │ │ │ + ldr r4, [r1] │ │ │ │ │ + cmp r2, #2 │ │ │ │ │ + beq 64 │ │ │ │ │ + ldr r2, [pc, #68] @ 70 │ │ │ │ │ add r2, pc, r2 │ │ │ │ │ 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] │ │ │ │ │ - ldr r1, [pc, #32] @ 68 │ │ │ │ │ + ldr r1, [pc, #40] @ 74 │ │ │ │ │ ldr r3, [r3, #64] @ 0x40 │ │ │ │ │ add r1, pc, r1 │ │ │ │ │ blx r4 │ │ │ │ │ add sp, sp, #16 │ │ │ │ │ - pop {r4, pc} │ │ │ │ │ - ldr r2, [pc, #12] @ 6c │ │ │ │ │ + ldr r4, [sp] │ │ │ │ │ + add sp, sp, #4 │ │ │ │ │ + pop {pc} @ (ldr pc, [sp], #4) │ │ │ │ │ + ldr r2, [pc, #12] @ 78 │ │ │ │ │ add r2, pc, r2 │ │ │ │ │ - b 28 │ │ │ │ │ - .word 0x00000038 │ │ │ │ │ + b 2c │ │ │ │ │ + .word 0x00000040 │ │ │ │ │ R_ARM_REL32 .LC1 │ │ │ │ │ - .word 0x00000018 │ │ │ │ │ + .word 0x00000020 │ │ │ │ │ R_ARM_REL32 .LC2 │ │ │ │ │ .word 0x00000008 │ │ │ │ │ R_ARM_REL32 .LC0 │ │ │ │ │ │ │ │ │ │ -00000070 : │ │ │ │ │ +0000007c : │ │ │ │ │ fill1_comm_sched(): │ │ │ │ │ - push {r4, r5, r6, r7, r8, r9, sl, fp, lr} │ │ │ │ │ + strd r4, [sp, #-36]! @ 0xffffffdc │ │ │ │ │ ands r4, r2, #1 │ │ │ │ │ - sub sp, sp, #12 │ │ │ │ │ - mov r9, r0 │ │ │ │ │ mov r5, r1 │ │ │ │ │ + strd r6, [sp, #8] │ │ │ │ │ mov r7, r2 │ │ │ │ │ - bne 154 │ │ │ │ │ + strd r8, [sp, #16] │ │ │ │ │ + mov r9, r0 │ │ │ │ │ + strd sl, [sp, #24] │ │ │ │ │ + str lr, [sp, #32] │ │ │ │ │ + sub sp, sp, #12 │ │ │ │ │ + bne 184 │ │ │ │ │ sub r6, r2, #1 │ │ │ │ │ - cmp r6, #0 │ │ │ │ │ str r1, [r9] │ │ │ │ │ - ble 14c │ │ │ │ │ + cmp r6, #0 │ │ │ │ │ + ble 168 │ │ │ │ │ mov r8, #1 │ │ │ │ │ - asr r7, r2, r8 │ │ │ │ │ sub sl, r6, r1 │ │ │ │ │ + asr r7, r2, r8 │ │ │ │ │ add fp, r1, r6 │ │ │ │ │ cmp r5, r4 │ │ │ │ │ streq r6, [r9, r8, lsl #2] │ │ │ │ │ addeq r8, r8, #1 │ │ │ │ │ - beq 140 │ │ │ │ │ + beq 15c │ │ │ │ │ cmp r5, r6 │ │ │ │ │ streq r4, [r9, r8, lsl #2] │ │ │ │ │ addeq r8, r8, #1 │ │ │ │ │ cmp r5, r6 │ │ │ │ │ - bge 140 │ │ │ │ │ + bge 15c │ │ │ │ │ mov r1, r6 │ │ │ │ │ add r0, sl, r4 │ │ │ │ │ bl 0 <__aeabi_idivmod> │ │ │ │ │ R_ARM_CALL __aeabi_idivmod │ │ │ │ │ cmp r7, r1 │ │ │ │ │ mov r0, r1 │ │ │ │ │ - ble 108 │ │ │ │ │ + ble 124 │ │ │ │ │ add r3, r8, #1 │ │ │ │ │ mov r1, r6 │ │ │ │ │ add r0, r0, r4 │ │ │ │ │ str r3, [sp, #4] │ │ │ │ │ bl 0 <__aeabi_idivmod> │ │ │ │ │ R_ARM_CALL __aeabi_idivmod │ │ │ │ │ ldr r3, [sp, #4] │ │ │ │ │ str r1, [r9, r8, lsl #2] │ │ │ │ │ mov r8, r3 │ │ │ │ │ mov r1, r6 │ │ │ │ │ sub r0, fp, r4 │ │ │ │ │ bl 0 <__aeabi_idivmod> │ │ │ │ │ R_ARM_CALL __aeabi_idivmod │ │ │ │ │ cmp r7, r1 │ │ │ │ │ - ble 140 │ │ │ │ │ - sub r0, r4, r1 │ │ │ │ │ + ble 15c │ │ │ │ │ add r3, r8, #1 │ │ │ │ │ - mov r1, r6 │ │ │ │ │ + sub r0, r4, r1 │ │ │ │ │ add r0, r0, r6 │ │ │ │ │ + mov r1, r6 │ │ │ │ │ str r3, [sp, #4] │ │ │ │ │ bl 0 <__aeabi_idivmod> │ │ │ │ │ R_ARM_CALL __aeabi_idivmod │ │ │ │ │ ldr r3, [sp, #4] │ │ │ │ │ str r1, [r9, r8, lsl #2] │ │ │ │ │ mov r8, r3 │ │ │ │ │ add r4, r4, #1 │ │ │ │ │ cmp r4, r6 │ │ │ │ │ - bne ac │ │ │ │ │ + bne c8 │ │ │ │ │ add sp, sp, #12 │ │ │ │ │ - pop {r4, r5, r6, r7, r8, r9, sl, fp, pc} │ │ │ │ │ + ldrd r4, [sp] │ │ │ │ │ + ldrd r6, [sp, #8] │ │ │ │ │ + ldrd r8, [sp, #16] │ │ │ │ │ + ldrd sl, [sp, #24] │ │ │ │ │ + add sp, sp, #32 │ │ │ │ │ + pop {pc} @ (ldr pc, [sp], #4) │ │ │ │ │ cmp r2, #0 │ │ │ │ │ - ble 14c │ │ │ │ │ + ble 168 │ │ │ │ │ cmp r2, r1 │ │ │ │ │ - bgt 1a4 │ │ │ │ │ + bgt 1d4 │ │ │ │ │ mov r2, #0 │ │ │ │ │ mov r3, r2 │ │ │ │ │ cmp r5, r3 │ │ │ │ │ - beq 188 │ │ │ │ │ + beq 1b8 │ │ │ │ │ add r3, r3, #1 │ │ │ │ │ cmp r3, r7 │ │ │ │ │ - beq 14c │ │ │ │ │ + beq 168 │ │ │ │ │ cmp r5, r3 │ │ │ │ │ - bne 174 │ │ │ │ │ + bne 1a4 │ │ │ │ │ add r3, r5, #1 │ │ │ │ │ - cmp r7, r3 │ │ │ │ │ add r1, r2, #1 │ │ │ │ │ str r5, [r9, r2, lsl #2] │ │ │ │ │ - beq 14c │ │ │ │ │ + cmp r7, r3 │ │ │ │ │ + beq 168 │ │ │ │ │ mov r2, r1 │ │ │ │ │ - b 16c │ │ │ │ │ + b 19c │ │ │ │ │ add r8, r2, #1 │ │ │ │ │ mov r6, #0 │ │ │ │ │ + asr r8, r8, #1 │ │ │ │ │ mov r4, r6 │ │ │ │ │ sub sl, r2, r1 │ │ │ │ │ - asr r8, r8, #1 │ │ │ │ │ add fp, r1, r2 │ │ │ │ │ - b 23c │ │ │ │ │ + b 26c │ │ │ │ │ mov r1, r7 │ │ │ │ │ add r0, sl, r4 │ │ │ │ │ bl 0 <__aeabi_idivmod> │ │ │ │ │ R_ARM_CALL __aeabi_idivmod │ │ │ │ │ cmp r8, r1 │ │ │ │ │ mov r0, r1 │ │ │ │ │ - ble 1f8 │ │ │ │ │ + ble 228 │ │ │ │ │ add r3, r6, #1 │ │ │ │ │ mov r1, r7 │ │ │ │ │ add r0, r0, r4 │ │ │ │ │ str r3, [sp, #4] │ │ │ │ │ bl 0 <__aeabi_idivmod> │ │ │ │ │ R_ARM_CALL __aeabi_idivmod │ │ │ │ │ ldr r3, [sp, #4] │ │ │ │ │ str r1, [r9, r6, lsl #2] │ │ │ │ │ mov r6, r3 │ │ │ │ │ mov r1, r7 │ │ │ │ │ sub r0, fp, r4 │ │ │ │ │ bl 0 <__aeabi_idivmod> │ │ │ │ │ R_ARM_CALL __aeabi_idivmod │ │ │ │ │ cmp r1, r8 │ │ │ │ │ - bge 230 │ │ │ │ │ - sub r0, r4, r1 │ │ │ │ │ + bge 260 │ │ │ │ │ add r3, r6, #1 │ │ │ │ │ - mov r1, r7 │ │ │ │ │ + sub r0, r4, r1 │ │ │ │ │ add r0, r0, r7 │ │ │ │ │ + mov r1, r7 │ │ │ │ │ str r3, [sp, #4] │ │ │ │ │ bl 0 <__aeabi_idivmod> │ │ │ │ │ R_ARM_CALL __aeabi_idivmod │ │ │ │ │ ldr r3, [sp, #4] │ │ │ │ │ str r1, [r9, r6, lsl #2] │ │ │ │ │ mov r6, r3 │ │ │ │ │ add r4, r4, #1 │ │ │ │ │ cmp r7, r4 │ │ │ │ │ - beq 14c │ │ │ │ │ + beq 168 │ │ │ │ │ cmp r5, r4 │ │ │ │ │ - bne 1c0 │ │ │ │ │ + bne 1f0 │ │ │ │ │ str r5, [r9, r6, lsl #2] │ │ │ │ │ add r6, r6, #1 │ │ │ │ │ - b 230 │ │ │ │ │ + b 260 │ │ │ │ │ │ │ │ │ │ -00000250 : │ │ │ │ │ +00000280 : │ │ │ │ │ transpose_chunks(): │ │ │ │ │ - push {r4, r5, r6, r7, r8, r9, sl, fp, lr} │ │ │ │ │ + strd r4, [sp, #-36]! @ 0xffffffdc │ │ │ │ │ subs r4, r0, #0 │ │ │ │ │ + strd r6, [sp, #8] │ │ │ │ │ + strd r8, [sp, #16] │ │ │ │ │ + strd sl, [sp, #24] │ │ │ │ │ + str lr, [sp, #32] │ │ │ │ │ sub sp, sp, #84 @ 0x54 │ │ │ │ │ - ldr r7, [sp, #124] @ 0x7c │ │ │ │ │ - ldr fp, [sp, #128] @ 0x80 │ │ │ │ │ - beq 394 │ │ │ │ │ - mov sl, r2 │ │ │ │ │ + ldr sl, [sp, #128] @ 0x80 │ │ │ │ │ + beq 3d8 │ │ │ │ │ + mov fp, r2 │ │ │ │ │ mov r9, r3 │ │ │ │ │ - ldr r2, [sp, #140] @ 0x8c │ │ │ │ │ ldr r3, [sp, #136] @ 0x88 │ │ │ │ │ - mov r8, r1 │ │ │ │ │ + mov r7, r1 │ │ │ │ │ + ldr r2, [sp, #140] @ 0x8c │ │ │ │ │ cmp r3, r2 │ │ │ │ │ - beq 39c │ │ │ │ │ + beq 3f4 │ │ │ │ │ cmp r1, #0 │ │ │ │ │ - ble 394 │ │ │ │ │ - mul r3, sl, r1 │ │ │ │ │ - mov r8, sl │ │ │ │ │ + ble 3d8 │ │ │ │ │ + mul r3, fp, r1 │ │ │ │ │ + ldr r7, [sp, #140] @ 0x8c │ │ │ │ │ + sub r4, r4, #4 │ │ │ │ │ + lsl r8, fp, #2 │ │ │ │ │ + mov r5, #0 │ │ │ │ │ + ldr r6, [pc, #552] @ 50c │ │ │ │ │ str r3, [sp, #32] │ │ │ │ │ - add r3, fp, sl, lsl #2 │ │ │ │ │ + add r3, sl, r8 │ │ │ │ │ + str r9, [sp, #40] @ 0x28 │ │ │ │ │ str r3, [sp, #44] @ 0x2c │ │ │ │ │ ldr r3, [sp, #120] @ 0x78 │ │ │ │ │ - str r9, [sp, #40] @ 0x28 │ │ │ │ │ - add r3, r3, sl, lsl #2 │ │ │ │ │ + add r3, r3, r8 │ │ │ │ │ + add r8, r9, r8 │ │ │ │ │ + mov r9, r1 │ │ │ │ │ str r3, [sp, #48] @ 0x30 │ │ │ │ │ - add r3, r9, sl, lsl #2 │ │ │ │ │ - str r3, [sp, #52] @ 0x34 │ │ │ │ │ add r3, sp, #60 @ 0x3c │ │ │ │ │ - ldr r6, [pc, #500] @ 4b8 │ │ │ │ │ - ldr sl, [sp, #140] @ 0x8c │ │ │ │ │ - sub r4, r4, #4 │ │ │ │ │ - mov r5, #0 │ │ │ │ │ - mov r9, r1 │ │ │ │ │ str r3, [sp, #36] @ 0x24 │ │ │ │ │ - b 350 │ │ │ │ │ + str r8, [sp, #52] @ 0x34 │ │ │ │ │ + mov r8, fp │ │ │ │ │ + ldr fp, [sp, #124] @ 0x7c │ │ │ │ │ + b 394 │ │ │ │ │ ldr r2, [sp, #40] @ 0x28 │ │ │ │ │ + add r5, r5, #1 │ │ │ │ │ ldr ip, [sp, #136] @ 0x88 │ │ │ │ │ ldr r1, [r2, r3, lsl #2] │ │ │ │ │ ldr r2, [sp, #120] @ 0x78 │ │ │ │ │ - add r5, r5, #1 │ │ │ │ │ ldr r0, [r2, r3, lsl #2] │ │ │ │ │ + str r3, [sp, #16] │ │ │ │ │ ldr r2, [sp, #36] @ 0x24 │ │ │ │ │ + add r0, ip, r0, lsl #2 │ │ │ │ │ str r2, [sp, #28] │ │ │ │ │ ldr r2, [sp, #132] @ 0x84 │ │ │ │ │ str r2, [sp, #24] │ │ │ │ │ mla r2, r3, r9, r8 │ │ │ │ │ - str r3, [sp, #16] │ │ │ │ │ and r2, r2, r6 │ │ │ │ │ str r2, [sp, #20] │ │ │ │ │ - ldr r2, [pc, #420] @ 4bc │ │ │ │ │ + ldr r2, [pc, #432] @ 510 │ │ │ │ │ str r2, [sp, #12] │ │ │ │ │ - ldr r2, [r7, r3, lsl #2] │ │ │ │ │ - str r2, [sp, #8] │ │ │ │ │ ldr r2, [fp, r3, lsl #2] │ │ │ │ │ - add r0, ip, r0, lsl #2 │ │ │ │ │ - add r2, sl, r2, lsl #2 │ │ │ │ │ + str r2, [sp, #8] │ │ │ │ │ + ldr r2, [sl, r3, lsl #2] │ │ │ │ │ + add r2, r7, r2, lsl #2 │ │ │ │ │ str r2, [sp, #4] │ │ │ │ │ ldr r2, [sp, #32] │ │ │ │ │ add r2, r2, r3 │ │ │ │ │ and r2, r2, r6 │ │ │ │ │ str r2, [sp] │ │ │ │ │ - ldr r2, [pc, #372] @ 4bc │ │ │ │ │ + ldr r2, [pc, #388] @ 510 │ │ │ │ │ bl 0 │ │ │ │ │ R_ARM_CALL MPI_Sendrecv │ │ │ │ │ cmp r9, r5 │ │ │ │ │ - beq 394 │ │ │ │ │ + beq 3d8 │ │ │ │ │ ldr r3, [r4, #4]! │ │ │ │ │ cmp r3, r8 │ │ │ │ │ - bne 2d8 │ │ │ │ │ + bne 31c │ │ │ │ │ ldr r3, [sp, #44] @ 0x2c │ │ │ │ │ add r5, r5, #1 │ │ │ │ │ ldr r0, [r3] │ │ │ │ │ ldr r3, [sp, #52] @ 0x34 │ │ │ │ │ - add r0, sl, r0, lsl #2 │ │ │ │ │ + add r0, r7, r0, lsl #2 │ │ │ │ │ ldr r2, [r3] │ │ │ │ │ ldr r3, [sp, #48] @ 0x30 │ │ │ │ │ lsl r2, r2, #2 │ │ │ │ │ ldr r1, [r3] │ │ │ │ │ ldr r3, [sp, #136] @ 0x88 │ │ │ │ │ add r1, r3, r1, lsl #2 │ │ │ │ │ bl 0 │ │ │ │ │ R_ARM_CALL memcpy │ │ │ │ │ cmp r9, r5 │ │ │ │ │ - bne 350 │ │ │ │ │ + bne 394 │ │ │ │ │ add sp, sp, #84 @ 0x54 │ │ │ │ │ - pop {r4, r5, r6, r7, r8, r9, sl, fp, pc} │ │ │ │ │ + ldrd r4, [sp] │ │ │ │ │ + ldrd r6, [sp, #8] │ │ │ │ │ + ldrd r8, [sp, #16] │ │ │ │ │ + ldrd sl, [sp, #24] │ │ │ │ │ + add sp, sp, #32 │ │ │ │ │ + pop {pc} @ (ldr pc, [sp], #4) │ │ │ │ │ ldr r0, [r9] │ │ │ │ │ lsl r0, r0, #2 │ │ │ │ │ bl 0 │ │ │ │ │ R_ARM_CALL fftwf_malloc_plain │ │ │ │ │ - cmp r8, #0 │ │ │ │ │ + cmp r7, #0 │ │ │ │ │ mov ip, r0 │ │ │ │ │ - ble 4a8 │ │ │ │ │ - mul r3, r8, sl │ │ │ │ │ + ble 500 │ │ │ │ │ + mul r3, r7, fp │ │ │ │ │ ldr r6, [sp, #140] @ 0x8c │ │ │ │ │ - str r3, [sp, #40] @ 0x28 │ │ │ │ │ - add r3, sp, #60 @ 0x3c │ │ │ │ │ sub r4, r4, #4 │ │ │ │ │ mov r5, #0 │ │ │ │ │ - str r3, [sp, #44] @ 0x2c │ │ │ │ │ str r0, [sp, #32] │ │ │ │ │ - b 404 │ │ │ │ │ - ldr r0, [fp, r3, lsl #2] │ │ │ │ │ + ldr r8, [pc, #228] @ 50c │ │ │ │ │ + str r3, [sp, #40] @ 0x28 │ │ │ │ │ + add r3, sp, #60 @ 0x3c │ │ │ │ │ + str r3, [sp, #44] @ 0x2c │ │ │ │ │ + b 460 │ │ │ │ │ + ldr r0, [sl, r3, lsl #2] │ │ │ │ │ cmp r0, r1 │ │ │ │ │ - beq 3f8 │ │ │ │ │ + beq 454 │ │ │ │ │ ldr r2, [r9, r3, lsl #2] │ │ │ │ │ add r1, r6, r1, lsl #2 │ │ │ │ │ - lsl r2, r2, #2 │ │ │ │ │ add r0, r6, r0, lsl #2 │ │ │ │ │ + lsl r2, r2, #2 │ │ │ │ │ bl 0 │ │ │ │ │ R_ARM_CALL memmove │ │ │ │ │ add r5, r5, #1 │ │ │ │ │ - cmp r8, r5 │ │ │ │ │ - beq 4a4 │ │ │ │ │ + cmp r7, r5 │ │ │ │ │ + beq 4fc │ │ │ │ │ ldr r3, [r4, #4]! │ │ │ │ │ ldr r2, [sp, #120] @ 0x78 │ │ │ │ │ - cmp sl, r3 │ │ │ │ │ + cmp fp, r3 │ │ │ │ │ ldr r1, [r2, r3, lsl #2] │ │ │ │ │ - beq 3d8 │ │ │ │ │ - ldr r2, [r9, r3, lsl #2] │ │ │ │ │ + beq 434 │ │ │ │ │ add r1, r6, r1, lsl #2 │ │ │ │ │ - lsl r2, r2, #2 │ │ │ │ │ - ldr r0, [sp, #32] │ │ │ │ │ str r3, [sp, #36] @ 0x24 │ │ │ │ │ + add r5, r5, #1 │ │ │ │ │ + ldr r2, [r9, r3, lsl #2] │ │ │ │ │ + ldr r0, [sp, #32] │ │ │ │ │ + lsl r2, r2, #2 │ │ │ │ │ bl 0 │ │ │ │ │ R_ARM_CALL memcpy │ │ │ │ │ + ldr r0, [sp, #32] │ │ │ │ │ ldr r3, [sp, #36] @ 0x24 │ │ │ │ │ ldr r2, [sp, #44] @ 0x2c │ │ │ │ │ ldr r1, [r9, r3, lsl #2] │ │ │ │ │ + str r3, [sp, #16] │ │ │ │ │ str r2, [sp, #28] │ │ │ │ │ ldr r2, [sp, #132] @ 0x84 │ │ │ │ │ str r2, [sp, #24] │ │ │ │ │ - mla r2, r3, r8, sl │ │ │ │ │ - str r3, [sp, #16] │ │ │ │ │ - lsl r2, r2, #17 │ │ │ │ │ - lsr r2, r2, #17 │ │ │ │ │ + mla r2, r3, r7, fp │ │ │ │ │ + and r2, r2, r8 │ │ │ │ │ str r2, [sp, #20] │ │ │ │ │ - ldr r2, [pc, #88] @ 4bc │ │ │ │ │ + ldr r2, [pc, #76] @ 510 │ │ │ │ │ str r2, [sp, #12] │ │ │ │ │ - ldr r2, [r7, r3, lsl #2] │ │ │ │ │ + ldr r2, [sp, #124] @ 0x7c │ │ │ │ │ + ldr r2, [r2, r3, lsl #2] │ │ │ │ │ str r2, [sp, #8] │ │ │ │ │ - ldr r2, [fp, r3, lsl #2] │ │ │ │ │ - ldr r0, [sp, #32] │ │ │ │ │ + ldr r2, [sl, r3, lsl #2] │ │ │ │ │ add r2, r6, r2, lsl #2 │ │ │ │ │ str r2, [sp, #4] │ │ │ │ │ ldr r2, [sp, #40] @ 0x28 │ │ │ │ │ - add r5, r5, #1 │ │ │ │ │ add r2, r2, r3 │ │ │ │ │ - lsl r2, r2, #17 │ │ │ │ │ - lsr r2, r2, #17 │ │ │ │ │ + and r2, r2, r8 │ │ │ │ │ str r2, [sp] │ │ │ │ │ - ldr r2, [pc, #32] @ 4bc │ │ │ │ │ + ldr r2, [pc, #28] @ 510 │ │ │ │ │ bl 0 │ │ │ │ │ R_ARM_CALL MPI_Sendrecv │ │ │ │ │ - cmp r8, r5 │ │ │ │ │ - bne 404 │ │ │ │ │ + cmp r7, r5 │ │ │ │ │ + bne 460 │ │ │ │ │ ldr ip, [sp, #32] │ │ │ │ │ mov r0, ip │ │ │ │ │ bl 0 │ │ │ │ │ R_ARM_CALL fftwf_ifree │ │ │ │ │ - add sp, sp, #84 @ 0x54 │ │ │ │ │ - pop {r4, r5, r6, r7, r8, r9, sl, fp, pc} │ │ │ │ │ + b 3d8 │ │ │ │ │ .word 0x00007fff │ │ │ │ │ .word 0x4c00040a │ │ │ │ │ │ │ │ │ │ -000004c0 : │ │ │ │ │ +00000514 : │ │ │ │ │ apply(): │ │ │ │ │ - push {r4, r5, r6, r7, r8, r9, lr} │ │ │ │ │ + strd r4, [sp, #-28]! @ 0xffffffe4 │ │ │ │ │ mov r4, r0 │ │ │ │ │ + mov r5, r1 │ │ │ │ │ ldr r0, [r0, #64] @ 0x40 │ │ │ │ │ + strd r6, [sp, #8] │ │ │ │ │ + mov r6, r2 │ │ │ │ │ + strd r8, [sp, #16] │ │ │ │ │ + str lr, [sp, #24] │ │ │ │ │ sub sp, sp, #28 │ │ │ │ │ cmp r0, #0 │ │ │ │ │ - mov r5, r1 │ │ │ │ │ - mov r6, r2 │ │ │ │ │ - beq 594 │ │ │ │ │ + beq 614 │ │ │ │ │ ldr r3, [r0, #56] @ 0x38 │ │ │ │ │ blx r3 │ │ │ │ │ ldr r3, [r4, #120] @ 0x78 │ │ │ │ │ str r6, [sp, #16] │ │ │ │ │ cmp r3, #0 │ │ │ │ │ movne r5, r6 │ │ │ │ │ str r5, [sp, #20] │ │ │ │ │ @@ -355,74 +379,83 @@ │ │ │ │ │ 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] │ │ │ │ │ - ldr r3, [r4, #100] @ 0x64 │ │ │ │ │ - ldr r2, [r4, #92] @ 0x5c │ │ │ │ │ ldr r1, [r4, #88] @ 0x58 │ │ │ │ │ + ldr r2, [r4, #92] @ 0x5c │ │ │ │ │ ldr r0, [r4, #96] @ 0x60 │ │ │ │ │ - bl 250 │ │ │ │ │ + ldr r3, [r4, #100] @ 0x64 │ │ │ │ │ + bl 280 │ │ │ │ │ ldr r0, [r4, #68] @ 0x44 │ │ │ │ │ mov r2, r6 │ │ │ │ │ - ldr r3, [r0, #56] @ 0x38 │ │ │ │ │ mov r1, r5 │ │ │ │ │ + ldr r3, [r0, #56] @ 0x38 │ │ │ │ │ blx r3 │ │ │ │ │ ldr r0, [r4, #72] @ 0x48 │ │ │ │ │ cmp r0, #0 │ │ │ │ │ - beq 58c │ │ │ │ │ - ldr r2, [r4, #84] @ 0x54 │ │ │ │ │ + beq 5fc │ │ │ │ │ ldr r1, [r4, #80] @ 0x50 │ │ │ │ │ + ldr r2, [r4, #84] @ 0x54 │ │ │ │ │ ldr r3, [r0, #56] @ 0x38 │ │ │ │ │ - add r2, r6, r2, lsl #2 │ │ │ │ │ add r1, r5, r1, lsl #2 │ │ │ │ │ + add r2, r6, r2, lsl #2 │ │ │ │ │ blx r3 │ │ │ │ │ ldr r0, [r4, #76] @ 0x4c │ │ │ │ │ cmp r0, #0 │ │ │ │ │ - beq 58c │ │ │ │ │ + beq 5fc │ │ │ │ │ + ldr r3, [r0, #56] @ 0x38 │ │ │ │ │ mov r2, r6 │ │ │ │ │ mov r1, r6 │ │ │ │ │ - ldr r3, [r0, #56] @ 0x38 │ │ │ │ │ add sp, sp, #28 │ │ │ │ │ - pop {r4, r5, r6, r7, r8, r9, lr} │ │ │ │ │ + ldrd r4, [sp] │ │ │ │ │ + ldrd r6, [sp, #8] │ │ │ │ │ + ldrd r8, [sp, #16] │ │ │ │ │ + ldr lr, [sp, #24] │ │ │ │ │ + add sp, sp, #28 │ │ │ │ │ bx r3 │ │ │ │ │ add sp, sp, #28 │ │ │ │ │ - pop {r4, r5, r6, r7, r8, r9, pc} │ │ │ │ │ + ldrd r4, [sp] │ │ │ │ │ + ldrd r6, [sp, #8] │ │ │ │ │ + ldrd r8, [sp, #16] │ │ │ │ │ + add sp, sp, #24 │ │ │ │ │ + pop {pc} @ (ldr pc, [sp], #4) │ │ │ │ │ add r7, r4, #112 @ 0x70 │ │ │ │ │ - ldm r7, {r7, r8, r9} │ │ │ │ │ add r3, r4, #100 @ 0x64 │ │ │ │ │ - cmp r9, #0 │ │ │ │ │ - ldm r3, {r3, ip, lr} │ │ │ │ │ - ldr r0, [r4, #96] @ 0x60 │ │ │ │ │ ldr r1, [r4, #88] @ 0x58 │ │ │ │ │ + ldm r7, {r7, r8, r9} │ │ │ │ │ + ldm r3, {r3, ip, lr} │ │ │ │ │ + cmp r9, #0 │ │ │ │ │ ldr r2, [r4, #92] @ 0x5c │ │ │ │ │ - beq 5d8 │ │ │ │ │ + ldr r0, [r4, #96] @ 0x60 │ │ │ │ │ + beq 658 │ │ │ │ │ + stm sp, {ip, lr} │ │ │ │ │ + str r7, [sp, #8] │ │ │ │ │ + str r8, [sp, #12] │ │ │ │ │ str r5, [sp, #16] │ │ │ │ │ + mov r5, r6 │ │ │ │ │ str r6, [sp, #20] │ │ │ │ │ - str r8, [sp, #12] │ │ │ │ │ - str r7, [sp, #8] │ │ │ │ │ + bl 280 │ │ │ │ │ + b 590 │ │ │ │ │ stm sp, {ip, lr} │ │ │ │ │ - bl 250 │ │ │ │ │ - mov r5, r6 │ │ │ │ │ - b 530 │ │ │ │ │ - str r5, [sp, #20] │ │ │ │ │ - str r5, [sp, #16] │ │ │ │ │ - str r8, [sp, #12] │ │ │ │ │ str r7, [sp, #8] │ │ │ │ │ - stm sp, {ip, lr} │ │ │ │ │ - bl 250 │ │ │ │ │ - b 530 │ │ │ │ │ + str r8, [sp, #12] │ │ │ │ │ + str r5, [sp, #16] │ │ │ │ │ + str r5, [sp, #20] │ │ │ │ │ + bl 280 │ │ │ │ │ + b 590 │ │ │ │ │ │ │ │ │ │ -000005f4 : │ │ │ │ │ +00000674 : │ │ │ │ │ destroy(): │ │ │ │ │ - push {r4, lr} │ │ │ │ │ + str r4, [sp, #-8]! │ │ │ │ │ mov r4, r0 │ │ │ │ │ ldr r0, [r0, #96] @ 0x60 │ │ │ │ │ + str lr, [sp, #4] │ │ │ │ │ bl 0 │ │ │ │ │ R_ARM_CALL fftwf_ifree0 │ │ │ │ │ ldr r0, [r4, #100] @ 0x64 │ │ │ │ │ bl 0 │ │ │ │ │ R_ARM_CALL fftwf_ifree0 │ │ │ │ │ add r0, r4, #116 @ 0x74 │ │ │ │ │ bl 0 │ │ │ │ │ @@ -432,231 +465,247 @@ │ │ │ │ │ R_ARM_CALL fftwf_plan_destroy_internal │ │ │ │ │ ldr r0, [r4, #72] @ 0x48 │ │ │ │ │ bl 0 │ │ │ │ │ R_ARM_CALL fftwf_plan_destroy_internal │ │ │ │ │ ldr r0, [r4, #68] @ 0x44 │ │ │ │ │ bl 0 │ │ │ │ │ R_ARM_CALL fftwf_plan_destroy_internal │ │ │ │ │ + ldr lr, [sp, #4] │ │ │ │ │ ldr r0, [r4, #64] @ 0x40 │ │ │ │ │ - pop {r4, lr} │ │ │ │ │ + ldr r4, [sp] │ │ │ │ │ + add sp, sp, #8 │ │ │ │ │ b 0 │ │ │ │ │ R_ARM_JUMP24 fftwf_plan_destroy_internal │ │ │ │ │ │ │ │ │ │ -00000638 : │ │ │ │ │ +000006c4 : │ │ │ │ │ awake(): │ │ │ │ │ - push {r4, r5, r6, lr} │ │ │ │ │ + strd r4, [sp, #-16]! │ │ │ │ │ mov r4, r0 │ │ │ │ │ mov r5, r1 │ │ │ │ │ ldr r0, [r0, #64] @ 0x40 │ │ │ │ │ + str r6, [sp, #8] │ │ │ │ │ + str lr, [sp, #12] │ │ │ │ │ bl 0 │ │ │ │ │ R_ARM_CALL fftwf_plan_awake │ │ │ │ │ ldr r0, [r4, #68] @ 0x44 │ │ │ │ │ mov r1, r5 │ │ │ │ │ bl 0 │ │ │ │ │ R_ARM_CALL fftwf_plan_awake │ │ │ │ │ ldr r0, [r4, #72] @ 0x48 │ │ │ │ │ mov r1, r5 │ │ │ │ │ bl 0 │ │ │ │ │ R_ARM_CALL fftwf_plan_awake │ │ │ │ │ - ldr r0, [r4, #76] @ 0x4c │ │ │ │ │ + ldr r6, [sp, #8] │ │ │ │ │ mov r1, r5 │ │ │ │ │ - pop {r4, r5, r6, lr} │ │ │ │ │ + ldr lr, [sp, #12] │ │ │ │ │ + ldr r0, [r4, #76] @ 0x4c │ │ │ │ │ + ldrd r4, [sp] │ │ │ │ │ + add sp, sp, #16 │ │ │ │ │ b 0 │ │ │ │ │ R_ARM_JUMP24 fftwf_plan_awake │ │ │ │ │ │ │ │ │ │ -00000674 : │ │ │ │ │ +00000714 : │ │ │ │ │ fftwf_mpi_mkplans_posttranspose(): │ │ │ │ │ - push {r4, r5, r6, r7, r8, r9, sl, fp, lr} │ │ │ │ │ - sub sp, sp, #52 @ 0x34 │ │ │ │ │ + strd r4, [sp, #-36]! @ 0xffffffdc │ │ │ │ │ + mov r4, r0 │ │ │ │ │ + strd r6, [sp, #8] │ │ │ │ │ + mov r7, r3 │ │ │ │ │ + strd r8, [sp, #16] │ │ │ │ │ + strd sl, [sp, #24] │ │ │ │ │ + mov fp, r2 │ │ │ │ │ ldr r8, [r0, #28] │ │ │ │ │ + str lr, [sp, #32] │ │ │ │ │ + sub sp, sp, #52 @ 0x34 │ │ │ │ │ ldr r5, [r0, #4] │ │ │ │ │ - mov r4, r0 │ │ │ │ │ str r1, [sp, #32] │ │ │ │ │ - mov fp, r2 │ │ │ │ │ ldr r1, [r0, #32] │ │ │ │ │ - ldr r2, [sp, #88] @ 0x58 │ │ │ │ │ ldr r0, [r0, #12] │ │ │ │ │ - mov r7, r3 │ │ │ │ │ + mul sl, r8, r5 │ │ │ │ │ + ldr r2, [sp, #88] @ 0x58 │ │ │ │ │ bl 0 │ │ │ │ │ R_ARM_CALL fftwf_mpi_block │ │ │ │ │ - mov r1, r8 │ │ │ │ │ - mul sl, r8, r5 │ │ │ │ │ mov r6, r0 │ │ │ │ │ ldr r0, [r4, #8] │ │ │ │ │ + mov r1, r8 │ │ │ │ │ bl 0 <__aeabi_idivmod> │ │ │ │ │ R_ARM_CALL __aeabi_idivmod │ │ │ │ │ ldr r2, [sp, #100] @ 0x64 │ │ │ │ │ mov r3, #0 │ │ │ │ │ + str r0, [sp, #36] @ 0x24 │ │ │ │ │ + str r1, [sp, #40] @ 0x28 │ │ │ │ │ str r3, [r2] │ │ │ │ │ ldr r2, [sp, #96] @ 0x60 │ │ │ │ │ str r3, [r2] │ │ │ │ │ ldr r2, [sp, #92] @ 0x5c │ │ │ │ │ str r3, [r2] │ │ │ │ │ ldr r2, [sp, #108] @ 0x6c │ │ │ │ │ str r3, [r2] │ │ │ │ │ ldr r2, [sp, #104] @ 0x68 │ │ │ │ │ str r3, [r2] │ │ │ │ │ ldr r9, [r4, #24] │ │ │ │ │ ands r9, r9, #8 │ │ │ │ │ - str r0, [sp, #36] @ 0x24 │ │ │ │ │ - str r1, [sp, #40] @ 0x28 │ │ │ │ │ - bne 710 │ │ │ │ │ + bne 7c0 │ │ │ │ │ subs r3, fp, r7 │ │ │ │ │ movne r3, #1 │ │ │ │ │ cmp r1, #0 │ │ │ │ │ orreq r3, r3, #1 │ │ │ │ │ cmp r3, #0 │ │ │ │ │ - bne 830 │ │ │ │ │ + bne 8f4 │ │ │ │ │ mul r2, r6, r8 │ │ │ │ │ + mov r9, #1 │ │ │ │ │ + ldr r0, [sp, #36] @ 0x24 │ │ │ │ │ mul r3, r6, r5 │ │ │ │ │ + str sl, [sp] │ │ │ │ │ + mov sl, #8 │ │ │ │ │ + stmib sp, {r5, r8} │ │ │ │ │ mul r2, r5, r2 │ │ │ │ │ - mov r9, #1 │ │ │ │ │ + str r5, [sp, #12] │ │ │ │ │ + str r3, [sp, #16] │ │ │ │ │ + str r5, [sp, #20] │ │ │ │ │ mov r1, r2 │ │ │ │ │ + str r9, [sp, #24] │ │ │ │ │ + str r9, [sp, #28] │ │ │ │ │ str r3, [sp, #44] @ 0x2c │ │ │ │ │ - str r3, [sp, #16] │ │ │ │ │ - str sl, [sp] │ │ │ │ │ mov r3, r6 │ │ │ │ │ - ldr r0, [sp, #36] @ 0x24 │ │ │ │ │ - str r9, [sp, #28] │ │ │ │ │ - str r9, [sp, #24] │ │ │ │ │ - str r5, [sp, #20] │ │ │ │ │ - str r5, [sp, #12] │ │ │ │ │ - stmib sp, {r5, r8} │ │ │ │ │ bl 0 │ │ │ │ │ R_ARM_CALL fftwf_mktensor_4d │ │ │ │ │ mov r2, r7 │ │ │ │ │ mov r1, fp │ │ │ │ │ bl 0 │ │ │ │ │ R_ARM_CALL fftwf_mkproblem_rdft_0_d │ │ │ │ │ - mov sl, #8 │ │ │ │ │ mov r3, #0 │ │ │ │ │ - mov r2, r3 │ │ │ │ │ - str sl, [sp] │ │ │ │ │ mov r1, r0 │ │ │ │ │ ldr r0, [sp, #32] │ │ │ │ │ + mov r2, r3 │ │ │ │ │ + str sl, [sp] │ │ │ │ │ bl 0 │ │ │ │ │ R_ARM_CALL fftwf_mkplan_f_d │ │ │ │ │ ldr r3, [sp, #92] @ 0x5c │ │ │ │ │ cmp r0, #0 │ │ │ │ │ str r0, [r3] │ │ │ │ │ - beq 92c │ │ │ │ │ + beq 9f0 │ │ │ │ │ ldr r3, [sp, #36] @ 0x24 │ │ │ │ │ + mov r0, r6 │ │ │ │ │ ldr r2, [sp, #108] @ 0x6c │ │ │ │ │ mul r3, r6, r3 │ │ │ │ │ - mov r0, r6 │ │ │ │ │ mul r3, r8, r3 │ │ │ │ │ mul r3, r5, r3 │ │ │ │ │ str r3, [r2] │ │ │ │ │ ldr r2, [sp, #104] @ 0x68 │ │ │ │ │ str r3, [r2] │ │ │ │ │ + mov r2, r5 │ │ │ │ │ ldr r3, [sp, #44] @ 0x2c │ │ │ │ │ + str r5, [sp] │ │ │ │ │ str r3, [sp, #4] │ │ │ │ │ ldr r3, [sp, #40] @ 0x28 │ │ │ │ │ - mov r2, r5 │ │ │ │ │ - mul r1, r3, r5 │ │ │ │ │ - str r9, [sp, #16] │ │ │ │ │ - str r9, [sp, #12] │ │ │ │ │ str r5, [sp, #8] │ │ │ │ │ - str r5, [sp] │ │ │ │ │ + str r9, [sp, #12] │ │ │ │ │ + str r9, [sp, #16] │ │ │ │ │ + mul r1, r3, r5 │ │ │ │ │ bl 0 │ │ │ │ │ R_ARM_CALL fftwf_mktensor_3d │ │ │ │ │ ldr r3, [sp, #108] @ 0x6c │ │ │ │ │ ldr r2, [r3] │ │ │ │ │ ldr r3, [sp, #104] @ 0x68 │ │ │ │ │ add r2, r7, r2, lsl #2 │ │ │ │ │ ldr r1, [r3] │ │ │ │ │ add r1, fp, r1, lsl #2 │ │ │ │ │ bl 0 │ │ │ │ │ R_ARM_CALL fftwf_mkproblem_rdft_0_d │ │ │ │ │ mov r3, #0 │ │ │ │ │ - mov r2, r3 │ │ │ │ │ - str sl, [sp] │ │ │ │ │ mov r1, r0 │ │ │ │ │ ldr r0, [sp, #32] │ │ │ │ │ + mov r2, r3 │ │ │ │ │ + str sl, [sp] │ │ │ │ │ bl 0 │ │ │ │ │ R_ARM_CALL fftwf_mkplan_f_d │ │ │ │ │ ldr r3, [sp, #96] @ 0x60 │ │ │ │ │ cmp r0, #0 │ │ │ │ │ str r0, [r3] │ │ │ │ │ - beq 92c │ │ │ │ │ + beq 9f0 │ │ │ │ │ ldr r8, [r4, #24] │ │ │ │ │ ands r8, r8, #8 │ │ │ │ │ - beq 974 │ │ │ │ │ + beq a34 │ │ │ │ │ mov r0, #1 │ │ │ │ │ add sp, sp, #52 @ 0x34 │ │ │ │ │ - pop {r4, r5, r6, r7, r8, r9, sl, fp, pc} │ │ │ │ │ + ldrd r4, [sp] │ │ │ │ │ + ldrd r6, [sp, #8] │ │ │ │ │ + ldrd r8, [sp, #16] │ │ │ │ │ + ldrd sl, [sp, #24] │ │ │ │ │ + add sp, sp, #32 │ │ │ │ │ + pop {pc} @ (ldr pc, [sp], #4) │ │ │ │ │ ldr r3, [r4, #8] │ │ │ │ │ mov r8, #1 │ │ │ │ │ - mul r2, r3, r5 │ │ │ │ │ mul r1, sl, r6 │ │ │ │ │ + str sl, [sp] │ │ │ │ │ + mov r4, #8 │ │ │ │ │ + str r8, [sp, #12] │ │ │ │ │ + str r8, [sp, #16] │ │ │ │ │ + mul r2, r3, r5 │ │ │ │ │ mov r3, r6 │ │ │ │ │ - str r2, [sp, #44] @ 0x2c │ │ │ │ │ stmib sp, {r2, sl} │ │ │ │ │ - str r8, [sp, #16] │ │ │ │ │ + str r2, [sp, #44] @ 0x2c │ │ │ │ │ mov r2, sl │ │ │ │ │ - str r8, [sp, #12] │ │ │ │ │ - str sl, [sp] │ │ │ │ │ bl 0 │ │ │ │ │ R_ARM_CALL fftwf_mktensor_3d │ │ │ │ │ mov r2, r7 │ │ │ │ │ mov r1, fp │ │ │ │ │ bl 0 │ │ │ │ │ R_ARM_CALL fftwf_mkproblem_rdft_0_d │ │ │ │ │ - mov r4, #8 │ │ │ │ │ + mov r1, r0 │ │ │ │ │ + ldr r0, [sp, #32] │ │ │ │ │ mov r3, r9 │ │ │ │ │ mov r2, r9 │ │ │ │ │ str r4, [sp] │ │ │ │ │ - mov r1, r0 │ │ │ │ │ - ldr r0, [sp, #32] │ │ │ │ │ bl 0 │ │ │ │ │ R_ARM_CALL fftwf_mkplan_f_d │ │ │ │ │ ldr r3, [sp, #92] @ 0x5c │ │ │ │ │ cmp r0, #0 │ │ │ │ │ str r0, [r3] │ │ │ │ │ - beq 92c │ │ │ │ │ + beq 9f0 │ │ │ │ │ ldr r3, [sp, #40] @ 0x28 │ │ │ │ │ cmp r3, #0 │ │ │ │ │ - ble 824 │ │ │ │ │ + ble 8d4 │ │ │ │ │ ldr r2, [sp, #36] @ 0x24 │ │ │ │ │ + mov r0, r6 │ │ │ │ │ ldr r1, [sp, #104] @ 0x68 │ │ │ │ │ mov r3, r2 │ │ │ │ │ - mul r3, r6, r3 │ │ │ │ │ mul r2, sl, r2 │ │ │ │ │ + mul r3, r6, r3 │ │ │ │ │ mul r3, sl, r3 │ │ │ │ │ - mov r0, r6 │ │ │ │ │ str r3, [r1] │ │ │ │ │ ldr r3, [sp, #108] @ 0x6c │ │ │ │ │ str r2, [r3] │ │ │ │ │ ldr r3, [sp, #40] @ 0x28 │ │ │ │ │ + str r8, [sp] │ │ │ │ │ ldr r2, [sp, #44] @ 0x2c │ │ │ │ │ - mul r3, r5, r3 │ │ │ │ │ str r8, [sp, #4] │ │ │ │ │ + mul r3, r5, r3 │ │ │ │ │ mov r1, r3 │ │ │ │ │ - str r8, [sp] │ │ │ │ │ bl 0 │ │ │ │ │ R_ARM_CALL fftwf_mktensor_2d │ │ │ │ │ ldr r3, [sp, #108] @ 0x6c │ │ │ │ │ ldr r2, [r3] │ │ │ │ │ ldr r3, [sp, #104] @ 0x68 │ │ │ │ │ add r2, r7, r2, lsl #2 │ │ │ │ │ ldr r1, [r3] │ │ │ │ │ add r1, fp, r1, lsl #2 │ │ │ │ │ bl 0 │ │ │ │ │ R_ARM_CALL fftwf_mkproblem_rdft_0_d │ │ │ │ │ + mov r1, r0 │ │ │ │ │ + ldr r0, [sp, #32] │ │ │ │ │ mov r3, r9 │ │ │ │ │ mov r2, r9 │ │ │ │ │ str r4, [sp] │ │ │ │ │ - mov r1, r0 │ │ │ │ │ - ldr r0, [sp, #32] │ │ │ │ │ bl 0 │ │ │ │ │ R_ARM_CALL fftwf_mkplan_f_d │ │ │ │ │ ldr r3, [sp, #96] @ 0x60 │ │ │ │ │ cmp r0, #0 │ │ │ │ │ str r0, [r3] │ │ │ │ │ - bne 824 │ │ │ │ │ + bne 8d4 │ │ │ │ │ ldr r3, [sp, #100] @ 0x64 │ │ │ │ │ ldr r0, [r3] │ │ │ │ │ bl 0 │ │ │ │ │ R_ARM_CALL fftwf_plan_destroy_internal │ │ │ │ │ ldr r3, [sp, #96] @ 0x60 │ │ │ │ │ ldr r0, [r3] │ │ │ │ │ bl 0 │ │ │ │ │ @@ -668,484 +717,495 @@ │ │ │ │ │ ldr r3, [sp, #100] @ 0x64 │ │ │ │ │ mov r0, #0 │ │ │ │ │ str r0, [r3] │ │ │ │ │ ldr r3, [sp, #96] @ 0x60 │ │ │ │ │ str r0, [r3] │ │ │ │ │ ldr r3, [sp, #92] @ 0x5c │ │ │ │ │ str r0, [r3] │ │ │ │ │ - add sp, sp, #52 @ 0x34 │ │ │ │ │ - pop {r4, r5, r6, r7, r8, r9, sl, fp, pc} │ │ │ │ │ + b 8d8 │ │ │ │ │ ldr r0, [r4, #8] │ │ │ │ │ + mov r2, r5 │ │ │ │ │ + str r5, [sp] │ │ │ │ │ ldr r1, [sp, #44] @ 0x2c │ │ │ │ │ + str r5, [sp, #8] │ │ │ │ │ + str r9, [sp, #12] │ │ │ │ │ mul r3, r5, r0 │ │ │ │ │ - mov r2, r5 │ │ │ │ │ str r3, [sp, #4] │ │ │ │ │ - str r9, [sp, #16] │ │ │ │ │ mov r3, r6 │ │ │ │ │ - str r9, [sp, #12] │ │ │ │ │ - str r5, [sp, #8] │ │ │ │ │ - str r5, [sp] │ │ │ │ │ + str r9, [sp, #16] │ │ │ │ │ bl 0 │ │ │ │ │ R_ARM_CALL fftwf_mktensor_3d │ │ │ │ │ mov r2, r7 │ │ │ │ │ mov r1, r7 │ │ │ │ │ bl 0 │ │ │ │ │ R_ARM_CALL fftwf_mkproblem_rdft_0_d │ │ │ │ │ + mov r1, r0 │ │ │ │ │ + ldr r0, [sp, #32] │ │ │ │ │ mov r3, r8 │ │ │ │ │ mov r2, r8 │ │ │ │ │ str sl, [sp] │ │ │ │ │ - mov r1, r0 │ │ │ │ │ - ldr r0, [sp, #32] │ │ │ │ │ bl 0 │ │ │ │ │ R_ARM_CALL fftwf_mkplan_f_d │ │ │ │ │ ldr r3, [sp, #100] @ 0x64 │ │ │ │ │ cmp r0, #0 │ │ │ │ │ str r0, [r3] │ │ │ │ │ - bne 824 │ │ │ │ │ - b 934 │ │ │ │ │ + bne 8d4 │ │ │ │ │ + b 9f8 │ │ │ │ │ │ │ │ │ │ -000009d8 : │ │ │ │ │ +00000a98 : │ │ │ │ │ mkplan(): │ │ │ │ │ - push {r4, r5, r6, r7, r8, r9, sl, fp, lr} │ │ │ │ │ mov r3, #0 │ │ │ │ │ + strd r4, [sp, #-36]! @ 0xffffffdc │ │ │ │ │ + mov r4, r1 │ │ │ │ │ + strd r6, [sp, #8] │ │ │ │ │ + strd r8, [sp, #16] │ │ │ │ │ + mov r8, r0 │ │ │ │ │ + mov r9, r2 │ │ │ │ │ + strd sl, [sp, #24] │ │ │ │ │ + str lr, [sp, #32] │ │ │ │ │ sub sp, sp, #116 @ 0x74 │ │ │ │ │ str r3, [sp, #84] @ 0x54 │ │ │ │ │ str r3, [sp, #88] @ 0x58 │ │ │ │ │ str r3, [sp, #92] @ 0x5c │ │ │ │ │ ldr r3, [r0, #8] │ │ │ │ │ - mov r5, r0 │ │ │ │ │ cmp r3, #0 │ │ │ │ │ - mov r4, r1 │ │ │ │ │ - mov r8, r2 │ │ │ │ │ - beq a30 │ │ │ │ │ + beq b14 │ │ │ │ │ ldr r3, [r2, #164] @ 0xa4 │ │ │ │ │ tst r3, #4096 @ 0x1000 │ │ │ │ │ - beq a20 │ │ │ │ │ + beq b04 │ │ │ │ │ mov r0, #0 │ │ │ │ │ add sp, sp, #116 @ 0x74 │ │ │ │ │ - pop {r4, r5, r6, r7, r8, r9, sl, fp, pc} │ │ │ │ │ + ldrd r4, [sp] │ │ │ │ │ + ldrd r6, [sp, #8] │ │ │ │ │ + ldrd r8, [sp, #16] │ │ │ │ │ + ldrd sl, [sp, #24] │ │ │ │ │ + add sp, sp, #32 │ │ │ │ │ + pop {pc} @ (ldr pc, [sp], #4) │ │ │ │ │ ldr r2, [r1, #16] │ │ │ │ │ ldr r3, [r1, #20] │ │ │ │ │ cmp r2, r3 │ │ │ │ │ - beq a14 │ │ │ │ │ + beq ae4 │ │ │ │ │ ldr r3, [r4, #24] │ │ │ │ │ bics fp, r3, #12 │ │ │ │ │ - bne a14 │ │ │ │ │ + bne ae4 │ │ │ │ │ add r1, sp, #104 @ 0x68 │ │ │ │ │ - ldr r0, [r4, #36] @ 0x24 │ │ │ │ │ ldr r6, [r4, #4] │ │ │ │ │ - ldr r9, [r4, #16] │ │ │ │ │ + ldr r0, [r4, #36] @ 0x24 │ │ │ │ │ + ldr r7, [r4, #16] │ │ │ │ │ ldr sl, [r4, #20] │ │ │ │ │ bl 0 │ │ │ │ │ R_ARM_CALL MPI_Comm_rank │ │ │ │ │ - add r1, sp, #108 @ 0x6c │ │ │ │ │ ldr r0, [r4, #36] @ 0x24 │ │ │ │ │ + add r1, sp, #108 @ 0x6c │ │ │ │ │ bl 0 │ │ │ │ │ R_ARM_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_CALL fftwf_mpi_block │ │ │ │ │ - ldr r7, [r4, #24] │ │ │ │ │ - ands r7, r7, #4 │ │ │ │ │ - strne fp, [sp, #40] @ 0x28 │ │ │ │ │ + ldr r5, [r4, #24] │ │ │ │ │ mov r3, r0 │ │ │ │ │ - beq db0 │ │ │ │ │ - ldr r3, [r5, #8] │ │ │ │ │ + ands r5, r5, #4 │ │ │ │ │ + strne fp, [sp, #40] @ 0x28 │ │ │ │ │ + beq e98 │ │ │ │ │ + ldr r3, [r8, #8] │ │ │ │ │ cmp r3, #0 │ │ │ │ │ - movne r9, sl │ │ │ │ │ - beq da0 │ │ │ │ │ + movne r7, sl │ │ │ │ │ + beq e88 │ │ │ │ │ add r3, sp, #100 @ 0x64 │ │ │ │ │ + mov r2, r7 │ │ │ │ │ + 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, r9 │ │ │ │ │ - mov r1, r8 │ │ │ │ │ str r3, [sp] │ │ │ │ │ - mov r0, r4 │ │ │ │ │ mov r3, sl │ │ │ │ │ - bl 674 │ │ │ │ │ + bl 714 │ │ │ │ │ R_ARM_CALL fftwf_mpi_mkplans_posttranspose │ │ │ │ │ ldr r1, [r4, #36] @ 0x24 │ │ │ │ │ eor r0, r0, #1 │ │ │ │ │ bl 0 │ │ │ │ │ R_ARM_CALL fftwf_mpi_any_true │ │ │ │ │ - ldr r9, [sp, #84] @ 0x54 │ │ │ │ │ + subs r3, r0, #0 │ │ │ │ │ + ldr r5, [sp, #84] @ 0x54 │ │ │ │ │ ldr sl, [sp, #88] @ 0x58 │ │ │ │ │ ldr fp, [sp, #92] @ 0x5c │ │ │ │ │ - str r9, [sp, #52] @ 0x34 │ │ │ │ │ - str sl, [sp, #48] @ 0x30 │ │ │ │ │ - str fp, [sp, #44] @ 0x2c │ │ │ │ │ - subs r3, r0, #0 │ │ │ │ │ str r3, [sp, #76] @ 0x4c │ │ │ │ │ - bne e2c │ │ │ │ │ - ldr r2, [pc, #1208] @ fc8 │ │ │ │ │ - ldr r1, [pc, #1208] @ fcc │ │ │ │ │ + str fp, [sp, #48] @ 0x30 │ │ │ │ │ + str sl, [sp, #52] @ 0x34 │ │ │ │ │ + bne f10 │ │ │ │ │ + ldr r2, [pc, #1204] @ 10a4 │ │ │ │ │ + mov r0, #128 @ 0x80 │ │ │ │ │ + ldr r1, [pc, #1200] @ 10a8 │ │ │ │ │ add r2, pc, r2 │ │ │ │ │ add r1, pc, r1 │ │ │ │ │ - mov r0, #128 @ 0x80 │ │ │ │ │ bl 0 │ │ │ │ │ R_ARM_CALL fftwf_mkplan_rdft │ │ │ │ │ ldr r3, [sp, #40] @ 0x28 │ │ │ │ │ + add r1, r0, #116 @ 0x74 │ │ │ │ │ + mov r7, r0 │ │ │ │ │ str r3, [r0, #64] @ 0x40 │ │ │ │ │ ldr r3, [sp, #96] @ 0x60 │ │ │ │ │ + str r5, [r0, #68] @ 0x44 │ │ │ │ │ + str sl, [r0, #72] @ 0x48 │ │ │ │ │ + str fp, [r0, #76] @ 0x4c │ │ │ │ │ str r3, [r0, #80] @ 0x50 │ │ │ │ │ ldr r3, [sp, #100] @ 0x64 │ │ │ │ │ str r3, [r0, #84] @ 0x54 │ │ │ │ │ - ldr r3, [r5, #8] │ │ │ │ │ - add r1, r0, #116 @ 0x74 │ │ │ │ │ + ldr r3, [r8, #8] │ │ │ │ │ cmp r3, #0 │ │ │ │ │ - ldreq r3, [r8, #164] @ 0xa4 │ │ │ │ │ + ldreq r3, [r9, #164] @ 0xa4 │ │ │ │ │ movne r3, #2 │ │ │ │ │ andeq r3, r3, #4096 @ 0x1000 │ │ │ │ │ str r3, [r0, #120] @ 0x78 │ │ │ │ │ - str r9, [r0, #68] @ 0x44 │ │ │ │ │ - str sl, [r0, #72] @ 0x48 │ │ │ │ │ - str fp, [r0, #76] @ 0x4c │ │ │ │ │ - mov r7, r0 │ │ │ │ │ ldr r0, [r4, #36] @ 0x24 │ │ │ │ │ bl 0 │ │ │ │ │ R_ARM_CALL MPI_Comm_dup │ │ │ │ │ - ldr r1, [r4, #28] │ │ │ │ │ ldr r0, [r4, #8] │ │ │ │ │ + ldr r1, [r4, #28] │ │ │ │ │ bl 0 │ │ │ │ │ R_ARM_CALL fftwf_mpi_num_blocks │ │ │ │ │ ldr r1, [r4, #32] │ │ │ │ │ - mov r5, r0 │ │ │ │ │ + mov r8, r0 │ │ │ │ │ ldr r0, [r4, #12] │ │ │ │ │ bl 0 │ │ │ │ │ R_ARM_CALL fftwf_mpi_num_blocks │ │ │ │ │ mov r1, r0 │ │ │ │ │ - mov r0, r5 │ │ │ │ │ + mov r0, r8 │ │ │ │ │ bl 0 │ │ │ │ │ R_ARM_CALL fftwf_imax │ │ │ │ │ str r0, [sp, #108] @ 0x6c │ │ │ │ │ lsl r0, r0, #4 │ │ │ │ │ bl 0 │ │ │ │ │ R_ARM_CALL fftwf_malloc_plain │ │ │ │ │ ldr r3, [sp, #108] @ 0x6c │ │ │ │ │ - ldr r2, [sp, #104] @ 0x68 │ │ │ │ │ + mov fp, r0 │ │ │ │ │ + str r0, [sp, #60] @ 0x3c │ │ │ │ │ ldr r1, [r4, #28] │ │ │ │ │ - add r9, r0, r3, lsl #3 │ │ │ │ │ - add fp, r0, r3, lsl #2 │ │ │ │ │ - mov r5, r0 │ │ │ │ │ - add r3, r9, r3, lsl #2 │ │ │ │ │ + lsl r3, r3, #2 │ │ │ │ │ + add r9, r0, r3 │ │ │ │ │ ldr r0, [r4, #8] │ │ │ │ │ + add r2, r9, r3 │ │ │ │ │ + add r3, r2, r3 │ │ │ │ │ + str r2, [sp, #44] @ 0x2c │ │ │ │ │ + ldr r2, [sp, #104] @ 0x68 │ │ │ │ │ str r3, [sp, #56] @ 0x38 │ │ │ │ │ - str fp, [sp, #60] @ 0x3c │ │ │ │ │ str r9, [sp, #64] @ 0x40 │ │ │ │ │ bl 0 │ │ │ │ │ R_ARM_CALL fftwf_mpi_block │ │ │ │ │ - ldr r2, [sp, #104] @ 0x68 │ │ │ │ │ ldr r1, [r4, #32] │ │ │ │ │ mov sl, r0 │ │ │ │ │ ldr r0, [r4, #12] │ │ │ │ │ + ldr r2, [sp, #104] @ 0x68 │ │ │ │ │ bl 0 │ │ │ │ │ R_ARM_CALL fftwf_mpi_block │ │ │ │ │ mov r8, r0 │ │ │ │ │ ldr r0, [sp, #108] @ 0x6c │ │ │ │ │ cmp r0, #0 │ │ │ │ │ - ble f54 │ │ │ │ │ + ble 1038 │ │ │ │ │ + ldr r2, [sp, #44] @ 0x2c │ │ │ │ │ + sub r3, fp, #4 │ │ │ │ │ + sub fp, r9, #4 │ │ │ │ │ + mov r9, #0 │ │ │ │ │ + str r7, [sp, #68] @ 0x44 │ │ │ │ │ + mov r7, r3 │ │ │ │ │ + str r5, [sp, #72] @ 0x48 │ │ │ │ │ + sub r1, r2, #4 │ │ │ │ │ ldr r2, [sp, #56] @ 0x38 │ │ │ │ │ - sub r3, r5, #4 │ │ │ │ │ + str r1, [sp, #24] │ │ │ │ │ sub r2, r2, #4 │ │ │ │ │ str r2, [sp, #28] │ │ │ │ │ mov r2, #1 │ │ │ │ │ - sub r1, r9, #4 │ │ │ │ │ str r2, [sp, #36] @ 0x24 │ │ │ │ │ - str r7, [sp, #68] @ 0x44 │ │ │ │ │ mvn r2, #0 │ │ │ │ │ - sub fp, fp, #4 │ │ │ │ │ - mov r9, #0 │ │ │ │ │ - mov r7, r3 │ │ │ │ │ - str r1, [sp, #24] │ │ │ │ │ str r2, [sp, #32] │ │ │ │ │ - str r5, [sp, #72] @ 0x48 │ │ │ │ │ - ldr r1, [r4, #28] │ │ │ │ │ - mov r2, r9 │ │ │ │ │ ldr r0, [r4, #8] │ │ │ │ │ + mov r2, r9 │ │ │ │ │ + ldr r1, [r4, #28] │ │ │ │ │ bl 0 │ │ │ │ │ R_ARM_CALL fftwf_mpi_block │ │ │ │ │ ldr r1, [r4, #32] │ │ │ │ │ - mov r2, r9 │ │ │ │ │ mov r5, r0 │ │ │ │ │ + mov r2, r9 │ │ │ │ │ ldr r0, [r4, #12] │ │ │ │ │ bl 0 │ │ │ │ │ R_ARM_CALL fftwf_mpi_block │ │ │ │ │ - ldr r3, [sp, #24] │ │ │ │ │ mul r1, r0, sl │ │ │ │ │ + ldr r3, [sp, #24] │ │ │ │ │ mul r1, r6, r1 │ │ │ │ │ str r1, [r7, #4]! │ │ │ │ │ ldr r1, [r4, #32] │ │ │ │ │ mul r1, sl, r1 │ │ │ │ │ mul r1, r9, r1 │ │ │ │ │ mul r1, r6, r1 │ │ │ │ │ str r1, [fp, #4]! │ │ │ │ │ mul r1, r5, r8 │ │ │ │ │ mul r1, r6, r1 │ │ │ │ │ str r1, [r3, #4]! │ │ │ │ │ ldr r1, [r4, #28] │ │ │ │ │ str r3, [sp, #24] │ │ │ │ │ - mul r1, r8, r1 │ │ │ │ │ ldr r3, [sp, #28] │ │ │ │ │ + mul r1, r8, r1 │ │ │ │ │ mul r1, r9, r1 │ │ │ │ │ mul r1, r6, r1 │ │ │ │ │ str r1, [r3, #4]! │ │ │ │ │ mul r1, r0, r5 │ │ │ │ │ str r3, [sp, #28] │ │ │ │ │ cmp r1, #0 │ │ │ │ │ - ble cd8 │ │ │ │ │ + ble dc4 │ │ │ │ │ ldr r1, [r4, #32] │ │ │ │ │ mul r5, r1, r5 │ │ │ │ │ ldr r1, [r4, #28] │ │ │ │ │ mul r0, r1, r0 │ │ │ │ │ cmp r5, r0 │ │ │ │ │ - beq cd8 │ │ │ │ │ + beq dc4 │ │ │ │ │ movgt r3, #1 │ │ │ │ │ movle r3, #0 │ │ │ │ │ - str r3, [sp, #36] @ 0x24 │ │ │ │ │ str r9, [sp, #32] │ │ │ │ │ + str r3, [sp, #36] @ 0x24 │ │ │ │ │ ldr r0, [sp, #108] @ 0x6c │ │ │ │ │ add r9, r9, #1 │ │ │ │ │ cmp r0, r9 │ │ │ │ │ - bgt c30 │ │ │ │ │ + bgt d1c │ │ │ │ │ ldr r7, [sp, #68] @ 0x44 │ │ │ │ │ ldr r5, [sp, #72] @ 0x48 │ │ │ │ │ - ldr r3, [sp, #104] @ 0x68 │ │ │ │ │ + str r0, [r7, #88] @ 0x58 │ │ │ │ │ ldr r2, [sp, #60] @ 0x3c │ │ │ │ │ - str r2, [r7, #104] @ 0x68 │ │ │ │ │ + ldr r3, [sp, #104] @ 0x68 │ │ │ │ │ + str r2, [r7, #100] @ 0x64 │ │ │ │ │ + cmp r3, r0 │ │ │ │ │ ldr r2, [sp, #64] @ 0x40 │ │ │ │ │ + str r3, [r7, #92] @ 0x5c │ │ │ │ │ + str r2, [r7, #104] @ 0x68 │ │ │ │ │ + ldr r2, [sp, #44] @ 0x2c │ │ │ │ │ str r2, [r7, #108] @ 0x6c │ │ │ │ │ - cmp r3, r0 │ │ │ │ │ ldr r2, [sp, #56] @ 0x38 │ │ │ │ │ - str r0, [r7, #88] @ 0x58 │ │ │ │ │ - str r3, [r7, #92] @ 0x5c │ │ │ │ │ - str r5, [r7, #100] @ 0x64 │ │ │ │ │ str r2, [r7, #112] @ 0x70 │ │ │ │ │ - blt e50 │ │ │ │ │ + blt f34 │ │ │ │ │ mov r3, #0 │ │ │ │ │ str r3, [r7, #96] @ 0x60 │ │ │ │ │ add r4, r7, #8 │ │ │ │ │ mov r0, r4 │ │ │ │ │ bl 0 │ │ │ │ │ R_ARM_CALL fftwf_ops_zero │ │ │ │ │ ldr r3, [sp, #40] @ 0x28 │ │ │ │ │ cmp r3, #0 │ │ │ │ │ - beq d4c │ │ │ │ │ + beq e3c │ │ │ │ │ mov r1, r4 │ │ │ │ │ add r0, r3, #8 │ │ │ │ │ bl 0 │ │ │ │ │ R_ARM_CALL fftwf_ops_add2 │ │ │ │ │ - ldr r3, [sp, #52] @ 0x34 │ │ │ │ │ - cmp r3, #0 │ │ │ │ │ - beq d64 │ │ │ │ │ + cmp r5, #0 │ │ │ │ │ + beq e50 │ │ │ │ │ mov r1, r4 │ │ │ │ │ - add r0, r3, #8 │ │ │ │ │ + add r0, r5, #8 │ │ │ │ │ bl 0 │ │ │ │ │ R_ARM_CALL fftwf_ops_add2 │ │ │ │ │ - ldr r3, [sp, #48] @ 0x30 │ │ │ │ │ + ldr r3, [sp, #52] @ 0x34 │ │ │ │ │ cmp r3, #0 │ │ │ │ │ - beq d7c │ │ │ │ │ + beq e68 │ │ │ │ │ mov r1, r4 │ │ │ │ │ add r0, r3, #8 │ │ │ │ │ bl 0 │ │ │ │ │ R_ARM_CALL fftwf_ops_add2 │ │ │ │ │ - ldr r3, [sp, #44] @ 0x2c │ │ │ │ │ + ldr r3, [sp, #48] @ 0x30 │ │ │ │ │ cmp r3, #0 │ │ │ │ │ - beq d94 │ │ │ │ │ + beq e80 │ │ │ │ │ mov r1, r4 │ │ │ │ │ add r0, r3, #8 │ │ │ │ │ bl 0 │ │ │ │ │ R_ARM_CALL fftwf_ops_add2 │ │ │ │ │ mov r0, r7 │ │ │ │ │ - add sp, sp, #116 @ 0x74 │ │ │ │ │ - pop {r4, r5, r6, r7, r8, r9, sl, fp, pc} │ │ │ │ │ - ldr r3, [r8, #164] @ 0xa4 │ │ │ │ │ + b ae8 │ │ │ │ │ + ldr r3, [r9, #164] @ 0xa4 │ │ │ │ │ tst r3, #4096 @ 0x1000 │ │ │ │ │ - movne r9, sl │ │ │ │ │ - b a94 │ │ │ │ │ + movne r7, sl │ │ │ │ │ + b b78 │ │ │ │ │ mul r3, r6, r3 │ │ │ │ │ mov r2, #1 │ │ │ │ │ - str r2, [sp, #16] │ │ │ │ │ - str r2, [sp, #12] │ │ │ │ │ - str r6, [sp, #8] │ │ │ │ │ - str r3, [sp, #4] │ │ │ │ │ str r6, [sp] │ │ │ │ │ - ldr r3, [r4, #12] │ │ │ │ │ + str r3, [sp, #4] │ │ │ │ │ + str r6, [sp, #8] │ │ │ │ │ + str r2, [sp, #12] │ │ │ │ │ + str r2, [sp, #16] │ │ │ │ │ mov r2, r6 │ │ │ │ │ + ldr r3, [r4, #12] │ │ │ │ │ mul r1, r6, r3 │ │ │ │ │ bl 0 │ │ │ │ │ R_ARM_CALL fftwf_mktensor_3d │ │ │ │ │ mov r2, sl │ │ │ │ │ - mov r1, r9 │ │ │ │ │ + mov r1, r7 │ │ │ │ │ bl 0 │ │ │ │ │ R_ARM_CALL fftwf_mkproblem_rdft_0_d │ │ │ │ │ mov r3, #8 │ │ │ │ │ - mov r2, r7 │ │ │ │ │ - str r3, [sp] │ │ │ │ │ - mov r3, r7 │ │ │ │ │ mov r1, r0 │ │ │ │ │ - mov r0, r8 │ │ │ │ │ + mov r2, r5 │ │ │ │ │ + mov r0, r9 │ │ │ │ │ + str r3, [sp] │ │ │ │ │ + mov r3, r5 │ │ │ │ │ bl 0 │ │ │ │ │ R_ARM_CALL fftwf_mkplan_f_d │ │ │ │ │ - ldr r1, [r4, #36] @ 0x24 │ │ │ │ │ str r0, [sp, #40] @ 0x28 │ │ │ │ │ clz r0, r0 │ │ │ │ │ + ldr r1, [r4, #36] @ 0x24 │ │ │ │ │ lsr r0, r0, #5 │ │ │ │ │ bl 0 │ │ │ │ │ R_ARM_CALL fftwf_mpi_any_true │ │ │ │ │ cmp r0, #0 │ │ │ │ │ - beq a84 │ │ │ │ │ - str r7, [sp, #52] @ 0x34 │ │ │ │ │ - str r7, [sp, #48] @ 0x30 │ │ │ │ │ - str r7, [sp, #44] @ 0x2c │ │ │ │ │ - ldr r0, [sp, #44] @ 0x2c │ │ │ │ │ - bl 0 │ │ │ │ │ - R_ARM_CALL fftwf_plan_destroy_internal │ │ │ │ │ + beq b68 │ │ │ │ │ + str r5, [sp, #48] @ 0x30 │ │ │ │ │ + str r5, [sp, #52] @ 0x34 │ │ │ │ │ ldr r0, [sp, #48] @ 0x30 │ │ │ │ │ bl 0 │ │ │ │ │ R_ARM_CALL fftwf_plan_destroy_internal │ │ │ │ │ ldr r0, [sp, #52] @ 0x34 │ │ │ │ │ bl 0 │ │ │ │ │ R_ARM_CALL fftwf_plan_destroy_internal │ │ │ │ │ + mov r0, r5 │ │ │ │ │ + bl 0 │ │ │ │ │ + R_ARM_CALL fftwf_plan_destroy_internal │ │ │ │ │ ldr r0, [sp, #40] @ 0x28 │ │ │ │ │ bl 0 │ │ │ │ │ R_ARM_CALL fftwf_plan_destroy_internal │ │ │ │ │ - b a14 │ │ │ │ │ + b ae4 │ │ │ │ │ lsl r0, r0, #2 │ │ │ │ │ bl 0 │ │ │ │ │ R_ARM_CALL fftwf_malloc_plain │ │ │ │ │ - ldr r2, [sp, #108] @ 0x6c │ │ │ │ │ ldr r1, [sp, #104] @ 0x68 │ │ │ │ │ + mov r6, r0 │ │ │ │ │ str r0, [r7, #96] @ 0x60 │ │ │ │ │ - mov r5, r0 │ │ │ │ │ - bl 70 │ │ │ │ │ - ldr r8, [sp, #32] │ │ │ │ │ - cmn r8, #1 │ │ │ │ │ - beq d28 │ │ │ │ │ - ldr r6, [sp, #108] @ 0x6c │ │ │ │ │ - lsl r0, r6, #3 │ │ │ │ │ + ldr r2, [sp, #108] @ 0x6c │ │ │ │ │ + bl 7c │ │ │ │ │ + ldr r9, [sp, #32] │ │ │ │ │ + cmn r9, #1 │ │ │ │ │ + beq e18 │ │ │ │ │ + ldr r8, [sp, #108] @ 0x6c │ │ │ │ │ + lsl r0, r8, #3 │ │ │ │ │ bl 0 │ │ │ │ │ R_ARM_CALL fftwf_malloc_plain │ │ │ │ │ - mov r2, r6 │ │ │ │ │ - mov r1, r8 │ │ │ │ │ + mov r2, r8 │ │ │ │ │ + mov r1, r9 │ │ │ │ │ mov r4, r0 │ │ │ │ │ - bl 70 │ │ │ │ │ + bl 7c │ │ │ │ │ ldr r3, [sp, #36] @ 0x24 │ │ │ │ │ cmp r3, #0 │ │ │ │ │ - bne f68 │ │ │ │ │ - cmp r6, #0 │ │ │ │ │ - ble f48 │ │ │ │ │ - lsl r0, r6, #2 │ │ │ │ │ - lsl lr, r6, #1 │ │ │ │ │ - sub r8, r5, #4 │ │ │ │ │ - sub ip, r0, #4 │ │ │ │ │ - sub lr, lr, #1 │ │ │ │ │ - sub r2, r4, #4 │ │ │ │ │ - mov r1, r8 │ │ │ │ │ - add ip, r4, ip │ │ │ │ │ - ldr r3, [r2, #4]! │ │ │ │ │ - ldr r9, [r1, #4]! │ │ │ │ │ - sub r3, lr, r3 │ │ │ │ │ - cmp r2, ip │ │ │ │ │ - str r9, [r4, r3, lsl #2] │ │ │ │ │ - bne ec8 │ │ │ │ │ - cmp r6, #9 │ │ │ │ │ - ble fa4 │ │ │ │ │ + bne 104c │ │ │ │ │ + cmp r8, #0 │ │ │ │ │ + ble 102c │ │ │ │ │ + lsl ip, r8, #1 │ │ │ │ │ + sub r9, r6, #4 │ │ │ │ │ + mov r2, r4 │ │ │ │ │ + lsl r0, r8, #2 │ │ │ │ │ + mov r1, r9 │ │ │ │ │ + sub ip, ip, #1 │ │ │ │ │ + add lr, r4, r0 │ │ │ │ │ + ldr r3, [r2], #4 │ │ │ │ │ + ldr sl, [r1, #4]! │ │ │ │ │ + sub r3, ip, r3 │ │ │ │ │ + cmp r2, lr │ │ │ │ │ + str sl, [r4, r3, lsl #2] │ │ │ │ │ + bne fa8 │ │ │ │ │ + cmp r8, #9 │ │ │ │ │ + ble 1084 │ │ │ │ │ add r3, r4, r0 │ │ │ │ │ add r2, r0, #4 │ │ │ │ │ add r2, r4, r2 │ │ │ │ │ - orr r1, r5, r3 │ │ │ │ │ - subs r2, r5, r2 │ │ │ │ │ + orr r1, r6, r3 │ │ │ │ │ + subs r2, r6, r2 │ │ │ │ │ and r1, r1, #7 │ │ │ │ │ movne r2, #1 │ │ │ │ │ cmp r1, #0 │ │ │ │ │ movne r2, #0 │ │ │ │ │ cmp r2, #0 │ │ │ │ │ - lsrne ip, r6, #1 │ │ │ │ │ - subne r0, r3, #8 │ │ │ │ │ - addne ip, r5, ip, lsl #3 │ │ │ │ │ - movne r1, r5 │ │ │ │ │ - beq fa4 │ │ │ │ │ + beq 1084 │ │ │ │ │ + lsr ip, r8, #1 │ │ │ │ │ + sub r0, r3, #8 │ │ │ │ │ + mov r1, r6 │ │ │ │ │ + add ip, r6, ip, lsl #3 │ │ │ │ │ ldrd r2, [r0, #8]! │ │ │ │ │ strd r2, [r1], #8 │ │ │ │ │ cmp ip, r1 │ │ │ │ │ - bne f24 │ │ │ │ │ - tst r6, #1 │ │ │ │ │ - bicne r3, r6, #1 │ │ │ │ │ - addne r6, r3, r6 │ │ │ │ │ - ldrne r2, [r4, r6, lsl #2] │ │ │ │ │ - strne r2, [r5, r3, lsl #2] │ │ │ │ │ + bne 1004 │ │ │ │ │ + tst r8, #1 │ │ │ │ │ + beq 102c │ │ │ │ │ + bic r3, r8, #1 │ │ │ │ │ + add r8, r3, r8 │ │ │ │ │ + ldr r2, [r4, r8, lsl #2] │ │ │ │ │ + str r2, [r6, r3, lsl #2] │ │ │ │ │ mov r0, r4 │ │ │ │ │ bl 0 │ │ │ │ │ R_ARM_CALL fftwf_ifree │ │ │ │ │ - b d28 │ │ │ │ │ + b e18 │ │ │ │ │ mov r3, #1 │ │ │ │ │ str r3, [sp, #36] @ 0x24 │ │ │ │ │ mvn r3, #0 │ │ │ │ │ str r3, [sp, #32] │ │ │ │ │ - b cf0 │ │ │ │ │ - cmp r6, #0 │ │ │ │ │ - ble f48 │ │ │ │ │ - lsl r0, r6, #2 │ │ │ │ │ - sub r8, r5, #4 │ │ │ │ │ - sub lr, r0, #4 │ │ │ │ │ - sub r2, r4, #4 │ │ │ │ │ - mov r1, r8 │ │ │ │ │ - add lr, r4, lr │ │ │ │ │ - ldr r3, [r2, #4]! │ │ │ │ │ + b ddc │ │ │ │ │ + cmp r8, #0 │ │ │ │ │ + ble 102c │ │ │ │ │ + lsl r0, r8, #2 │ │ │ │ │ + sub r9, r6, #4 │ │ │ │ │ + mov r2, r4 │ │ │ │ │ + mov r1, r9 │ │ │ │ │ + add lr, r4, r0 │ │ │ │ │ + ldr r3, [r2], #4 │ │ │ │ │ ldr ip, [r1, #4]! │ │ │ │ │ - add r3, r6, r3 │ │ │ │ │ + add r3, r8, r3 │ │ │ │ │ cmp r2, lr │ │ │ │ │ str ip, [r4, r3, lsl #2] │ │ │ │ │ - bne f88 │ │ │ │ │ - b ee0 │ │ │ │ │ - sub r3, r6, #-1073741823 @ 0xc0000001 │ │ │ │ │ - ldr r2, [sp, #76] @ 0x4c │ │ │ │ │ - add r3, r4, r3, lsl #2 │ │ │ │ │ - add r2, r2, #1 │ │ │ │ │ - ldr r1, [r3, #4]! │ │ │ │ │ - cmp r6, r2 │ │ │ │ │ - str r1, [r8, #4]! │ │ │ │ │ - bgt fb0 │ │ │ │ │ - b f48 │ │ │ │ │ - .word 0xfffff9a8 │ │ │ │ │ - .word 0x000004b0 │ │ │ │ │ + bne 1068 │ │ │ │ │ + b fc0 │ │ │ │ │ + ldr r3, [sp, #76] @ 0x4c │ │ │ │ │ + add r0, r4, r0 │ │ │ │ │ + add r3, r3, #1 │ │ │ │ │ + ldr r2, [r0], #4 │ │ │ │ │ + cmp r8, r3 │ │ │ │ │ + str r2, [r9, #4]! │ │ │ │ │ + bgt 108c │ │ │ │ │ + b 102c │ │ │ │ │ + .word 0xfffff918 │ │ │ │ │ + .word 0x000004a8 │ │ │ │ │ R_ARM_REL32 .data.rel.ro │ │ │ │ │ │ │ │ │ │ -00000fd0 : │ │ │ │ │ +000010ac : │ │ │ │ │ fftwf_mpi_transpose_pairwise_register(): │ │ │ │ │ - push {r4, r5, r6, lr} │ │ │ │ │ - ldr r5, [pc, #72] @ 1024 │ │ │ │ │ + strd r4, [sp, #-16]! │ │ │ │ │ mov r4, r0 │ │ │ │ │ + mov r0, #12 │ │ │ │ │ + ldr r5, [pc, #84] @ 1114 │ │ │ │ │ + str r6, [sp, #8] │ │ │ │ │ + str lr, [sp, #12] │ │ │ │ │ add r5, pc, r5 │ │ │ │ │ mov r1, r5 │ │ │ │ │ - mov r0, #12 │ │ │ │ │ bl 0 │ │ │ │ │ R_ARM_CALL fftwf_mksolver │ │ │ │ │ mov r3, #0 │ │ │ │ │ - str r3, [r0, #8] │ │ │ │ │ mov r1, r0 │ │ │ │ │ + str r3, [r0, #8] │ │ │ │ │ mov r0, r4 │ │ │ │ │ bl 0 │ │ │ │ │ R_ARM_CALL fftwf_solver_register │ │ │ │ │ mov r1, r5 │ │ │ │ │ mov r0, #12 │ │ │ │ │ bl 0 │ │ │ │ │ R_ARM_CALL fftwf_mksolver │ │ │ │ │ mov r3, #1 │ │ │ │ │ + ldr r6, [sp, #8] │ │ │ │ │ mov r1, r0 │ │ │ │ │ + ldr lr, [sp, #12] │ │ │ │ │ str r3, [r0, #8] │ │ │ │ │ mov r0, r4 │ │ │ │ │ - pop {r4, r5, r6, lr} │ │ │ │ │ + ldrd r4, [sp] │ │ │ │ │ + add sp, sp, #16 │ │ │ │ │ b 0 │ │ │ │ │ R_ARM_JUMP24 fftwf_solver_register │ │ │ │ │ - .word 0x00000040 │ │ │ │ │ + .word 0x00000048 │ │ │ │ │ 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: 4856 (bytes into file) │ │ │ │ │ + Start of section headers: 5044 (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 0x12f8: │ │ │ │ │ +There are 15 section headers, starting at offset 0x13b4: │ │ │ │ │ │ │ │ │ │ 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 000988 00 AX 0 0 4 │ │ │ │ │ - [ 2] .rel.text REL 00000000 000ff0 000258 08 I 12 1 4 │ │ │ │ │ - [ 3] .data PROGBITS 00000000 0009bc 000000 00 WA 0 0 1 │ │ │ │ │ - [ 4] .bss NOBITS 00000000 0009bc 000000 00 WA 0 0 1 │ │ │ │ │ - [ 5] .rodata.str1.4 PROGBITS 00000000 0009bc 00004a 01 AMS 0 0 4 │ │ │ │ │ - [ 6] .data.rel.ro PROGBITS 00000000 000a06 000010 00 WA 0 0 4 │ │ │ │ │ - [ 7] .rel.data.rel.ro REL 00000000 001248 000020 08 I 12 6 4 │ │ │ │ │ - [ 8] .data.rel.ro.local PROGBITS 00000000 000a16 00000c 00 WA 0 0 4 │ │ │ │ │ - [ 9] .rel.data.rel.ro.local REL 00000000 001268 000008 08 I 12 8 4 │ │ │ │ │ - [10] .note.GNU-stack PROGBITS 00000000 000a22 000000 00 0 0 1 │ │ │ │ │ - [11] .ARM.attributes ARM_ATTRIBUTES 00000000 000a22 00002b 00 0 0 1 │ │ │ │ │ - [12] .symtab SYMTAB 00000000 000a50 000350 10 13 26 4 │ │ │ │ │ - [13] .strtab STRTAB 00000000 000da0 000250 00 0 0 1 │ │ │ │ │ - [14] .shstrtab STRTAB 00000000 001270 000087 00 0 0 1 │ │ │ │ │ + [ 1] .text PROGBITS 00000000 000034 000a44 00 AX 0 0 4 │ │ │ │ │ + [ 2] .rel.text REL 00000000 0010ac 000258 08 I 12 1 4 │ │ │ │ │ + [ 3] .data PROGBITS 00000000 000a78 000000 00 WA 0 0 1 │ │ │ │ │ + [ 4] .bss NOBITS 00000000 000a78 000000 00 WA 0 0 1 │ │ │ │ │ + [ 5] .rodata.str1.4 PROGBITS 00000000 000a78 00004a 01 AMS 0 0 4 │ │ │ │ │ + [ 6] .data.rel.ro PROGBITS 00000000 000ac2 000010 00 WA 0 0 4 │ │ │ │ │ + [ 7] .rel.data.rel.ro REL 00000000 001304 000020 08 I 12 6 4 │ │ │ │ │ + [ 8] .data.rel.ro.local PROGBITS 00000000 000ad2 00000c 00 WA 0 0 4 │ │ │ │ │ + [ 9] .rel.data.rel.ro.local REL 00000000 001324 000008 08 I 12 8 4 │ │ │ │ │ + [10] .note.GNU-stack PROGBITS 00000000 000ade 000000 00 0 0 1 │ │ │ │ │ + [11] .ARM.attributes ARM_ATTRIBUTES 00000000 000ade 00002b 00 0 0 1 │ │ │ │ │ + [12] .symtab SYMTAB 00000000 000b0c 000350 10 13 26 4 │ │ │ │ │ + [13] .strtab STRTAB 00000000 000e5c 000250 00 0 0 1 │ │ │ │ │ + [14] .shstrtab STRTAB 00000000 00132c 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: 00000000 0 NOTYPE LOCAL DEFAULT 1 $a │ │ │ │ │ - 2: 00000000 108 FUNC LOCAL DEFAULT 1 apply │ │ │ │ │ + 2: 00000000 144 FUNC LOCAL DEFAULT 1 apply │ │ │ │ │ 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: 0000006c 116 FUNC LOCAL DEFAULT 1 print │ │ │ │ │ - 8: 000000d4 0 NOTYPE LOCAL DEFAULT 1 $d │ │ │ │ │ - 9: 000000e0 0 NOTYPE LOCAL DEFAULT 1 $a │ │ │ │ │ - 10: 000000e0 40 FUNC LOCAL DEFAULT 1 radix_first │ │ │ │ │ - 11: 00000108 68 FUNC LOCAL DEFAULT 1 radix_sqrt │ │ │ │ │ - 12: 0000014c 36 FUNC LOCAL DEFAULT 1 destroy │ │ │ │ │ - 13: 00000170 48 FUNC LOCAL DEFAULT 1 awake │ │ │ │ │ - 14: 000001a0 1860 FUNC LOCAL DEFAULT 1 mkplan │ │ │ │ │ - 15: 000008d8 0 NOTYPE LOCAL DEFAULT 1 $d │ │ │ │ │ + 7: 00000090 128 FUNC LOCAL DEFAULT 1 print │ │ │ │ │ + 8: 00000104 0 NOTYPE LOCAL DEFAULT 1 $d │ │ │ │ │ + 9: 00000110 0 NOTYPE LOCAL DEFAULT 1 $a │ │ │ │ │ + 10: 00000110 60 FUNC LOCAL DEFAULT 1 radix_first │ │ │ │ │ + 11: 0000014c 88 FUNC LOCAL DEFAULT 1 radix_sqrt │ │ │ │ │ + 12: 000001a4 48 FUNC LOCAL DEFAULT 1 destroy │ │ │ │ │ + 13: 000001d4 68 FUNC LOCAL DEFAULT 1 awake │ │ │ │ │ + 14: 00000218 1900 FUNC LOCAL DEFAULT 1 mkplan │ │ │ │ │ + 15: 00000978 0 NOTYPE LOCAL DEFAULT 1 $d │ │ │ │ │ 16: 0000003c 0 NOTYPE LOCAL DEFAULT 5 .LC3 │ │ │ │ │ 17: 00000044 0 NOTYPE LOCAL DEFAULT 5 .LC4 │ │ │ │ │ - 18: 000008e4 0 NOTYPE LOCAL DEFAULT 1 $a │ │ │ │ │ - 19: 00000974 0 NOTYPE LOCAL DEFAULT 1 $d │ │ │ │ │ + 18: 00000984 0 NOTYPE LOCAL DEFAULT 1 $a │ │ │ │ │ + 19: 00000a30 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: 000008e4 164 FUNC GLOBAL DEFAULT 1 fftwf_mpi_transpose_recurse_register │ │ │ │ │ + 49: 00000984 192 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,89 +1,89 @@ │ │ │ │ │ │ │ │ │ │ -Relocation section '.rel.text' at offset 0xff0 contains 75 entries: │ │ │ │ │ +Relocation section '.rel.text' at offset 0x10ac contains 75 entries: │ │ │ │ │ Offset Info Type Sym. Value Symbol's Name │ │ │ │ │ -000000d4 00000503 R_ARM_REL32 00000004 .LC1 │ │ │ │ │ -000000d8 00000603 R_ARM_REL32 00000008 .LC2 │ │ │ │ │ -000000dc 00000403 R_ARM_REL32 00000000 .LC0 │ │ │ │ │ -000000e8 00001a1c R_ARM_CALL 00000000 fftwf_first_divisor │ │ │ │ │ -000000f4 00001b1c R_ARM_CALL 00000000 fftwf_isqrt │ │ │ │ │ -00000110 00001b1c R_ARM_CALL 00000000 fftwf_isqrt │ │ │ │ │ -00000120 00001c1c R_ARM_CALL 00000000 __aeabi_idivmod │ │ │ │ │ -00000138 00001c1c R_ARM_CALL 00000000 __aeabi_idivmod │ │ │ │ │ -00000158 00001d1c R_ARM_CALL 00000000 fftwf_plan_destroy_internal │ │ │ │ │ -00000160 00001d1c R_ARM_CALL 00000000 fftwf_plan_destroy_internal │ │ │ │ │ -0000016c 00001d1d R_ARM_JUMP24 00000000 fftwf_plan_destroy_internal │ │ │ │ │ -00000180 00001e1c R_ARM_CALL 00000000 fftwf_plan_awake │ │ │ │ │ -0000018c 00001e1c R_ARM_CALL 00000000 fftwf_plan_awake │ │ │ │ │ -0000019c 00001e1d R_ARM_JUMP24 00000000 fftwf_plan_awake │ │ │ │ │ -000001c8 00001f1c R_ARM_CALL 00000000 MPI_Comm_size │ │ │ │ │ -00000274 0000201c R_ARM_CALL 00000000 __aeabi_idiv │ │ │ │ │ -000002b0 0000211c R_ARM_CALL 00000000 fftwf_mpi_block │ │ │ │ │ -000002c4 0000211c R_ARM_CALL 00000000 fftwf_mpi_block │ │ │ │ │ -000002d0 0000221c R_ARM_CALL 00000000 fftwf_imax │ │ │ │ │ -000002e0 00001c1c R_ARM_CALL 00000000 __aeabi_idivmod │ │ │ │ │ -000002f8 0000211c R_ARM_CALL 00000000 fftwf_mpi_block │ │ │ │ │ -0000030c 0000211c R_ARM_CALL 00000000 fftwf_mpi_block │ │ │ │ │ -00000320 0000211c R_ARM_CALL 00000000 fftwf_mpi_block │ │ │ │ │ -00000338 0000211c R_ARM_CALL 00000000 fftwf_mpi_block │ │ │ │ │ -00000344 0000221c R_ARM_CALL 00000000 fftwf_imax │ │ │ │ │ -0000035c 0000211c R_ARM_CALL 00000000 fftwf_mpi_block │ │ │ │ │ -00000370 0000211c R_ARM_CALL 00000000 fftwf_mpi_block │ │ │ │ │ -0000037c 0000221c R_ARM_CALL 00000000 fftwf_imax │ │ │ │ │ -000003e0 0000201c R_ARM_CALL 00000000 __aeabi_idiv │ │ │ │ │ -000003f8 0000201c R_ARM_CALL 00000000 __aeabi_idiv │ │ │ │ │ -0000041c 00001f1c R_ARM_CALL 00000000 MPI_Comm_size │ │ │ │ │ -00000428 0000231c R_ARM_CALL 00000000 MPI_Comm_rank │ │ │ │ │ -00000434 0000201c R_ARM_CALL 00000000 __aeabi_idiv │ │ │ │ │ -00000450 0000211c R_ARM_CALL 00000000 fftwf_mpi_block │ │ │ │ │ -000004d8 0000241c R_ARM_CALL 00000000 fftwf_mktensor_5d │ │ │ │ │ -000004e4 0000251c R_ARM_CALL 00000000 fftwf_mkproblem_rdft_0_d │ │ │ │ │ -00000500 0000261c R_ARM_CALL 00000000 fftwf_mkplan_f_d │ │ │ │ │ -00000518 0000271c R_ARM_CALL 00000000 fftwf_mpi_any_true │ │ │ │ │ -00000550 0000201c R_ARM_CALL 00000000 __aeabi_idiv │ │ │ │ │ -00000568 0000211c R_ARM_CALL 00000000 fftwf_mpi_block │ │ │ │ │ -0000057c 0000201c R_ARM_CALL 00000000 __aeabi_idiv │ │ │ │ │ -00000590 0000281c R_ARM_CALL 00000000 MPI_Comm_split │ │ │ │ │ -000005e8 0000291c R_ARM_CALL 00000000 fftwf_mpi_mkproblem_transpose │ │ │ │ │ -000005f4 00002a1c R_ARM_CALL 00000000 fftwf_mkplan_d │ │ │ │ │ -0000060c 00002b1c R_ARM_CALL 00000000 MPI_Comm_free │ │ │ │ │ -00000628 0000271c R_ARM_CALL 00000000 fftwf_mpi_any_true │ │ │ │ │ -0000063c 00001c1c R_ARM_CALL 00000000 __aeabi_idivmod │ │ │ │ │ -00000650 0000211c R_ARM_CALL 00000000 fftwf_mpi_block │ │ │ │ │ -00000664 00001c1c R_ARM_CALL 00000000 __aeabi_idivmod │ │ │ │ │ -00000674 0000281c R_ARM_CALL 00000000 MPI_Comm_split │ │ │ │ │ -0000068c 00002b1c R_ARM_CALL 00000000 MPI_Comm_free │ │ │ │ │ -000006a4 0000271c R_ARM_CALL 00000000 fftwf_mpi_any_true │ │ │ │ │ -000006c4 00002c1c R_ARM_CALL 00000000 fftwf_mkplan_rdft │ │ │ │ │ -00000734 00002d1c R_ARM_CALL 00000000 fftwf_ops_add2 │ │ │ │ │ -00000748 00002d1c R_ARM_CALL 00000000 fftwf_ops_add2 │ │ │ │ │ -00000760 00001d1c R_ARM_CALL 00000000 fftwf_plan_destroy_internal │ │ │ │ │ -00000768 00001d1c R_ARM_CALL 00000000 fftwf_plan_destroy_internal │ │ │ │ │ -00000770 00001d1c R_ARM_CALL 00000000 fftwf_plan_destroy_internal │ │ │ │ │ -000007a4 00002e1c R_ARM_CALL 00000000 fftwf_mktensor_3d │ │ │ │ │ -000007b0 0000251c R_ARM_CALL 00000000 fftwf_mkproblem_rdft_0_d │ │ │ │ │ -000007cc 0000261c R_ARM_CALL 00000000 fftwf_mkplan_f_d │ │ │ │ │ -00000818 00002f1c R_ARM_CALL 00000000 fftwf_mktensor_4d │ │ │ │ │ -00000868 0000291c R_ARM_CALL 00000000 fftwf_mpi_mkproblem_transpose │ │ │ │ │ -00000874 00002a1c R_ARM_CALL 00000000 fftwf_mkplan_d │ │ │ │ │ -000008a0 0000201c R_ARM_CALL 00000000 __aeabi_idiv │ │ │ │ │ -000008b8 0000201c R_ARM_CALL 00000000 __aeabi_idiv │ │ │ │ │ -000008bc 0000301c R_ARM_CALL 00000000 fftwf_toobig │ │ │ │ │ -000008e0 00001403 R_ARM_REL32 00000000 .data.rel.ro │ │ │ │ │ -00000908 0000321c R_ARM_CALL 00000000 fftwf_mksolver │ │ │ │ │ -00000928 0000331c R_ARM_CALL 00000000 fftwf_solver_register │ │ │ │ │ -00000934 0000321c R_ARM_CALL 00000000 fftwf_mksolver │ │ │ │ │ -0000095c 0000331c R_ARM_CALL 00000000 fftwf_solver_register │ │ │ │ │ -00000974 00001703 R_ARM_REL32 00000000 .data.rel.ro.local │ │ │ │ │ -0000097c 00001003 R_ARM_REL32 0000003c .LC3 │ │ │ │ │ -00000984 00001103 R_ARM_REL32 00000044 .LC4 │ │ │ │ │ +00000104 00000503 R_ARM_REL32 00000004 .LC1 │ │ │ │ │ +00000108 00000603 R_ARM_REL32 00000008 .LC2 │ │ │ │ │ +0000010c 00000403 R_ARM_REL32 00000000 .LC0 │ │ │ │ │ +00000120 00001a1c R_ARM_CALL 00000000 fftwf_first_divisor │ │ │ │ │ +0000012c 00001b1c R_ARM_CALL 00000000 fftwf_isqrt │ │ │ │ │ +0000015c 00001b1c R_ARM_CALL 00000000 fftwf_isqrt │ │ │ │ │ +0000016c 00001c1c R_ARM_CALL 00000000 __aeabi_idivmod │ │ │ │ │ +00000184 00001c1c R_ARM_CALL 00000000 __aeabi_idivmod │ │ │ │ │ +000001b4 00001d1c R_ARM_CALL 00000000 fftwf_plan_destroy_internal │ │ │ │ │ +000001bc 00001d1c R_ARM_CALL 00000000 fftwf_plan_destroy_internal │ │ │ │ │ +000001d0 00001d1d R_ARM_JUMP24 00000000 fftwf_plan_destroy_internal │ │ │ │ │ +000001ec 00001e1c R_ARM_CALL 00000000 fftwf_plan_awake │ │ │ │ │ +000001f8 00001e1c R_ARM_CALL 00000000 fftwf_plan_awake │ │ │ │ │ +00000214 00001e1d R_ARM_JUMP24 00000000 fftwf_plan_awake │ │ │ │ │ +00000250 00001f1c R_ARM_CALL 00000000 MPI_Comm_size │ │ │ │ │ +00000310 0000201c R_ARM_CALL 00000000 __aeabi_idiv │ │ │ │ │ +0000034c 0000211c R_ARM_CALL 00000000 fftwf_mpi_block │ │ │ │ │ +00000360 0000211c R_ARM_CALL 00000000 fftwf_mpi_block │ │ │ │ │ +0000036c 0000221c R_ARM_CALL 00000000 fftwf_imax │ │ │ │ │ +0000037c 00001c1c R_ARM_CALL 00000000 __aeabi_idivmod │ │ │ │ │ +00000394 0000211c R_ARM_CALL 00000000 fftwf_mpi_block │ │ │ │ │ +000003a8 0000211c R_ARM_CALL 00000000 fftwf_mpi_block │ │ │ │ │ +000003bc 0000211c R_ARM_CALL 00000000 fftwf_mpi_block │ │ │ │ │ +000003d4 0000211c R_ARM_CALL 00000000 fftwf_mpi_block │ │ │ │ │ +000003e0 0000221c R_ARM_CALL 00000000 fftwf_imax │ │ │ │ │ +000003f8 0000211c R_ARM_CALL 00000000 fftwf_mpi_block │ │ │ │ │ +0000040c 0000211c R_ARM_CALL 00000000 fftwf_mpi_block │ │ │ │ │ +00000418 0000221c R_ARM_CALL 00000000 fftwf_imax │ │ │ │ │ +0000047c 0000201c R_ARM_CALL 00000000 __aeabi_idiv │ │ │ │ │ +00000494 0000201c R_ARM_CALL 00000000 __aeabi_idiv │ │ │ │ │ +000004b8 00001f1c R_ARM_CALL 00000000 MPI_Comm_size │ │ │ │ │ +000004c4 0000231c R_ARM_CALL 00000000 MPI_Comm_rank │ │ │ │ │ +000004d0 0000201c R_ARM_CALL 00000000 __aeabi_idiv │ │ │ │ │ +000004ec 0000211c R_ARM_CALL 00000000 fftwf_mpi_block │ │ │ │ │ +00000574 0000241c R_ARM_CALL 00000000 fftwf_mktensor_5d │ │ │ │ │ +00000580 0000251c R_ARM_CALL 00000000 fftwf_mkproblem_rdft_0_d │ │ │ │ │ +0000059c 0000261c R_ARM_CALL 00000000 fftwf_mkplan_f_d │ │ │ │ │ +000005b4 0000271c R_ARM_CALL 00000000 fftwf_mpi_any_true │ │ │ │ │ +000005ec 0000201c R_ARM_CALL 00000000 __aeabi_idiv │ │ │ │ │ +00000604 0000211c R_ARM_CALL 00000000 fftwf_mpi_block │ │ │ │ │ +00000618 0000201c R_ARM_CALL 00000000 __aeabi_idiv │ │ │ │ │ +0000062c 0000281c R_ARM_CALL 00000000 MPI_Comm_split │ │ │ │ │ +00000684 0000291c R_ARM_CALL 00000000 fftwf_mpi_mkproblem_transpose │ │ │ │ │ +00000690 00002a1c R_ARM_CALL 00000000 fftwf_mkplan_d │ │ │ │ │ +000006a8 00002b1c R_ARM_CALL 00000000 MPI_Comm_free │ │ │ │ │ +000006c4 0000271c R_ARM_CALL 00000000 fftwf_mpi_any_true │ │ │ │ │ +000006d8 00001c1c R_ARM_CALL 00000000 __aeabi_idivmod │ │ │ │ │ +000006ec 0000211c R_ARM_CALL 00000000 fftwf_mpi_block │ │ │ │ │ +00000700 00001c1c R_ARM_CALL 00000000 __aeabi_idivmod │ │ │ │ │ +00000710 0000281c R_ARM_CALL 00000000 MPI_Comm_split │ │ │ │ │ +00000728 00002b1c R_ARM_CALL 00000000 MPI_Comm_free │ │ │ │ │ +00000740 0000271c R_ARM_CALL 00000000 fftwf_mpi_any_true │ │ │ │ │ +00000760 00002c1c R_ARM_CALL 00000000 fftwf_mkplan_rdft │ │ │ │ │ +000007d8 00002d1c R_ARM_CALL 00000000 fftwf_ops_add2 │ │ │ │ │ +000007ec 00002d1c R_ARM_CALL 00000000 fftwf_ops_add2 │ │ │ │ │ +00000800 00001d1c R_ARM_CALL 00000000 fftwf_plan_destroy_internal │ │ │ │ │ +00000808 00001d1c R_ARM_CALL 00000000 fftwf_plan_destroy_internal │ │ │ │ │ +00000810 00001d1c R_ARM_CALL 00000000 fftwf_plan_destroy_internal │ │ │ │ │ +00000844 00002e1c R_ARM_CALL 00000000 fftwf_mktensor_3d │ │ │ │ │ +00000850 0000251c R_ARM_CALL 00000000 fftwf_mkproblem_rdft_0_d │ │ │ │ │ +0000086c 0000261c R_ARM_CALL 00000000 fftwf_mkplan_f_d │ │ │ │ │ +000008b8 00002f1c R_ARM_CALL 00000000 fftwf_mktensor_4d │ │ │ │ │ +00000908 0000291c R_ARM_CALL 00000000 fftwf_mpi_mkproblem_transpose │ │ │ │ │ +00000914 00002a1c R_ARM_CALL 00000000 fftwf_mkplan_d │ │ │ │ │ +00000940 0000201c R_ARM_CALL 00000000 __aeabi_idiv │ │ │ │ │ +00000958 0000201c R_ARM_CALL 00000000 __aeabi_idiv │ │ │ │ │ +0000095c 0000301c R_ARM_CALL 00000000 fftwf_toobig │ │ │ │ │ +00000980 00001403 R_ARM_REL32 00000000 .data.rel.ro │ │ │ │ │ +000009b4 0000321c R_ARM_CALL 00000000 fftwf_mksolver │ │ │ │ │ +000009d4 0000331c R_ARM_CALL 00000000 fftwf_solver_register │ │ │ │ │ +000009e0 0000321c R_ARM_CALL 00000000 fftwf_mksolver │ │ │ │ │ +00000a08 0000331c R_ARM_CALL 00000000 fftwf_solver_register │ │ │ │ │ +00000a30 00001703 R_ARM_REL32 00000000 .data.rel.ro.local │ │ │ │ │ +00000a38 00001003 R_ARM_REL32 0000003c .LC3 │ │ │ │ │ +00000a40 00001103 R_ARM_REL32 00000044 .LC4 │ │ │ │ │ │ │ │ │ │ -Relocation section '.rel.data.rel.ro' at offset 0x1248 contains 4 entries: │ │ │ │ │ +Relocation section '.rel.data.rel.ro' at offset 0x1304 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 00000170 awake │ │ │ │ │ -00000008 00000702 R_ARM_ABS32 0000006c print │ │ │ │ │ -0000000c 00000c02 R_ARM_ABS32 0000014c destroy │ │ │ │ │ +00000004 00000d02 R_ARM_ABS32 000001d4 awake │ │ │ │ │ +00000008 00000702 R_ARM_ABS32 00000090 print │ │ │ │ │ +0000000c 00000c02 R_ARM_ABS32 000001a4 destroy │ │ │ │ │ │ │ │ │ │ -Relocation section '.rel.data.rel.ro.local' at offset 0x1268 contains 1 entry: │ │ │ │ │ +Relocation section '.rel.data.rel.ro.local' at offset 0x1324 contains 1 entry: │ │ │ │ │ Offset Info Type Sym. Value Symbol's Name │ │ │ │ │ -00000004 00000e02 R_ARM_ABS32 000001a0 mkplan │ │ │ │ │ +00000004 00000e02 R_ARM_ABS32 00000218 mkplan │ │ │ │ ├── objdump --line-numbers --disassemble --demangle --reloc --no-show-raw-insn --section=.text {} │ │ │ │ │ @@ -1,450 +1,489 @@ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ Disassembly of section .text: │ │ │ │ │ │ │ │ │ │ 00000000 : │ │ │ │ │ apply(): │ │ │ │ │ - push {r4, r5, r6, lr} │ │ │ │ │ + strd r4, [sp, #-16]! │ │ │ │ │ mov r4, r0 │ │ │ │ │ + mov r5, r2 │ │ │ │ │ ldr r0, [r0, #64] @ 0x40 │ │ │ │ │ + str r6, [sp, #8] │ │ │ │ │ mov r6, r1 │ │ │ │ │ + str lr, [sp, #12] │ │ │ │ │ cmp r0, #0 │ │ │ │ │ - mov r5, r2 │ │ │ │ │ - beq 24 │ │ │ │ │ + beq 2c │ │ │ │ │ ldr r3, [r0, #56] @ 0x38 │ │ │ │ │ blx r3 │ │ │ │ │ - ldr r3, [r4, #76] @ 0x4c │ │ │ │ │ ldr r0, [r4, #68] @ 0x44 │ │ │ │ │ + ldr r3, [r4, #76] @ 0x4c │ │ │ │ │ cmp r3, #0 │ │ │ │ │ movne r6, r5 │ │ │ │ │ cmp r0, #0 │ │ │ │ │ - beq 4c │ │ │ │ │ + beq 54 │ │ │ │ │ ldr r3, [r0, #56] @ 0x38 │ │ │ │ │ mov r2, r6 │ │ │ │ │ mov r1, r5 │ │ │ │ │ blx r3 │ │ │ │ │ ldr r0, [r4, #72] @ 0x48 │ │ │ │ │ cmp r0, #0 │ │ │ │ │ - popeq {r4, r5, r6, pc} │ │ │ │ │ + beq 80 │ │ │ │ │ + ldr lr, [sp, #12] │ │ │ │ │ mov r2, r5 │ │ │ │ │ mov r1, r6 │ │ │ │ │ + ldrd r4, [sp] │ │ │ │ │ + ldr r6, [sp, #8] │ │ │ │ │ + add sp, sp, #16 │ │ │ │ │ ldr r3, [r0, #56] @ 0x38 │ │ │ │ │ - pop {r4, r5, r6, lr} │ │ │ │ │ bx r3 │ │ │ │ │ + ldrd r4, [sp] │ │ │ │ │ + ldr r6, [sp, #8] │ │ │ │ │ + add sp, sp, #12 │ │ │ │ │ + pop {pc} @ (ldr pc, [sp], #4) │ │ │ │ │ │ │ │ │ │ -0000006c : │ │ │ │ │ +00000090 : │ │ │ │ │ print(): │ │ │ │ │ mov ip, r0 │ │ │ │ │ - push {r4, lr} │ │ │ │ │ mov r0, r1 │ │ │ │ │ + str r4, [sp, #-8]! │ │ │ │ │ ldr r4, [r1] │ │ │ │ │ + str lr, [sp, #4] │ │ │ │ │ + sub sp, sp, #16 │ │ │ │ │ ldr r1, [ip, #76] @ 0x4c │ │ │ │ │ + ldr r3, [ip, #80] @ 0x50 │ │ │ │ │ ldr r2, [ip, #84] @ 0x54 │ │ │ │ │ cmp r1, #2 │ │ │ │ │ - ldr r3, [ip, #80] @ 0x50 │ │ │ │ │ - sub sp, sp, #16 │ │ │ │ │ - beq c8 │ │ │ │ │ - ldr r1, [pc, #56] @ d4 │ │ │ │ │ + beq f8 │ │ │ │ │ + ldr r1, [pc, #64] @ 104 │ │ │ │ │ add r1, pc, r1 │ │ │ │ │ ldr lr, [ip, #72] @ 0x48 │ │ │ │ │ str lr, [sp, #12] │ │ │ │ │ ldr lr, [ip, #68] @ 0x44 │ │ │ │ │ str lr, [sp, #8] │ │ │ │ │ ldr ip, [ip, #64] @ 0x40 │ │ │ │ │ stm sp, {r1, ip} │ │ │ │ │ - ldr r1, [pc, #28] @ d8 │ │ │ │ │ + ldr r1, [pc, #36] @ 108 │ │ │ │ │ add r1, pc, r1 │ │ │ │ │ blx r4 │ │ │ │ │ add sp, sp, #16 │ │ │ │ │ - pop {r4, pc} │ │ │ │ │ - ldr r1, [pc, #12] @ dc │ │ │ │ │ + ldr r4, [sp] │ │ │ │ │ + add sp, sp, #4 │ │ │ │ │ + pop {pc} @ (ldr pc, [sp], #4) │ │ │ │ │ + ldr r1, [pc, #12] @ 10c │ │ │ │ │ add r1, pc, r1 │ │ │ │ │ - b 9c │ │ │ │ │ - .word 0x00000034 │ │ │ │ │ + b c4 │ │ │ │ │ + .word 0x0000003c │ │ │ │ │ R_ARM_REL32 .LC1 │ │ │ │ │ - .word 0x00000018 │ │ │ │ │ + .word 0x00000020 │ │ │ │ │ R_ARM_REL32 .LC2 │ │ │ │ │ .word 0x00000008 │ │ │ │ │ R_ARM_REL32 .LC0 │ │ │ │ │ │ │ │ │ │ -000000e0 : │ │ │ │ │ +00000110 : │ │ │ │ │ radix_first(): │ │ │ │ │ - push {r4, r5, r6, lr} │ │ │ │ │ + strd r4, [sp, #-16]! │ │ │ │ │ mov r5, r0 │ │ │ │ │ + str r6, [sp, #8] │ │ │ │ │ + str lr, [sp, #12] │ │ │ │ │ bl 0 │ │ │ │ │ R_ARM_CALL fftwf_first_divisor │ │ │ │ │ mov r4, r0 │ │ │ │ │ mov r0, r5 │ │ │ │ │ bl 0 │ │ │ │ │ R_ARM_CALL fftwf_isqrt │ │ │ │ │ cmp r0, r4 │ │ │ │ │ + ldr r6, [sp, #8] │ │ │ │ │ movgt r0, r4 │ │ │ │ │ movle r0, #0 │ │ │ │ │ - pop {r4, r5, r6, pc} │ │ │ │ │ + ldrd r4, [sp] │ │ │ │ │ + add sp, sp, #12 │ │ │ │ │ + pop {pc} @ (ldr pc, [sp], #4) │ │ │ │ │ │ │ │ │ │ -00000108 : │ │ │ │ │ +0000014c : │ │ │ │ │ radix_sqrt(): │ │ │ │ │ - push {r4, r5, r6, lr} │ │ │ │ │ + strd r4, [sp, #-16]! │ │ │ │ │ mov r5, r0 │ │ │ │ │ + str r6, [sp, #8] │ │ │ │ │ + str lr, [sp, #12] │ │ │ │ │ bl 0 │ │ │ │ │ R_ARM_CALL fftwf_isqrt │ │ │ │ │ mov r1, r0 │ │ │ │ │ mov r4, r0 │ │ │ │ │ mov r0, r5 │ │ │ │ │ bl 0 <__aeabi_idivmod> │ │ │ │ │ R_ARM_CALL __aeabi_idivmod │ │ │ │ │ cmp r1, #0 │ │ │ │ │ - beq 144 │ │ │ │ │ + beq 190 │ │ │ │ │ add r4, r4, #1 │ │ │ │ │ - mov r1, r4 │ │ │ │ │ mov r0, r5 │ │ │ │ │ + mov r1, r4 │ │ │ │ │ bl 0 <__aeabi_idivmod> │ │ │ │ │ R_ARM_CALL __aeabi_idivmod │ │ │ │ │ cmp r1, #0 │ │ │ │ │ - bne 12c │ │ │ │ │ + bne 178 │ │ │ │ │ + ldr r6, [sp, #8] │ │ │ │ │ mov r0, r4 │ │ │ │ │ - pop {r4, r5, r6, pc} │ │ │ │ │ + ldrd r4, [sp] │ │ │ │ │ + add sp, sp, #12 │ │ │ │ │ + pop {pc} @ (ldr pc, [sp], #4) │ │ │ │ │ │ │ │ │ │ -0000014c : │ │ │ │ │ +000001a4 : │ │ │ │ │ destroy(): │ │ │ │ │ - push {r4, lr} │ │ │ │ │ + str r4, [sp, #-8]! │ │ │ │ │ mov r4, r0 │ │ │ │ │ ldr r0, [r0, #72] @ 0x48 │ │ │ │ │ + str lr, [sp, #4] │ │ │ │ │ bl 0 │ │ │ │ │ R_ARM_CALL fftwf_plan_destroy_internal │ │ │ │ │ ldr r0, [r4, #68] @ 0x44 │ │ │ │ │ bl 0 │ │ │ │ │ R_ARM_CALL fftwf_plan_destroy_internal │ │ │ │ │ + ldr lr, [sp, #4] │ │ │ │ │ ldr r0, [r4, #64] @ 0x40 │ │ │ │ │ - pop {r4, lr} │ │ │ │ │ + ldr r4, [sp] │ │ │ │ │ + add sp, sp, #8 │ │ │ │ │ b 0 │ │ │ │ │ R_ARM_JUMP24 fftwf_plan_destroy_internal │ │ │ │ │ │ │ │ │ │ -00000170 : │ │ │ │ │ +000001d4 : │ │ │ │ │ awake(): │ │ │ │ │ - push {r4, r5, r6, lr} │ │ │ │ │ + strd r4, [sp, #-16]! │ │ │ │ │ mov r4, r0 │ │ │ │ │ mov r5, r1 │ │ │ │ │ ldr r0, [r0, #64] @ 0x40 │ │ │ │ │ + str r6, [sp, #8] │ │ │ │ │ + str lr, [sp, #12] │ │ │ │ │ bl 0 │ │ │ │ │ R_ARM_CALL fftwf_plan_awake │ │ │ │ │ ldr r0, [r4, #68] @ 0x44 │ │ │ │ │ mov r1, r5 │ │ │ │ │ bl 0 │ │ │ │ │ R_ARM_CALL fftwf_plan_awake │ │ │ │ │ - ldr r0, [r4, #72] @ 0x48 │ │ │ │ │ + ldr r6, [sp, #8] │ │ │ │ │ mov r1, r5 │ │ │ │ │ - pop {r4, r5, r6, lr} │ │ │ │ │ + ldr lr, [sp, #12] │ │ │ │ │ + ldr r0, [r4, #72] @ 0x48 │ │ │ │ │ + ldrd r4, [sp] │ │ │ │ │ + add sp, sp, #16 │ │ │ │ │ b 0 │ │ │ │ │ R_ARM_JUMP24 fftwf_plan_awake │ │ │ │ │ │ │ │ │ │ -000001a0 : │ │ │ │ │ +00000218 : │ │ │ │ │ mkplan(): │ │ │ │ │ - push {r4, r5, r6, r7, r8, r9, sl, fp, lr} │ │ │ │ │ - sub sp, sp, #116 @ 0x74 │ │ │ │ │ + strd r4, [sp, #-36]! @ 0xffffffdc │ │ │ │ │ mov r4, r1 │ │ │ │ │ + strd r6, [sp, #8] │ │ │ │ │ + strd r8, [sp, #16] │ │ │ │ │ + strd sl, [sp, #24] │ │ │ │ │ + str lr, [sp, #32] │ │ │ │ │ + sub sp, sp, #116 @ 0x74 │ │ │ │ │ + str r1, [sp, #52] @ 0x34 │ │ │ │ │ str r2, [sp, #60] @ 0x3c │ │ │ │ │ add r2, sp, #108 @ 0x6c │ │ │ │ │ - str r0, [sp, #64] @ 0x40 │ │ │ │ │ - str r1, [sp, #52] @ 0x34 │ │ │ │ │ - ldr r0, [r4, #36] @ 0x24 │ │ │ │ │ mov r1, r2 │ │ │ │ │ str r2, [sp, #56] @ 0x38 │ │ │ │ │ + str r0, [sp, #64] @ 0x40 │ │ │ │ │ + ldr r0, [r4, #36] @ 0x24 │ │ │ │ │ bl 0 │ │ │ │ │ R_ARM_CALL MPI_Comm_size │ │ │ │ │ ldr r0, [sp, #108] @ 0x6c │ │ │ │ │ ldr r3, [r4, #32] │ │ │ │ │ ldr r2, [r4, #12] │ │ │ │ │ mul r3, r0, r3 │ │ │ │ │ cmp r3, r2 │ │ │ │ │ - beq 1f0 │ │ │ │ │ + beq 28c │ │ │ │ │ mov r0, #0 │ │ │ │ │ add sp, sp, #116 @ 0x74 │ │ │ │ │ - pop {r4, r5, r6, r7, r8, r9, sl, fp, pc} │ │ │ │ │ + ldrd r4, [sp] │ │ │ │ │ + ldrd r6, [sp, #8] │ │ │ │ │ + ldrd r8, [sp, #16] │ │ │ │ │ + ldrd sl, [sp, #24] │ │ │ │ │ + add sp, sp, #32 │ │ │ │ │ + pop {pc} @ (ldr pc, [sp], #4) │ │ │ │ │ ldr r3, [sp, #64] @ 0x40 │ │ │ │ │ ldr r3, [r3, #16] │ │ │ │ │ cmp r3, #0 │ │ │ │ │ - beq 224 │ │ │ │ │ + beq 2c0 │ │ │ │ │ ldr r3, [sp, #60] @ 0x3c │ │ │ │ │ ldr r3, [r3, #164] @ 0xa4 │ │ │ │ │ tst r3, #4096 @ 0x1000 │ │ │ │ │ - bne 1e4 │ │ │ │ │ + bne 26c │ │ │ │ │ ldr r3, [sp, #52] @ 0x34 │ │ │ │ │ ldr r2, [r3, #16] │ │ │ │ │ ldr r3, [r3, #20] │ │ │ │ │ cmp r2, r3 │ │ │ │ │ - beq 1e4 │ │ │ │ │ + beq 26c │ │ │ │ │ ldr r3, [sp, #64] @ 0x40 │ │ │ │ │ ldr r3, [r3, #8] │ │ │ │ │ blx r3 │ │ │ │ │ - subs r6, r0, #0 │ │ │ │ │ - beq 1e4 │ │ │ │ │ + subs r5, r0, #0 │ │ │ │ │ + beq 26c │ │ │ │ │ ldr r3, [sp, #108] @ 0x6c │ │ │ │ │ - cmp r6, r3 │ │ │ │ │ - bge 1e4 │ │ │ │ │ - cmp r6, #1 │ │ │ │ │ - ble 1e4 │ │ │ │ │ + cmp r5, r3 │ │ │ │ │ + bge 26c │ │ │ │ │ + cmp r5, #1 │ │ │ │ │ + ble 26c │ │ │ │ │ ldr r2, [sp, #52] @ 0x34 │ │ │ │ │ mov r0, r3 │ │ │ │ │ - ldr r4, [r2, #28] │ │ │ │ │ - ldr r5, [r2, #32] │ │ │ │ │ - mov r1, r6 │ │ │ │ │ + mov r1, r5 │ │ │ │ │ str r3, [sp, #72] @ 0x48 │ │ │ │ │ ldr r9, [r2, #8] │ │ │ │ │ + ldr r4, [r2, #28] │ │ │ │ │ + ldr r6, [r2, #32] │ │ │ │ │ ldr r7, [r2, #12] │ │ │ │ │ str r4, [sp, #68] @ 0x44 │ │ │ │ │ - str r5, [sp, #76] @ 0x4c │ │ │ │ │ + str r6, [sp, #76] @ 0x4c │ │ │ │ │ bl 0 <__aeabi_idiv> │ │ │ │ │ R_ARM_CALL __aeabi_idiv │ │ │ │ │ ldr r3, [sp, #72] @ 0x48 │ │ │ │ │ cmp r3, #0 │ │ │ │ │ - ble 39c │ │ │ │ │ - mul r4, r6, r4 │ │ │ │ │ - mul r5, r0, r5 │ │ │ │ │ + ble 438 │ │ │ │ │ + mul r4, r5, r4 │ │ │ │ │ mov r8, #0 │ │ │ │ │ mov fp, r7 │ │ │ │ │ + mul r6, r0, r6 │ │ │ │ │ + str r6, [sp, #72] @ 0x48 │ │ │ │ │ str r4, [sp, #80] @ 0x50 │ │ │ │ │ - str r5, [sp, #72] @ 0x48 │ │ │ │ │ - str r6, [sp, #88] @ 0x58 │ │ │ │ │ + str r5, [sp, #88] @ 0x58 │ │ │ │ │ str r3, [sp, #92] @ 0x5c │ │ │ │ │ ldr r1, [sp, #68] @ 0x44 │ │ │ │ │ mov r2, r8 │ │ │ │ │ mov r0, r9 │ │ │ │ │ bl 0 │ │ │ │ │ R_ARM_CALL fftwf_mpi_block │ │ │ │ │ - mov r2, r8 │ │ │ │ │ - ldr r1, [sp, #76] @ 0x4c │ │ │ │ │ mul r4, r0, fp │ │ │ │ │ + ldr r1, [sp, #76] @ 0x4c │ │ │ │ │ + mov r2, r8 │ │ │ │ │ mov r0, fp │ │ │ │ │ bl 0 │ │ │ │ │ R_ARM_CALL fftwf_mpi_block │ │ │ │ │ mul r1, r0, r9 │ │ │ │ │ mov r0, r4 │ │ │ │ │ bl 0 │ │ │ │ │ R_ARM_CALL fftwf_imax │ │ │ │ │ ldr r1, [sp, #88] @ 0x58 │ │ │ │ │ mov r7, r0 │ │ │ │ │ mov r0, r8 │ │ │ │ │ bl 0 <__aeabi_idivmod> │ │ │ │ │ R_ARM_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_CALL fftwf_mpi_block │ │ │ │ │ ldr r1, [sp, #72] @ 0x48 │ │ │ │ │ - mov r2, r4 │ │ │ │ │ mov r6, r0 │ │ │ │ │ + mov r2, r4 │ │ │ │ │ mov r0, fp │ │ │ │ │ bl 0 │ │ │ │ │ R_ARM_CALL fftwf_mpi_block │ │ │ │ │ ldr r1, [sp, #68] @ 0x44 │ │ │ │ │ mov r2, r4 │ │ │ │ │ mov sl, r0 │ │ │ │ │ mov r0, r6 │ │ │ │ │ bl 0 │ │ │ │ │ R_ARM_CALL fftwf_mpi_block │ │ │ │ │ + mul r3, r0, fp │ │ │ │ │ ldr r1, [sp, #72] @ 0x48 │ │ │ │ │ mov r2, r4 │ │ │ │ │ - mul r3, r0, fp │ │ │ │ │ mov r0, fp │ │ │ │ │ str r3, [sp, #84] @ 0x54 │ │ │ │ │ bl 0 │ │ │ │ │ R_ARM_CALL fftwf_mpi_block │ │ │ │ │ mul r1, r0, r6 │ │ │ │ │ ldr r0, [sp, #84] @ 0x54 │ │ │ │ │ bl 0 │ │ │ │ │ R_ARM_CALL fftwf_imax │ │ │ │ │ cmp r0, r7 │ │ │ │ │ - bgt 1e4 │ │ │ │ │ + bgt 26c │ │ │ │ │ ldr r1, [sp, #80] @ 0x50 │ │ │ │ │ mov r2, r5 │ │ │ │ │ mov r0, r9 │ │ │ │ │ bl 0 │ │ │ │ │ R_ARM_CALL fftwf_mpi_block │ │ │ │ │ + mul r4, r0, sl │ │ │ │ │ ldr r1, [sp, #76] @ 0x4c │ │ │ │ │ mov r2, r5 │ │ │ │ │ - mul r4, r0, sl │ │ │ │ │ mov r0, sl │ │ │ │ │ bl 0 │ │ │ │ │ R_ARM_CALL fftwf_mpi_block │ │ │ │ │ mul r1, r0, r9 │ │ │ │ │ mov r0, r4 │ │ │ │ │ bl 0 │ │ │ │ │ R_ARM_CALL fftwf_imax │ │ │ │ │ cmp r7, r0 │ │ │ │ │ - blt 1e4 │ │ │ │ │ + blt 26c │ │ │ │ │ ldr r3, [sp, #92] @ 0x5c │ │ │ │ │ add r8, r8, #1 │ │ │ │ │ cmp r3, r8 │ │ │ │ │ - bne 2a4 │ │ │ │ │ - ldr r6, [sp, #88] @ 0x58 │ │ │ │ │ + bne 340 │ │ │ │ │ + ldr r5, [sp, #88] @ 0x58 │ │ │ │ │ ldr r3, [sp, #60] @ 0x3c │ │ │ │ │ - ldr r5, [pc, #1328] @ 8d8 │ │ │ │ │ + ldr r6, [pc, #1332] @ 978 │ │ │ │ │ ldr r2, [r3, #164] @ 0xa4 │ │ │ │ │ - and r2, r2, r5 │ │ │ │ │ + and r2, r2, r6 │ │ │ │ │ lsr r3, r2, #14 │ │ │ │ │ and r3, r3, #1 │ │ │ │ │ eor r3, r3, #1 │ │ │ │ │ - cmp r6, #8 │ │ │ │ │ + cmp r5, #8 │ │ │ │ │ orrgt r3, r3, #1 │ │ │ │ │ cmp r3, #0 │ │ │ │ │ - beq 894 │ │ │ │ │ + beq 934 │ │ │ │ │ tst r2, #8 │ │ │ │ │ - beq 404 │ │ │ │ │ + beq 4a0 │ │ │ │ │ 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_CALL __aeabi_idiv │ │ │ │ │ ldr r3, [r4, #8] │ │ │ │ │ - mov r1, r5 │ │ │ │ │ + mov r1, r6 │ │ │ │ │ mul r3, r0, r3 │ │ │ │ │ ldr r0, [r4, #4] │ │ │ │ │ mul r0, r3, r0 │ │ │ │ │ bl 0 <__aeabi_idiv> │ │ │ │ │ R_ARM_CALL __aeabi_idiv │ │ │ │ │ cmp r0, #2048 @ 0x800 │ │ │ │ │ - bgt 1e4 │ │ │ │ │ + bgt 26c │ │ │ │ │ ldr r4, [sp, #52] @ 0x34 │ │ │ │ │ ldr r8, [r4, #24] │ │ │ │ │ bics r8, r8, #12 │ │ │ │ │ - bne 1e4 │ │ │ │ │ - add r1, sp, #104 @ 0x68 │ │ │ │ │ + bne 26c │ │ │ │ │ ldr r0, [r4, #36] @ 0x24 │ │ │ │ │ + add r1, sp, #104 @ 0x68 │ │ │ │ │ bl 0 │ │ │ │ │ R_ARM_CALL MPI_Comm_size │ │ │ │ │ - add r1, sp, #100 @ 0x64 │ │ │ │ │ ldr r0, [r4, #36] @ 0x24 │ │ │ │ │ + add r1, sp, #100 @ 0x64 │ │ │ │ │ bl 0 │ │ │ │ │ R_ARM_CALL MPI_Comm_rank │ │ │ │ │ ldr r0, [sp, #104] @ 0x68 │ │ │ │ │ - mov r1, r6 │ │ │ │ │ + mov r1, r5 │ │ │ │ │ bl 0 <__aeabi_idiv> │ │ │ │ │ R_ARM_CALL __aeabi_idiv │ │ │ │ │ ldr r2, [sp, #100] @ 0x64 │ │ │ │ │ + mov r6, r0 │ │ │ │ │ + ldr r0, [r4, #8] │ │ │ │ │ ldr r1, [r4, #28] │ │ │ │ │ ldr r9, [r4, #16] │ │ │ │ │ ldr fp, [r4, #20] │ │ │ │ │ - mov r7, r0 │ │ │ │ │ - ldr r0, [r4, #8] │ │ │ │ │ bl 0 │ │ │ │ │ R_ARM_CALL fftwf_mpi_block │ │ │ │ │ - ldr r5, [r4, #24] │ │ │ │ │ ldr r2, [r4, #4] │ │ │ │ │ - ands r5, r5, #4 │ │ │ │ │ - ldr ip, [r4, #32] │ │ │ │ │ mov r3, r0 │ │ │ │ │ - bne 778 │ │ │ │ │ + ldr r7, [r4, #24] │ │ │ │ │ + ldr ip, [r4, #32] │ │ │ │ │ + ands r7, r7, #4 │ │ │ │ │ + bne 818 │ │ │ │ │ cmp r9, fp │ │ │ │ │ mul lr, ip, r2 │ │ │ │ │ - beq 7d8 │ │ │ │ │ + beq 878 │ │ │ │ │ mov r8, #1 │ │ │ │ │ - str r8, [sp, #40] @ 0x28 │ │ │ │ │ - str r8, [sp, #36] @ 0x24 │ │ │ │ │ - mul r8, r2, r0 │ │ │ │ │ - mul r1, r6, r7 │ │ │ │ │ - str r8, [sp, #28] │ │ │ │ │ - mul r8, ip, r7 │ │ │ │ │ - mul r1, ip, r1 │ │ │ │ │ - mul r8, r0, r8 │ │ │ │ │ + mul r1, r5, r6 │ │ │ │ │ + str r5, [sp, #8] │ │ │ │ │ mul r3, ip, r3 │ │ │ │ │ str ip, [sp, #20] │ │ │ │ │ - mul ip, r6, ip │ │ │ │ │ + str lr, [sp, #12] │ │ │ │ │ + str r8, [sp, #36] @ 0x24 │ │ │ │ │ + mul r1, ip, r1 │ │ │ │ │ + str r8, [sp, #40] @ 0x28 │ │ │ │ │ + mul r8, r2, r0 │ │ │ │ │ mul r3, r2, r3 │ │ │ │ │ - mul r8, r2, r8 │ │ │ │ │ - mul ip, r2, ip │ │ │ │ │ mul r1, r2, r1 │ │ │ │ │ str r2, [sp, #32] │ │ │ │ │ - str r2, [sp, #24] │ │ │ │ │ + str r8, [sp, #28] │ │ │ │ │ + mul r8, ip, r6 │ │ │ │ │ + mul ip, r5, ip │ │ │ │ │ str r3, [sp, #4] │ │ │ │ │ - str r8, [sp, #16] │ │ │ │ │ - mov r3, r7 │ │ │ │ │ - str lr, [sp, #12] │ │ │ │ │ - str r6, [sp, #8] │ │ │ │ │ + mov r3, r6 │ │ │ │ │ + str r2, [sp, #24] │ │ │ │ │ + mul r8, r0, r8 │ │ │ │ │ + mul ip, r2, ip │ │ │ │ │ + mul r8, r2, r8 │ │ │ │ │ str ip, [sp] │ │ │ │ │ + str r8, [sp, #16] │ │ │ │ │ bl 0 │ │ │ │ │ R_ARM_CALL fftwf_mktensor_5d │ │ │ │ │ mov r2, fp │ │ │ │ │ mov r1, r9 │ │ │ │ │ bl 0 │ │ │ │ │ R_ARM_CALL fftwf_mkproblem_rdft_0_d │ │ │ │ │ mov r3, #8 │ │ │ │ │ - mov r2, r5 │ │ │ │ │ - str r3, [sp] │ │ │ │ │ - mov r3, r5 │ │ │ │ │ mov r1, r0 │ │ │ │ │ ldr r0, [sp, #60] @ 0x3c │ │ │ │ │ + mov r2, r7 │ │ │ │ │ + str r3, [sp] │ │ │ │ │ + mov r3, r7 │ │ │ │ │ bl 0 │ │ │ │ │ R_ARM_CALL fftwf_mkplan_f_d │ │ │ │ │ - mov r5, r0 │ │ │ │ │ + mov r7, r0 │ │ │ │ │ ldr r3, [sp, #52] @ 0x34 │ │ │ │ │ - clz r0, r5 │ │ │ │ │ - ldr r1, [r3, #36] @ 0x24 │ │ │ │ │ + clz r0, r7 │ │ │ │ │ lsr r0, r0, #5 │ │ │ │ │ + ldr r1, [r3, #36] @ 0x24 │ │ │ │ │ bl 0 │ │ │ │ │ R_ARM_CALL fftwf_mpi_any_true │ │ │ │ │ cmp r0, #0 │ │ │ │ │ - bne 888 │ │ │ │ │ + bne 928 │ │ │ │ │ ldr r3, [sp, #64] @ 0x40 │ │ │ │ │ ldr r3, [r3, #16] │ │ │ │ │ cmp r3, #0 │ │ │ │ │ movne r9, fp │ │ │ │ │ - bne 548 │ │ │ │ │ + bne 5e4 │ │ │ │ │ ldr r3, [sp, #60] @ 0x3c │ │ │ │ │ ldr r3, [r3, #164] @ 0xa4 │ │ │ │ │ tst r3, #4096 @ 0x1000 │ │ │ │ │ movne r9, fp │ │ │ │ │ ldr r0, [sp, #100] @ 0x64 │ │ │ │ │ - mov r1, r6 │ │ │ │ │ + mov r1, r5 │ │ │ │ │ bl 0 <__aeabi_idiv> │ │ │ │ │ R_ARM_CALL __aeabi_idiv │ │ │ │ │ ldr sl, [sp, #52] @ 0x34 │ │ │ │ │ - ldr r1, [sl, #28] │ │ │ │ │ - mul r1, r6, r1 │ │ │ │ │ mov r2, r0 │ │ │ │ │ ldr r0, [sl, #8] │ │ │ │ │ + ldr r1, [sl, #28] │ │ │ │ │ + mul r1, r5, r1 │ │ │ │ │ bl 0 │ │ │ │ │ R_ARM_CALL fftwf_mpi_block │ │ │ │ │ ldr r4, [sp, #100] @ 0x64 │ │ │ │ │ - mov r1, r6 │ │ │ │ │ mov r8, r0 │ │ │ │ │ + mov r1, r5 │ │ │ │ │ mov r0, r4 │ │ │ │ │ bl 0 <__aeabi_idiv> │ │ │ │ │ R_ARM_CALL __aeabi_idiv │ │ │ │ │ ldr r3, [sp, #56] @ 0x38 │ │ │ │ │ - mov r2, r4 │ │ │ │ │ mov r1, r0 │ │ │ │ │ + mov r2, r4 │ │ │ │ │ ldr r0, [sl, #36] @ 0x24 │ │ │ │ │ bl 0 │ │ │ │ │ R_ARM_CALL MPI_Comm_split │ │ │ │ │ cmp r8, #0 │ │ │ │ │ moveq r3, #1 │ │ │ │ │ moveq sl, r8 │ │ │ │ │ - beq 604 │ │ │ │ │ - ldr lr, [sl, #20] │ │ │ │ │ + beq 6a0 │ │ │ │ │ + ldr ip, [sp, #108] @ 0x6c │ │ │ │ │ ldr r4, [sl, #16] │ │ │ │ │ + ldr lr, [sl, #20] │ │ │ │ │ ldr r3, [sl, #32] │ │ │ │ │ + ldr r0, [sl, #28] │ │ │ │ │ cmp r4, lr │ │ │ │ │ ldreq lr, [sp, #52] @ 0x34 │ │ │ │ │ - mul r3, r7, r3 │ │ │ │ │ - ldreq lr, [lr, #24] │ │ │ │ │ - ldr r0, [sl, #28] │ │ │ │ │ - ldr ip, [sp, #108] @ 0x6c │ │ │ │ │ - andeq lr, lr, #4 │ │ │ │ │ movne lr, #4 │ │ │ │ │ - ldr r1, [sl, #12] │ │ │ │ │ + mul r3, r6, r3 │ │ │ │ │ ldr r2, [sl, #4] │ │ │ │ │ - stmib sp, {r0, r3, ip, lr} │ │ │ │ │ + ldr r1, [sl, #12] │ │ │ │ │ + ldreq lr, [lr, #24] │ │ │ │ │ str r9, [sp] │ │ │ │ │ + andeq lr, lr, #4 │ │ │ │ │ + stmib sp, {r0, r3, ip, lr} │ │ │ │ │ mov r3, fp │ │ │ │ │ mov r0, r8 │ │ │ │ │ bl 0 │ │ │ │ │ R_ARM_CALL fftwf_mpi_mkproblem_transpose │ │ │ │ │ mov r1, r0 │ │ │ │ │ ldr r0, [sp, #60] @ 0x3c │ │ │ │ │ bl 0 │ │ │ │ │ @@ -461,253 +500,261 @@ │ │ │ │ │ ldr r1, [r4, #36] @ 0x24 │ │ │ │ │ cmp r8, #0 │ │ │ │ │ moveq r0, #0 │ │ │ │ │ andne r0, r3, #1 │ │ │ │ │ bl 0 │ │ │ │ │ R_ARM_CALL fftwf_mpi_any_true │ │ │ │ │ cmp r0, #0 │ │ │ │ │ - bne 758 │ │ │ │ │ + bne 7f8 │ │ │ │ │ ldr r0, [sp, #100] @ 0x64 │ │ │ │ │ - mov r1, r6 │ │ │ │ │ + mov r1, r5 │ │ │ │ │ bl 0 <__aeabi_idivmod> │ │ │ │ │ R_ARM_CALL __aeabi_idivmod │ │ │ │ │ - ldr r0, [r4, #12] │ │ │ │ │ mov r2, r1 │ │ │ │ │ + ldr r0, [r4, #12] │ │ │ │ │ ldr r1, [r4, #32] │ │ │ │ │ - mul r1, r7, r1 │ │ │ │ │ + mul r1, r6, r1 │ │ │ │ │ bl 0 │ │ │ │ │ R_ARM_CALL fftwf_mpi_block │ │ │ │ │ ldr r8, [sp, #100] @ 0x64 │ │ │ │ │ - mov r1, r6 │ │ │ │ │ - mov r7, r0 │ │ │ │ │ + mov r6, r0 │ │ │ │ │ + mov r1, r5 │ │ │ │ │ mov r0, r8 │ │ │ │ │ bl 0 <__aeabi_idivmod> │ │ │ │ │ R_ARM_CALL __aeabi_idivmod │ │ │ │ │ + ldr r0, [r4, #36] @ 0x24 │ │ │ │ │ mov r2, r8 │ │ │ │ │ ldr r3, [sp, #56] @ 0x38 │ │ │ │ │ - ldr r0, [r4, #36] @ 0x24 │ │ │ │ │ bl 0 │ │ │ │ │ R_ARM_CALL MPI_Comm_split │ │ │ │ │ - cmp r7, #0 │ │ │ │ │ + cmp r6, #0 │ │ │ │ │ moveq r9, #1 │ │ │ │ │ - moveq r8, r7 │ │ │ │ │ - bne 824 │ │ │ │ │ + moveq r8, r6 │ │ │ │ │ + bne 8c4 │ │ │ │ │ ldr r0, [sp, #56] @ 0x38 │ │ │ │ │ bl 0 │ │ │ │ │ R_ARM_CALL MPI_Comm_free │ │ │ │ │ ldr r3, [sp, #52] @ 0x34 │ │ │ │ │ - cmp r7, #0 │ │ │ │ │ + cmp r6, #0 │ │ │ │ │ moveq r0, #0 │ │ │ │ │ andne r0, r9, #1 │ │ │ │ │ ldr r1, [r3, #36] @ 0x24 │ │ │ │ │ bl 0 │ │ │ │ │ R_ARM_CALL fftwf_mpi_any_true │ │ │ │ │ cmp r0, #0 │ │ │ │ │ - bne 75c │ │ │ │ │ - ldr r2, [pc, #548] @ 8dc │ │ │ │ │ - ldr r1, [pc, #548] @ 8e0 │ │ │ │ │ + bne 7fc │ │ │ │ │ + ldr r2, [pc, #552] @ 97c │ │ │ │ │ + mov r0, #88 @ 0x58 │ │ │ │ │ + ldr r1, [pc, #548] @ 980 │ │ │ │ │ add r2, pc, r2 │ │ │ │ │ add r1, pc, r1 │ │ │ │ │ - mov r0, #88 @ 0x58 │ │ │ │ │ bl 0 │ │ │ │ │ R_ARM_CALL fftwf_mkplan_rdft │ │ │ │ │ ldr r3, [sp, #64] @ 0x40 │ │ │ │ │ + mov r4, r0 │ │ │ │ │ + str r7, [r0, #64] @ 0x40 │ │ │ │ │ + str sl, [r0, #68] @ 0x44 │ │ │ │ │ + str r8, [r0, #72] @ 0x48 │ │ │ │ │ ldr r3, [r3, #16] │ │ │ │ │ cmp r3, #0 │ │ │ │ │ ldreq r3, [sp, #60] @ 0x3c │ │ │ │ │ movne r3, #2 │ │ │ │ │ ldreq r3, [r3, #164] @ 0xa4 │ │ │ │ │ + str r5, [r0, #80] @ 0x50 │ │ │ │ │ + add r5, r0, #8 │ │ │ │ │ andeq r3, r3, #4096 @ 0x1000 │ │ │ │ │ cmp sl, #0 │ │ │ │ │ str r3, [r0, #76] @ 0x4c │ │ │ │ │ ldr r3, [sp, #64] @ 0x40 │ │ │ │ │ - str r5, [r0, #64] @ 0x40 │ │ │ │ │ ldr r3, [r3, #12] │ │ │ │ │ - add r5, r5, #8 │ │ │ │ │ - str r6, [r0, #80] @ 0x50 │ │ │ │ │ - str sl, [r0, #68] @ 0x44 │ │ │ │ │ - str r8, [r0, #72] @ 0x48 │ │ │ │ │ str r3, [r0, #84] @ 0x54 │ │ │ │ │ - add r6, r0, #8 │ │ │ │ │ - mov r4, r0 │ │ │ │ │ - ldm r5!, {r0, r1, r2, r3} │ │ │ │ │ - mov ip, r6 │ │ │ │ │ - stmia ip!, {r0, r1, r2, r3} │ │ │ │ │ - ldm r5, {r0, r1, r2, r3} │ │ │ │ │ - stm ip, {r0, r1, r2, r3} │ │ │ │ │ - beq 738 │ │ │ │ │ - mov r1, r6 │ │ │ │ │ + ldrd r2, [r7, #8] │ │ │ │ │ + strd r2, [r0, #8] │ │ │ │ │ + ldrd r2, [r7, #16] │ │ │ │ │ + strd r2, [r5, #8] │ │ │ │ │ + ldrd r2, [r7, #24] │ │ │ │ │ + strd r2, [r5, #16] │ │ │ │ │ + ldrd r2, [r7, #32] │ │ │ │ │ + strd r2, [r5, #24] │ │ │ │ │ + beq 7dc │ │ │ │ │ + mov r1, r5 │ │ │ │ │ add r0, sl, #8 │ │ │ │ │ bl 0 │ │ │ │ │ R_ARM_CALL fftwf_ops_add2 │ │ │ │ │ cmp r8, #0 │ │ │ │ │ - beq 74c │ │ │ │ │ - mov r1, r6 │ │ │ │ │ + beq 7f0 │ │ │ │ │ + mov r1, r5 │ │ │ │ │ add r0, r8, #8 │ │ │ │ │ bl 0 │ │ │ │ │ R_ARM_CALL fftwf_ops_add2 │ │ │ │ │ mov r0, r4 │ │ │ │ │ - add sp, sp, #116 @ 0x74 │ │ │ │ │ - pop {r4, r5, r6, r7, r8, r9, sl, fp, pc} │ │ │ │ │ + b 270 │ │ │ │ │ mov r8, #0 │ │ │ │ │ mov r0, r8 │ │ │ │ │ bl 0 │ │ │ │ │ R_ARM_CALL fftwf_plan_destroy_internal │ │ │ │ │ mov r0, sl │ │ │ │ │ bl 0 │ │ │ │ │ R_ARM_CALL fftwf_plan_destroy_internal │ │ │ │ │ - mov r0, r5 │ │ │ │ │ + mov r0, r7 │ │ │ │ │ bl 0 │ │ │ │ │ R_ARM_CALL fftwf_plan_destroy_internal │ │ │ │ │ - b 1e4 │ │ │ │ │ + b 26c │ │ │ │ │ mul r3, r2, r3 │ │ │ │ │ - mov r0, r7 │ │ │ │ │ + mov r0, r6 │ │ │ │ │ mul r2, ip, r3 │ │ │ │ │ mov r3, #1 │ │ │ │ │ - str r3, [sp, #16] │ │ │ │ │ str r3, [sp, #12] │ │ │ │ │ - mul r3, r2, r7 │ │ │ │ │ - mul r1, r6, r2 │ │ │ │ │ + mul r1, r5, r2 │ │ │ │ │ + str r3, [sp, #16] │ │ │ │ │ + mul r3, r2, r6 │ │ │ │ │ stm sp, {r2, r3} │ │ │ │ │ + mov r3, r5 │ │ │ │ │ str r2, [sp, #8] │ │ │ │ │ - mov r3, r6 │ │ │ │ │ bl 0 │ │ │ │ │ R_ARM_CALL fftwf_mktensor_3d │ │ │ │ │ mov r2, fp │ │ │ │ │ mov r1, r9 │ │ │ │ │ bl 0 │ │ │ │ │ R_ARM_CALL fftwf_mkproblem_rdft_0_d │ │ │ │ │ mov r3, #8 │ │ │ │ │ - str r3, [sp] │ │ │ │ │ - mov r2, r8 │ │ │ │ │ - mov r3, r8 │ │ │ │ │ mov r1, r0 │ │ │ │ │ ldr r0, [sp, #60] @ 0x3c │ │ │ │ │ + mov r2, r8 │ │ │ │ │ + str r3, [sp] │ │ │ │ │ + mov r3, r8 │ │ │ │ │ bl 0 │ │ │ │ │ R_ARM_CALL fftwf_mkplan_f_d │ │ │ │ │ - mov r5, r0 │ │ │ │ │ - b 508 │ │ │ │ │ + mov r7, r0 │ │ │ │ │ + b 5a4 │ │ │ │ │ ldr r2, [sp, #104] @ 0x68 │ │ │ │ │ mov r3, #1 │ │ │ │ │ - mul r2, lr, r2 │ │ │ │ │ - str r3, [sp, #16] │ │ │ │ │ + mul r1, lr, r5 │ │ │ │ │ + str lr, [sp] │ │ │ │ │ + str lr, [sp, #8] │ │ │ │ │ str r3, [sp, #12] │ │ │ │ │ - mul r3, lr, r7 │ │ │ │ │ - str r2, [sp, #28] │ │ │ │ │ - str r2, [sp, #24] │ │ │ │ │ + str r3, [sp, #16] │ │ │ │ │ + mul r3, lr, r6 │ │ │ │ │ + mul r2, lr, r2 │ │ │ │ │ + str r3, [sp, #4] │ │ │ │ │ + mov r3, r5 │ │ │ │ │ str r0, [sp, #20] │ │ │ │ │ + mov r0, r6 │ │ │ │ │ + str r2, [sp, #24] │ │ │ │ │ + str r2, [sp, #28] │ │ │ │ │ mov r2, lr │ │ │ │ │ - str r3, [sp, #4] │ │ │ │ │ - mul r1, lr, r6 │ │ │ │ │ - mov r3, r6 │ │ │ │ │ - mov r0, r7 │ │ │ │ │ - str lr, [sp, #8] │ │ │ │ │ - str lr, [sp] │ │ │ │ │ bl 0 │ │ │ │ │ R_ARM_CALL fftwf_mktensor_4d │ │ │ │ │ mov r2, r9 │ │ │ │ │ - b 4e0 │ │ │ │ │ + b 57c │ │ │ │ │ ldr r0, [sp, #52] @ 0x34 │ │ │ │ │ - mov r1, r7 │ │ │ │ │ + mov r1, r6 │ │ │ │ │ ldr r3, [r0, #24] │ │ │ │ │ and r3, r3, #8 │ │ │ │ │ orr 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] │ │ │ │ │ str fp, [sp] │ │ │ │ │ - mul r3, r6, r3 │ │ │ │ │ + mul r3, r5, r3 │ │ │ │ │ str r3, [sp, #4] │ │ │ │ │ mov r3, r9 │ │ │ │ │ ldr r2, [r0, #4] │ │ │ │ │ ldr r0, [r0, #8] │ │ │ │ │ bl 0 │ │ │ │ │ R_ARM_CALL fftwf_mpi_mkproblem_transpose │ │ │ │ │ mov r1, r0 │ │ │ │ │ ldr r0, [sp, #60] @ 0x3c │ │ │ │ │ bl 0 │ │ │ │ │ R_ARM_CALL fftwf_mkplan_d │ │ │ │ │ clz r9, r0 │ │ │ │ │ mov r8, r0 │ │ │ │ │ lsr r9, r9, #5 │ │ │ │ │ - b 688 │ │ │ │ │ + b 724 │ │ │ │ │ mov r8, #0 │ │ │ │ │ mov sl, r8 │ │ │ │ │ - b 75c │ │ │ │ │ + b 7fc │ │ │ │ │ ldr r4, [sp, #52] @ 0x34 │ │ │ │ │ ldr r1, [sp, #108] @ 0x6c │ │ │ │ │ ldr r0, [r4, #12] │ │ │ │ │ bl 0 <__aeabi_idiv> │ │ │ │ │ R_ARM_CALL __aeabi_idiv │ │ │ │ │ ldr r3, [r4, #8] │ │ │ │ │ - mov r1, r6 │ │ │ │ │ + mov r1, r5 │ │ │ │ │ mul r3, r0, r3 │ │ │ │ │ ldr r0, [r4, #4] │ │ │ │ │ mul r0, r3, r0 │ │ │ │ │ bl 0 <__aeabi_idiv> │ │ │ │ │ R_ARM_CALL __aeabi_idiv │ │ │ │ │ bl 0 │ │ │ │ │ R_ARM_CALL fftwf_toobig │ │ │ │ │ cmp r0, #0 │ │ │ │ │ - bne 1e4 │ │ │ │ │ + bne 26c │ │ │ │ │ ldr r3, [sp, #60] @ 0x3c │ │ │ │ │ ldr r2, [r3, #164] @ 0xa4 │ │ │ │ │ - and r2, r2, r5 │ │ │ │ │ - b 3c8 │ │ │ │ │ + and r2, r2, r6 │ │ │ │ │ + b 464 │ │ │ │ │ .word 0x000fffff │ │ │ │ │ - .word 0xfffff940 │ │ │ │ │ + .word 0xfffff8a0 │ │ │ │ │ .word 0x0000021c │ │ │ │ │ R_ARM_REL32 .data.rel.ro │ │ │ │ │ │ │ │ │ │ -000008e4 : │ │ │ │ │ +00000984 : │ │ │ │ │ fftwf_mpi_transpose_recurse_register(): │ │ │ │ │ - push {r4, r5, r6, r7, r8, lr} │ │ │ │ │ - ldr r6, [pc, #132] @ 974 │ │ │ │ │ - ldr r7, [pc, #132] @ 978 │ │ │ │ │ + strd r4, [sp, #-24]! @ 0xffffffe8 │ │ │ │ │ mov r5, r0 │ │ │ │ │ mov r4, #0 │ │ │ │ │ + strd r6, [sp, #8] │ │ │ │ │ + ldr r6, [pc, #148] @ a30 │ │ │ │ │ + str r8, [sp, #16] │ │ │ │ │ + ldr r7, [pc, #144] @ a34 │ │ │ │ │ + str lr, [sp, #20] │ │ │ │ │ add r6, pc, r6 │ │ │ │ │ add r7, pc, r7 │ │ │ │ │ mov r1, r6 │ │ │ │ │ mov r0, #20 │ │ │ │ │ bl 0 │ │ │ │ │ R_ARM_CALL fftwf_mksolver │ │ │ │ │ - ldr r3, [pc, #104] @ 97c │ │ │ │ │ - add r3, pc, r3 │ │ │ │ │ - str r3, [r0, #12] │ │ │ │ │ + ldr r3, [pc, #120] @ a38 │ │ │ │ │ mov r1, r0 │ │ │ │ │ - str r4, [r0, #16] │ │ │ │ │ str r7, [r0, #8] │ │ │ │ │ + str r4, [r0, #16] │ │ │ │ │ + add r3, pc, r3 │ │ │ │ │ + str r3, [r0, #12] │ │ │ │ │ mov r0, r5 │ │ │ │ │ bl 0 │ │ │ │ │ R_ARM_CALL fftwf_solver_register │ │ │ │ │ mov r1, r6 │ │ │ │ │ mov r0, #20 │ │ │ │ │ bl 0 │ │ │ │ │ R_ARM_CALL fftwf_mksolver │ │ │ │ │ - ldr r3, [pc, #64] @ 980 │ │ │ │ │ + ldr r3, [pc, #80] @ a3c │ │ │ │ │ + mov r1, r0 │ │ │ │ │ + str r4, [r0, #16] │ │ │ │ │ add r3, pc, r3 │ │ │ │ │ str r3, [r0, #8] │ │ │ │ │ - ldr r3, [pc, #56] @ 984 │ │ │ │ │ - str r4, [r0, #16] │ │ │ │ │ + ldr r3, [pc, #64] @ a40 │ │ │ │ │ add r3, pc, r3 │ │ │ │ │ str r3, [r0, #12] │ │ │ │ │ - mov r1, r0 │ │ │ │ │ mov r0, r5 │ │ │ │ │ bl 0 │ │ │ │ │ R_ARM_CALL fftwf_solver_register │ │ │ │ │ add r3, r4, #1 │ │ │ │ │ - cmp r3, #2 │ │ │ │ │ mov r4, #1 │ │ │ │ │ - bne 900 │ │ │ │ │ - pop {r4, r5, r6, r7, r8, pc} │ │ │ │ │ - .word 0x00000074 │ │ │ │ │ + cmp r3, #2 │ │ │ │ │ + bne 9ac │ │ │ │ │ + ldrd r4, [sp] │ │ │ │ │ + ldrd r6, [sp, #8] │ │ │ │ │ + ldr r8, [sp, #16] │ │ │ │ │ + add sp, sp, #20 │ │ │ │ │ + pop {pc} @ (ldr pc, [sp], #4) │ │ │ │ │ + .word 0x00000084 │ │ │ │ │ R_ARM_REL32 .data.rel.ro.local │ │ │ │ │ - .word 0xfffff804 │ │ │ │ │ - .word 0x00000064 │ │ │ │ │ - R_ARM_REL32 .LC3 │ │ │ │ │ .word 0xfffff79c │ │ │ │ │ - .word 0x00000030 │ │ │ │ │ + .word 0x00000068 │ │ │ │ │ + R_ARM_REL32 .LC3 │ │ │ │ │ + .word 0xfffff718 │ │ │ │ │ + .word 0x0000003c │ │ │ │ │ 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: 1800 (bytes into file) │ │ │ │ │ + Start of section headers: 1916 (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 0x708: │ │ │ │ │ +There are 13 section headers, starting at offset 0x77c: │ │ │ │ │ │ │ │ │ │ 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 00023c 00 AX 0 0 4 │ │ │ │ │ - [ 2] .rel.text REL 00000000 0005c0 0000b0 08 I 10 1 4 │ │ │ │ │ - [ 3] .data PROGBITS 00000000 000270 000000 00 WA 0 0 1 │ │ │ │ │ - [ 4] .bss NOBITS 00000000 000270 000000 00 WA 0 0 1 │ │ │ │ │ - [ 5] .rodata.str1.4 PROGBITS 00000000 000270 00003a 01 AMS 0 0 4 │ │ │ │ │ - [ 6] .data.rel.ro.local PROGBITS 00000000 0002aa 000014 00 WA 0 0 4 │ │ │ │ │ - [ 7] .rel.data.rel.ro.local REL 00000000 000670 000020 08 I 10 6 4 │ │ │ │ │ - [ 8] .note.GNU-stack PROGBITS 00000000 0002be 000000 00 0 0 1 │ │ │ │ │ - [ 9] .ARM.attributes ARM_ATTRIBUTES 00000000 0002be 00002b 00 0 0 1 │ │ │ │ │ - [10] .symtab SYMTAB 00000000 0002ec 0001e0 10 11 17 4 │ │ │ │ │ - [11] .strtab STRTAB 00000000 0004cc 0000f2 00 0 0 1 │ │ │ │ │ - [12] .shstrtab STRTAB 00000000 000690 000076 00 0 0 1 │ │ │ │ │ + [ 1] .text PROGBITS 00000000 000034 0002b0 00 AX 0 0 4 │ │ │ │ │ + [ 2] .rel.text REL 00000000 000634 0000b0 08 I 10 1 4 │ │ │ │ │ + [ 3] .data PROGBITS 00000000 0002e4 000000 00 WA 0 0 1 │ │ │ │ │ + [ 4] .bss NOBITS 00000000 0002e4 000000 00 WA 0 0 1 │ │ │ │ │ + [ 5] .rodata.str1.4 PROGBITS 00000000 0002e4 00003a 01 AMS 0 0 4 │ │ │ │ │ + [ 6] .data.rel.ro.local PROGBITS 00000000 00031e 000014 00 WA 0 0 4 │ │ │ │ │ + [ 7] .rel.data.rel.ro.local REL 00000000 0006e4 000020 08 I 10 6 4 │ │ │ │ │ + [ 8] .note.GNU-stack PROGBITS 00000000 000332 000000 00 0 0 1 │ │ │ │ │ + [ 9] .ARM.attributes ARM_ATTRIBUTES 00000000 000332 00002b 00 0 0 1 │ │ │ │ │ + [10] .symtab SYMTAB 00000000 000360 0001e0 10 11 17 4 │ │ │ │ │ + [11] .strtab STRTAB 00000000 000540 0000f2 00 0 0 1 │ │ │ │ │ + [12] .shstrtab STRTAB 00000000 000704 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: 00000000 0 NOTYPE LOCAL DEFAULT 1 $a │ │ │ │ │ - 2: 00000000 28 FUNC LOCAL DEFAULT 1 destroy │ │ │ │ │ + 2: 00000000 40 FUNC LOCAL DEFAULT 1 destroy │ │ │ │ │ 3: 00000000 0 NOTYPE LOCAL DEFAULT 5 $d │ │ │ │ │ 4: 00000000 0 NOTYPE LOCAL DEFAULT 5 .LC0 │ │ │ │ │ - 5: 0000001c 152 FUNC LOCAL DEFAULT 1 print │ │ │ │ │ - 6: 000000b0 0 NOTYPE LOCAL DEFAULT 1 $d │ │ │ │ │ - 7: 000000b4 0 NOTYPE LOCAL DEFAULT 1 $a │ │ │ │ │ - 8: 000000b4 92 FUNC LOCAL DEFAULT 1 zero │ │ │ │ │ + 5: 00000028 180 FUNC LOCAL DEFAULT 1 print │ │ │ │ │ + 6: 000000d8 0 NOTYPE LOCAL DEFAULT 1 $d │ │ │ │ │ + 7: 000000dc 0 NOTYPE LOCAL DEFAULT 1 $a │ │ │ │ │ + 8: 000000dc 112 FUNC LOCAL DEFAULT 1 zero │ │ │ │ │ 9: 0000002c 0 NOTYPE LOCAL DEFAULT 5 .LC1 │ │ │ │ │ - 10: 00000110 156 FUNC LOCAL DEFAULT 1 hash │ │ │ │ │ - 11: 000001a8 0 NOTYPE LOCAL DEFAULT 1 $d │ │ │ │ │ - 12: 000001ac 0 NOTYPE LOCAL DEFAULT 1 $a │ │ │ │ │ - 13: 00000238 0 NOTYPE LOCAL DEFAULT 1 $d │ │ │ │ │ + 10: 0000014c 168 FUNC LOCAL DEFAULT 1 hash │ │ │ │ │ + 11: 000001f0 0 NOTYPE LOCAL DEFAULT 1 $d │ │ │ │ │ + 12: 000001f4 0 NOTYPE LOCAL DEFAULT 1 $a │ │ │ │ │ + 13: 000002ac 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: 000001ac 144 FUNC GLOBAL DEFAULT 1 fftwf_mpi_mkproblem_transpose │ │ │ │ │ + 27: 000001f4 188 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 0x5c0 contains 22 entries: │ │ │ │ │ +Relocation section '.rel.text' at offset 0x634 contains 22 entries: │ │ │ │ │ Offset Info Type Sym. Value Symbol's Name │ │ │ │ │ -0000000c 0000111c R_ARM_CALL 00000000 MPI_Comm_free │ │ │ │ │ -00000018 0000121d R_ARM_JUMP24 00000000 fftwf_ifree │ │ │ │ │ -00000034 0000131c R_ARM_CALL 00000000 MPI_Comm_size │ │ │ │ │ -00000048 0000141c R_ARM_CALL 00000000 fftwf_ialignment_of │ │ │ │ │ -0000005c 0000141c R_ARM_CALL 00000000 fftwf_ialignment_of │ │ │ │ │ -000000b0 00000403 R_ARM_REL32 00000000 .LC0 │ │ │ │ │ -000000d8 0000151c R_ARM_CALL 00000000 MPI_Comm_rank │ │ │ │ │ -000000e8 0000161c R_ARM_CALL 00000000 fftwf_mpi_block │ │ │ │ │ -00000104 0000171c R_ARM_CALL 00000000 memset │ │ │ │ │ -0000012c 0000181c R_ARM_CALL 00000000 fftwf_md5puts │ │ │ │ │ -00000148 0000191c R_ARM_CALL 00000000 fftwf_md5int │ │ │ │ │ -00000154 00001a1c R_ARM_CALL 00000000 fftwf_md5INT │ │ │ │ │ -00000160 00001a1c R_ARM_CALL 00000000 fftwf_md5INT │ │ │ │ │ -0000016c 00001a1c R_ARM_CALL 00000000 fftwf_md5INT │ │ │ │ │ -00000178 00001a1c R_ARM_CALL 00000000 fftwf_md5INT │ │ │ │ │ -00000184 00001a1c R_ARM_CALL 00000000 fftwf_md5INT │ │ │ │ │ -00000190 0000131c R_ARM_CALL 00000000 MPI_Comm_size │ │ │ │ │ -0000019c 0000191c R_ARM_CALL 00000000 fftwf_md5int │ │ │ │ │ -000001a8 00000903 R_ARM_REL32 0000002c .LC1 │ │ │ │ │ -000001d8 00001c1c R_ARM_CALL 00000000 fftwf_mkproblem │ │ │ │ │ -0000022c 00001d1c R_ARM_CALL 00000000 MPI_Comm_dup │ │ │ │ │ -00000238 00000e03 R_ARM_REL32 00000000 .data.rel.ro.local │ │ │ │ │ +00000010 0000111c R_ARM_CALL 00000000 MPI_Comm_free │ │ │ │ │ +00000024 0000121d R_ARM_JUMP24 00000000 fftwf_ifree │ │ │ │ │ +0000004c 0000131c R_ARM_CALL 00000000 MPI_Comm_size │ │ │ │ │ +00000060 0000141c R_ARM_CALL 00000000 fftwf_ialignment_of │ │ │ │ │ +00000070 0000141c R_ARM_CALL 00000000 fftwf_ialignment_of │ │ │ │ │ +000000d8 00000403 R_ARM_REL32 00000000 .LC0 │ │ │ │ │ +00000108 0000151c R_ARM_CALL 00000000 MPI_Comm_rank │ │ │ │ │ +00000118 0000161c R_ARM_CALL 00000000 fftwf_mpi_block │ │ │ │ │ +00000134 0000171c R_ARM_CALL 00000000 memset │ │ │ │ │ +0000016c 0000181c R_ARM_CALL 00000000 fftwf_md5puts │ │ │ │ │ +00000188 0000191c R_ARM_CALL 00000000 fftwf_md5int │ │ │ │ │ +00000194 00001a1c R_ARM_CALL 00000000 fftwf_md5INT │ │ │ │ │ +000001a0 00001a1c R_ARM_CALL 00000000 fftwf_md5INT │ │ │ │ │ +000001ac 00001a1c R_ARM_CALL 00000000 fftwf_md5INT │ │ │ │ │ +000001b8 00001a1c R_ARM_CALL 00000000 fftwf_md5INT │ │ │ │ │ +000001c4 00001a1c R_ARM_CALL 00000000 fftwf_md5INT │ │ │ │ │ +000001d0 0000131c R_ARM_CALL 00000000 MPI_Comm_size │ │ │ │ │ +000001dc 0000191c R_ARM_CALL 00000000 fftwf_md5int │ │ │ │ │ +000001f0 00000903 R_ARM_REL32 0000002c .LC1 │ │ │ │ │ +00000234 00001c1c R_ARM_CALL 00000000 fftwf_mkproblem │ │ │ │ │ +00000288 00001d1c R_ARM_CALL 00000000 MPI_Comm_dup │ │ │ │ │ +000002ac 00000e03 R_ARM_REL32 00000000 .data.rel.ro.local │ │ │ │ │ │ │ │ │ │ -Relocation section '.rel.data.rel.ro.local' at offset 0x670 contains 4 entries: │ │ │ │ │ +Relocation section '.rel.data.rel.ro.local' at offset 0x6e4 contains 4 entries: │ │ │ │ │ Offset Info Type Sym. Value Symbol's Name │ │ │ │ │ -00000004 00000a02 R_ARM_ABS32 00000110 hash │ │ │ │ │ -00000008 00000802 R_ARM_ABS32 000000b4 zero │ │ │ │ │ -0000000c 00000502 R_ARM_ABS32 0000001c print │ │ │ │ │ +00000004 00000a02 R_ARM_ABS32 0000014c hash │ │ │ │ │ +00000008 00000802 R_ARM_ABS32 000000dc zero │ │ │ │ │ +0000000c 00000502 R_ARM_ABS32 00000028 print │ │ │ │ │ 00000010 00000202 R_ARM_ABS32 00000000 destroy │ │ │ │ ├── objdump --line-numbers --disassemble --demangle --reloc --no-show-raw-insn --section=.text {} │ │ │ │ │ @@ -1,112 +1,128 @@ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ Disassembly of section .text: │ │ │ │ │ │ │ │ │ │ 00000000 : │ │ │ │ │ destroy(): │ │ │ │ │ - push {r4, lr} │ │ │ │ │ + str r4, [sp, #-8]! │ │ │ │ │ mov r4, r0 │ │ │ │ │ add r0, r0, #36 @ 0x24 │ │ │ │ │ + str lr, [sp, #4] │ │ │ │ │ bl 0 │ │ │ │ │ R_ARM_CALL MPI_Comm_free │ │ │ │ │ + ldr lr, [sp, #4] │ │ │ │ │ mov r0, r4 │ │ │ │ │ - pop {r4, lr} │ │ │ │ │ + ldr r4, [sp] │ │ │ │ │ + add sp, sp, #8 │ │ │ │ │ b 0 │ │ │ │ │ R_ARM_JUMP24 fftwf_ifree │ │ │ │ │ │ │ │ │ │ -0000001c : │ │ │ │ │ +00000028 : │ │ │ │ │ print(): │ │ │ │ │ - push {r4, r5, r6, r7, r8, lr} │ │ │ │ │ - sub sp, sp, #40 @ 0x28 │ │ │ │ │ + strd r4, [sp, #-24]! @ 0xffffffe8 │ │ │ │ │ mov r4, r0 │ │ │ │ │ mov r5, r1 │ │ │ │ │ + strd r6, [sp, #8] │ │ │ │ │ + str r8, [sp, #16] │ │ │ │ │ + str lr, [sp, #20] │ │ │ │ │ + sub sp, sp, #40 @ 0x28 │ │ │ │ │ ldr r0, [r0, #36] @ 0x24 │ │ │ │ │ add r1, sp, #36 @ 0x24 │ │ │ │ │ bl 0 │ │ │ │ │ R_ARM_CALL MPI_Comm_size │ │ │ │ │ ldr r0, [r4, #16] │ │ │ │ │ ldr r6, [r4, #20] │ │ │ │ │ ldr r8, [r5] │ │ │ │ │ sub r6, r6, r0 │ │ │ │ │ bl 0 │ │ │ │ │ R_ARM_CALL fftwf_ialignment_of │ │ │ │ │ - clz r6, r6 │ │ │ │ │ - lsr r6, r6, #5 │ │ │ │ │ mov r7, r0 │ │ │ │ │ ldr r0, [r4, #20] │ │ │ │ │ + clz r6, r6 │ │ │ │ │ bl 0 │ │ │ │ │ R_ARM_CALL fftwf_ialignment_of │ │ │ │ │ ldr r3, [sp, #36] @ 0x24 │ │ │ │ │ + lsr r6, r6, #5 │ │ │ │ │ + ldr r1, [pc, #84] @ d8 │ │ │ │ │ + mov r2, r6 │ │ │ │ │ str r3, [sp, #24] │ │ │ │ │ ldr r3, [r4, #32] │ │ │ │ │ + add r1, pc, r1 │ │ │ │ │ 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 r1, [pc, #32] @ b0 │ │ │ │ │ ldr r3, [r4, #4] │ │ │ │ │ - mov r2, r6 │ │ │ │ │ - add r1, pc, r1 │ │ │ │ │ stm sp, {r0, r3} │ │ │ │ │ mov r3, r7 │ │ │ │ │ mov r0, r5 │ │ │ │ │ blx r8 │ │ │ │ │ add sp, sp, #40 @ 0x28 │ │ │ │ │ - pop {r4, r5, r6, r7, r8, pc} │ │ │ │ │ - .word 0x00000014 │ │ │ │ │ + ldrd r4, [sp] │ │ │ │ │ + ldrd r6, [sp, #8] │ │ │ │ │ + ldr r8, [sp, #16] │ │ │ │ │ + add sp, sp, #20 │ │ │ │ │ + pop {pc} @ (ldr pc, [sp], #4) │ │ │ │ │ + .word 0x00000044 │ │ │ │ │ R_ARM_REL32 .LC0 │ │ │ │ │ │ │ │ │ │ -000000b4 : │ │ │ │ │ +000000dc : │ │ │ │ │ zero(): │ │ │ │ │ - push {r4, r5, r6, lr} │ │ │ │ │ ldr r2, [r0, #4] │ │ │ │ │ + strd r4, [sp, #-16]! │ │ │ │ │ + mov r4, r0 │ │ │ │ │ ldr r3, [r0, #12] │ │ │ │ │ + str r6, [sp, #8] │ │ │ │ │ + str lr, [sp, #12] │ │ │ │ │ sub sp, sp, #8 │ │ │ │ │ - mov r4, r0 │ │ │ │ │ ldr r6, [r0, #16] │ │ │ │ │ add r1, sp, #4 │ │ │ │ │ ldr r0, [r0, #36] @ 0x24 │ │ │ │ │ mul r5, r3, r2 │ │ │ │ │ bl 0 │ │ │ │ │ R_ARM_CALL MPI_Comm_rank │ │ │ │ │ ldr r2, [sp, #4] │ │ │ │ │ - ldr r1, [r4, #28] │ │ │ │ │ ldr r0, [r4, #8] │ │ │ │ │ + ldr r1, [r4, #28] │ │ │ │ │ bl 0 │ │ │ │ │ R_ARM_CALL fftwf_mpi_block │ │ │ │ │ mul r0, r5, r0 │ │ │ │ │ cmp r0, #0 │ │ │ │ │ - ble 108 │ │ │ │ │ + ble 138 │ │ │ │ │ lsl r2, r0, #2 │ │ │ │ │ mov r1, #0 │ │ │ │ │ mov r0, r6 │ │ │ │ │ bl 0 │ │ │ │ │ R_ARM_CALL memset │ │ │ │ │ add sp, sp, #8 │ │ │ │ │ - pop {r4, r5, r6, pc} │ │ │ │ │ + ldrd r4, [sp] │ │ │ │ │ + ldr r6, [sp, #8] │ │ │ │ │ + add sp, sp, #12 │ │ │ │ │ + pop {pc} @ (ldr pc, [sp], #4) │ │ │ │ │ │ │ │ │ │ -00000110 : │ │ │ │ │ +0000014c : │ │ │ │ │ hash(): │ │ │ │ │ - push {r4, r5, lr} │ │ │ │ │ + strd r4, [sp, #-12]! │ │ │ │ │ mov r4, r1 │ │ │ │ │ - ldr r1, [pc, #136] @ 1a8 │ │ │ │ │ - sub sp, sp, #12 │ │ │ │ │ mov r5, r0 │ │ │ │ │ - add r1, pc, r1 │ │ │ │ │ + ldr r1, [pc, #144] @ 1f0 │ │ │ │ │ mov r0, r4 │ │ │ │ │ + str lr, [sp, #8] │ │ │ │ │ + sub sp, sp, #12 │ │ │ │ │ + add r1, pc, r1 │ │ │ │ │ bl 0 │ │ │ │ │ R_ARM_CALL fftwf_md5puts │ │ │ │ │ - ldr r3, [r5, #20] │ │ │ │ │ ldr r1, [r5, #16] │ │ │ │ │ mov r0, r4 │ │ │ │ │ + ldr r3, [r5, #20] │ │ │ │ │ sub r1, r1, r3 │ │ │ │ │ clz r1, r1 │ │ │ │ │ lsr r1, r1, #5 │ │ │ │ │ bl 0 │ │ │ │ │ R_ARM_CALL fftwf_md5int │ │ │ │ │ ldr r1, [r5, #4] │ │ │ │ │ mov r0, r4 │ │ │ │ │ @@ -124,61 +140,74 @@ │ │ │ │ │ mov r0, r4 │ │ │ │ │ bl 0 │ │ │ │ │ R_ARM_CALL fftwf_md5INT │ │ │ │ │ ldr r1, [r5, #32] │ │ │ │ │ mov r0, r4 │ │ │ │ │ bl 0 │ │ │ │ │ R_ARM_CALL fftwf_md5INT │ │ │ │ │ - add r1, sp, #4 │ │ │ │ │ ldr r0, [r5, #36] @ 0x24 │ │ │ │ │ + add r1, sp, #4 │ │ │ │ │ bl 0 │ │ │ │ │ R_ARM_CALL MPI_Comm_size │ │ │ │ │ ldr r1, [sp, #4] │ │ │ │ │ mov r0, r4 │ │ │ │ │ bl 0 │ │ │ │ │ R_ARM_CALL fftwf_md5int │ │ │ │ │ add sp, sp, #12 │ │ │ │ │ - pop {r4, r5, pc} │ │ │ │ │ - .word 0x0000007c │ │ │ │ │ + ldrd r4, [sp] │ │ │ │ │ + add sp, sp, #8 │ │ │ │ │ + pop {pc} @ (ldr pc, [sp], #4) │ │ │ │ │ + .word 0x00000080 │ │ │ │ │ R_ARM_REL32 .LC1 │ │ │ │ │ │ │ │ │ │ -000001ac : │ │ │ │ │ +000001f4 : │ │ │ │ │ fftwf_mpi_mkproblem_transpose(): │ │ │ │ │ - push {r3, r4, r5, r6, r7, r8, r9, sl, fp, lr} │ │ │ │ │ + strd r4, [sp, #-36]! @ 0xffffffdc │ │ │ │ │ mov r5, r1 │ │ │ │ │ - ldr r1, [pc, #124] @ 238 │ │ │ │ │ + ldr r1, [pc, #168] @ 2ac │ │ │ │ │ + strd r6, [sp, #8] │ │ │ │ │ mov r6, r0 │ │ │ │ │ - add r1, pc, r1 │ │ │ │ │ mov r0, #40 @ 0x28 │ │ │ │ │ - ldr r9, [sp, #56] @ 0x38 │ │ │ │ │ + strd r8, [sp, #16] │ │ │ │ │ + mov r7, r3 │ │ │ │ │ + mov r8, r2 │ │ │ │ │ + strd sl, [sp, #24] │ │ │ │ │ + str lr, [sp, #32] │ │ │ │ │ + sub sp, sp, #4 │ │ │ │ │ ldr fp, [sp, #44] @ 0x2c │ │ │ │ │ + add r1, pc, r1 │ │ │ │ │ ldr sl, [sp, #48] @ 0x30 │ │ │ │ │ - mov r8, r2 │ │ │ │ │ - mov r7, r3 │ │ │ │ │ + ldr r9, [sp, #56] @ 0x38 │ │ │ │ │ bl 0 │ │ │ │ │ R_ARM_CALL fftwf_mkproblem │ │ │ │ │ cmp r6, fp │ │ │ │ │ ldr r3, [sp, #40] @ 0x28 │ │ │ │ │ + mov r4, r0 │ │ │ │ │ + add r1, r0, #36 @ 0x24 │ │ │ │ │ + str r8, [r0, #4] │ │ │ │ │ str r6, [r0, #8] │ │ │ │ │ movge r6, fp │ │ │ │ │ cmp r5, sl │ │ │ │ │ str r5, [r0, #12] │ │ │ │ │ movge r5, sl │ │ │ │ │ cmp r6, #1 │ │ │ │ │ orreq r9, r9, #4 │ │ │ │ │ cmp r5, #1 │ │ │ │ │ - orreq r9, r9, #8 │ │ │ │ │ - mov r4, r0 │ │ │ │ │ - add r1, r0, #36 @ 0x24 │ │ │ │ │ - str r8, [r0, #4] │ │ │ │ │ str r7, [r0, #16] │ │ │ │ │ + orreq r9, r9, #8 │ │ │ │ │ str r3, [r0, #20] │ │ │ │ │ + str r9, [r0, #24] │ │ │ │ │ str r6, [r0, #28] │ │ │ │ │ str r5, [r0, #32] │ │ │ │ │ - str r9, [r0, #24] │ │ │ │ │ ldr r0, [sp, #52] @ 0x34 │ │ │ │ │ bl 0 │ │ │ │ │ R_ARM_CALL MPI_Comm_dup │ │ │ │ │ mov r0, r4 │ │ │ │ │ - pop {r3, r4, r5, r6, r7, r8, r9, sl, fp, pc} │ │ │ │ │ - .word 0x00000074 │ │ │ │ │ + add sp, sp, #4 │ │ │ │ │ + ldrd r4, [sp] │ │ │ │ │ + ldrd r6, [sp, #8] │ │ │ │ │ + ldrd r8, [sp, #16] │ │ │ │ │ + ldrd sl, [sp, #24] │ │ │ │ │ + add sp, sp, #32 │ │ │ │ │ + pop {pc} @ (ldr pc, [sp], #4) │ │ │ │ │ + .word 0x0000007c │ │ │ │ │ R_ARM_REL32 .data.rel.ro.local │ │ │ ├── transpose-solve.o │ │ │ │ ├── objdump --line-numbers --disassemble --demangle --reloc --no-show-raw-insn --section=.text {} │ │ │ │ │ @@ -2,10 +2,10 @@ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ Disassembly of section .text: │ │ │ │ │ │ │ │ │ │ 00000000 : │ │ │ │ │ fftwf_mpi_transpose_solve(): │ │ │ │ │ ldr r2, [r1, #20] │ │ │ │ │ - ldr r3, [r0, #56] @ 0x38 │ │ │ │ │ ldr r1, [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: 2296 (bytes into file) │ │ │ │ │ + Start of section headers: 2320 (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 0x8f8: │ │ │ │ │ +There are 15 section headers, starting at offset 0x910: │ │ │ │ │ │ │ │ │ │ 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 000304 00 AX 0 0 4 │ │ │ │ │ - [ 2] .rel.text REL 00000000 000790 0000b8 08 I 12 1 4 │ │ │ │ │ - [ 3] .data PROGBITS 00000000 000338 000000 00 WA 0 0 1 │ │ │ │ │ - [ 4] .bss NOBITS 00000000 000338 000000 00 WA 0 0 1 │ │ │ │ │ - [ 5] .rodata.str1.4 PROGBITS 00000000 000338 000018 01 AMS 0 0 4 │ │ │ │ │ - [ 6] .data.rel.ro PROGBITS 00000000 000350 000010 00 WA 0 0 4 │ │ │ │ │ - [ 7] .rel.data.rel.ro REL 00000000 000848 000020 08 I 12 6 4 │ │ │ │ │ - [ 8] .data.rel.ro.local PROGBITS 00000000 000360 00000c 00 WA 0 0 4 │ │ │ │ │ - [ 9] .rel.data.rel.ro.local REL 00000000 000868 000008 08 I 12 8 4 │ │ │ │ │ - [10] .note.GNU-stack PROGBITS 00000000 00036c 000000 00 0 0 1 │ │ │ │ │ - [11] .ARM.attributes ARM_ATTRIBUTES 00000000 00036c 00002b 00 0 0 1 │ │ │ │ │ - [12] .symtab SYMTAB 00000000 000398 000260 10 13 20 4 │ │ │ │ │ - [13] .strtab STRTAB 00000000 0005f8 000198 00 0 0 1 │ │ │ │ │ - [14] .shstrtab STRTAB 00000000 000870 000087 00 0 0 1 │ │ │ │ │ + [ 1] .text PROGBITS 00000000 000034 000324 00 AX 0 0 4 │ │ │ │ │ + [ 2] .rel.text REL 00000000 0007b0 0000b0 08 I 12 1 4 │ │ │ │ │ + [ 3] .data PROGBITS 00000000 000358 000000 00 WA 0 0 1 │ │ │ │ │ + [ 4] .bss NOBITS 00000000 000358 000000 00 WA 0 0 1 │ │ │ │ │ + [ 5] .rodata.str1.4 PROGBITS 00000000 000358 000018 01 AMS 0 0 4 │ │ │ │ │ + [ 6] .data.rel.ro PROGBITS 00000000 000370 000010 00 WA 0 0 4 │ │ │ │ │ + [ 7] .rel.data.rel.ro REL 00000000 000860 000020 08 I 12 6 4 │ │ │ │ │ + [ 8] .data.rel.ro.local PROGBITS 00000000 000380 00000c 00 WA 0 0 4 │ │ │ │ │ + [ 9] .rel.data.rel.ro.local REL 00000000 000880 000008 08 I 12 8 4 │ │ │ │ │ + [10] .note.GNU-stack PROGBITS 00000000 00038c 000000 00 0 0 1 │ │ │ │ │ + [11] .ARM.attributes ARM_ATTRIBUTES 00000000 00038c 00002b 00 0 0 1 │ │ │ │ │ + [12] .symtab SYMTAB 00000000 0003b8 000260 10 13 20 4 │ │ │ │ │ + [13] .strtab STRTAB 00000000 000618 000198 00 0 0 1 │ │ │ │ │ + [14] .shstrtab STRTAB 00000000 000888 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: 00000000 0 NOTYPE LOCAL DEFAULT 1 $a │ │ │ │ │ - 2: 00000000 60 FUNC LOCAL DEFAULT 1 apply │ │ │ │ │ + 2: 00000000 80 FUNC LOCAL DEFAULT 1 apply │ │ │ │ │ 3: 00000000 0 NOTYPE LOCAL DEFAULT 5 $d │ │ │ │ │ 4: 00000000 0 NOTYPE LOCAL DEFAULT 5 .LC0 │ │ │ │ │ - 5: 0000003c 32 FUNC LOCAL DEFAULT 1 print │ │ │ │ │ - 6: 00000058 0 NOTYPE LOCAL DEFAULT 1 $d │ │ │ │ │ - 7: 0000005c 0 NOTYPE LOCAL DEFAULT 1 $a │ │ │ │ │ - 8: 0000005c 8 FUNC LOCAL DEFAULT 1 destroy │ │ │ │ │ - 9: 00000064 8 FUNC LOCAL DEFAULT 1 awake │ │ │ │ │ - 10: 0000006c 532 FUNC LOCAL DEFAULT 1 mkplan │ │ │ │ │ - 11: 00000278 0 NOTYPE LOCAL DEFAULT 1 $d │ │ │ │ │ - 12: 00000280 0 NOTYPE LOCAL DEFAULT 1 $a │ │ │ │ │ - 13: 00000300 0 NOTYPE LOCAL DEFAULT 1 $d │ │ │ │ │ + 5: 00000050 32 FUNC LOCAL DEFAULT 1 print │ │ │ │ │ + 6: 0000006c 0 NOTYPE LOCAL DEFAULT 1 $d │ │ │ │ │ + 7: 00000070 0 NOTYPE LOCAL DEFAULT 1 $a │ │ │ │ │ + 8: 00000070 8 FUNC LOCAL DEFAULT 1 destroy │ │ │ │ │ + 9: 00000078 8 FUNC LOCAL DEFAULT 1 awake │ │ │ │ │ + 10: 00000080 520 FUNC LOCAL DEFAULT 1 mkplan │ │ │ │ │ + 11: 00000280 0 NOTYPE LOCAL DEFAULT 1 $d │ │ │ │ │ + 12: 00000288 0 NOTYPE LOCAL DEFAULT 1 $a │ │ │ │ │ + 13: 00000320 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: 00000280 88 FUNC GLOBAL DEFAULT 1 fftwf_mpi_dft_serial_applicable │ │ │ │ │ - 34: 000002d8 44 FUNC GLOBAL DEFAULT 1 fftwf_mpi_dft_serial_register │ │ │ │ │ + 33: 00000288 100 FUNC GLOBAL DEFAULT 1 fftwf_mpi_dft_serial_applicable │ │ │ │ │ + 34: 000002ec 56 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,37 +1,36 @@ │ │ │ │ │ │ │ │ │ │ -Relocation section '.rel.text' at offset 0x790 contains 23 entries: │ │ │ │ │ +Relocation section '.rel.text' at offset 0x7b0 contains 22 entries: │ │ │ │ │ Offset Info Type Sym. Value Symbol's Name │ │ │ │ │ -00000058 00000403 R_ARM_REL32 00000000 .LC0 │ │ │ │ │ -00000060 0000141d R_ARM_JUMP24 00000000 fftwf_plan_destroy_internal │ │ │ │ │ -00000068 0000151d R_ARM_JUMP24 00000000 fftwf_plan_awake │ │ │ │ │ -00000098 0000161c R_ARM_CALL 00000000 fftwf_mpi_is_local │ │ │ │ │ -000000c0 0000171c R_ARM_CALL 00000000 fftwf_extract_reim │ │ │ │ │ -000000d4 0000171c R_ARM_CALL 00000000 fftwf_extract_reim │ │ │ │ │ -000000e0 0000181c R_ARM_CALL 00000000 MPI_Comm_rank │ │ │ │ │ -000000fc 0000191c R_ARM_CALL 00000000 fftwf_mktensor_0d │ │ │ │ │ -00000110 00001a1c R_ARM_CALL 00000000 fftwf_mktensor_1d │ │ │ │ │ -00000130 00001b1c R_ARM_CALL 00000000 fftwf_mkproblem_dft_d │ │ │ │ │ -0000013c 00001c1c R_ARM_CALL 00000000 fftwf_mkplan_d │ │ │ │ │ -00000150 00001d1c R_ARM_CALL 00000000 fftwf_mpi_any_true │ │ │ │ │ -00000170 00001e1c R_ARM_CALL 00000000 fftwf_mkplan_rdft │ │ │ │ │ -000001a8 00001f1c R_ARM_CALL 00000000 fftwf_ops_cpy │ │ │ │ │ -000001c4 0000201c R_ARM_CALL 00000000 fftwf_mktensor │ │ │ │ │ -0000023c 00001a1c R_ARM_CALL 00000000 fftwf_mktensor_1d │ │ │ │ │ -00000268 0000161c R_ARM_CALL 00000000 fftwf_mpi_is_local │ │ │ │ │ -0000027c 00000e03 R_ARM_REL32 00000000 .data.rel.ro │ │ │ │ │ -000002a0 0000161c R_ARM_CALL 00000000 fftwf_mpi_is_local │ │ │ │ │ -000002c4 0000161c R_ARM_CALL 00000000 fftwf_mpi_is_local │ │ │ │ │ -000002ec 0000231c R_ARM_CALL 00000000 fftwf_mksolver │ │ │ │ │ -000002fc 0000241d R_ARM_JUMP24 00000000 fftwf_solver_register │ │ │ │ │ -00000300 00001103 R_ARM_REL32 00000000 .data.rel.ro.local │ │ │ │ │ +0000006c 00000403 R_ARM_REL32 00000000 .LC0 │ │ │ │ │ +00000074 0000141d R_ARM_JUMP24 00000000 fftwf_plan_destroy_internal │ │ │ │ │ +0000007c 0000151d R_ARM_JUMP24 00000000 fftwf_plan_awake │ │ │ │ │ +000000c0 0000161c R_ARM_CALL 00000000 fftwf_mpi_is_local │ │ │ │ │ +000000e8 0000171c R_ARM_CALL 00000000 fftwf_extract_reim │ │ │ │ │ +000000fc 0000171c R_ARM_CALL 00000000 fftwf_extract_reim │ │ │ │ │ +00000108 0000181c R_ARM_CALL 00000000 MPI_Comm_rank │ │ │ │ │ +00000124 0000191c R_ARM_CALL 00000000 fftwf_mktensor_0d │ │ │ │ │ +00000138 00001a1c R_ARM_CALL 00000000 fftwf_mktensor_1d │ │ │ │ │ +00000158 00001b1c R_ARM_CALL 00000000 fftwf_mkproblem_dft_d │ │ │ │ │ +00000164 00001c1c R_ARM_CALL 00000000 fftwf_mkplan_d │ │ │ │ │ +00000178 00001d1c R_ARM_CALL 00000000 fftwf_mpi_any_true │ │ │ │ │ +00000198 00001e1c R_ARM_CALL 00000000 fftwf_mkplan_rdft │ │ │ │ │ +000001d0 00001f1c R_ARM_CALL 00000000 fftwf_ops_cpy │ │ │ │ │ +000001e8 0000201c R_ARM_CALL 00000000 fftwf_mktensor │ │ │ │ │ +00000270 0000161c R_ARM_CALL 00000000 fftwf_mpi_is_local │ │ │ │ │ +00000284 00000e03 R_ARM_REL32 00000000 .data.rel.ro │ │ │ │ │ +000002ac 0000161c R_ARM_CALL 00000000 fftwf_mpi_is_local │ │ │ │ │ +000002d8 0000161c R_ARM_CALL 00000000 fftwf_mpi_is_local │ │ │ │ │ +00000304 0000231c R_ARM_CALL 00000000 fftwf_mksolver │ │ │ │ │ +0000031c 0000241d R_ARM_JUMP24 00000000 fftwf_solver_register │ │ │ │ │ +00000320 00001103 R_ARM_REL32 00000000 .data.rel.ro.local │ │ │ │ │ │ │ │ │ │ -Relocation section '.rel.data.rel.ro' at offset 0x848 contains 4 entries: │ │ │ │ │ +Relocation section '.rel.data.rel.ro' at offset 0x860 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 00000064 awake │ │ │ │ │ -00000008 00000502 R_ARM_ABS32 0000003c print │ │ │ │ │ -0000000c 00000802 R_ARM_ABS32 0000005c destroy │ │ │ │ │ +00000004 00000902 R_ARM_ABS32 00000078 awake │ │ │ │ │ +00000008 00000502 R_ARM_ABS32 00000050 print │ │ │ │ │ +0000000c 00000802 R_ARM_ABS32 00000070 destroy │ │ │ │ │ │ │ │ │ │ -Relocation section '.rel.data.rel.ro.local' at offset 0x868 contains 1 entry: │ │ │ │ │ +Relocation section '.rel.data.rel.ro.local' at offset 0x880 contains 1 entry: │ │ │ │ │ Offset Info Type Sym. Value Symbol's Name │ │ │ │ │ -00000004 00000a02 R_ARM_ABS32 0000006c mkplan │ │ │ │ │ +00000004 00000a02 R_ARM_ABS32 00000080 mkplan │ │ │ │ ├── objdump --line-numbers --disassemble --demangle --reloc --no-show-raw-insn --section=.text {} │ │ │ │ │ @@ -2,240 +2,247 @@ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ Disassembly of section .text: │ │ │ │ │ │ │ │ │ │ 00000000 : │ │ │ │ │ apply(): │ │ │ │ │ mov ip, r0 │ │ │ │ │ - push {r4, lr} │ │ │ │ │ + str r4, [sp, #-8]! │ │ │ │ │ + str lr, [sp, #4] │ │ │ │ │ + sub sp, sp, #8 │ │ │ │ │ ldr lr, [ip, #68] @ 0x44 │ │ │ │ │ ldr ip, [ip, #72] @ 0x48 │ │ │ │ │ ldr r0, [r0, #64] @ 0x40 │ │ │ │ │ - sub sp, sp, #8 │ │ │ │ │ - add r3, r2, ip, lsl #2 │ │ │ │ │ + lsl lr, lr, #2 │ │ │ │ │ + lsl ip, ip, #2 │ │ │ │ │ + add r3, r2, ip │ │ │ │ │ str r3, [sp] │ │ │ │ │ - add r3, r2, lr, lsl #2 │ │ │ │ │ + add r3, r2, lr │ │ │ │ │ + add r2, r1, ip │ │ │ │ │ ldr r4, [r0, #56] @ 0x38 │ │ │ │ │ - add r2, r1, ip, lsl #2 │ │ │ │ │ - add r1, r1, lr, lsl #2 │ │ │ │ │ + add r1, r1, lr │ │ │ │ │ blx r4 │ │ │ │ │ add sp, sp, #8 │ │ │ │ │ - pop {r4, pc} │ │ │ │ │ + ldr r4, [sp] │ │ │ │ │ + add sp, sp, #4 │ │ │ │ │ + pop {pc} @ (ldr pc, [sp], #4) │ │ │ │ │ │ │ │ │ │ -0000003c : │ │ │ │ │ +00000050 : │ │ │ │ │ print(): │ │ │ │ │ - mov r2, r0 │ │ │ │ │ ldr r3, [r1] │ │ │ │ │ + mov r2, r0 │ │ │ │ │ mov r0, r1 │ │ │ │ │ - ldr r1, [pc, #8] @ 58 │ │ │ │ │ + ldr r1, [pc, #8] @ 6c │ │ │ │ │ ldr r2, [r2, #64] @ 0x40 │ │ │ │ │ add r1, pc, r1 │ │ │ │ │ bx r3 │ │ │ │ │ .word 0x00000000 │ │ │ │ │ R_ARM_REL32 .LC0 │ │ │ │ │ │ │ │ │ │ -0000005c : │ │ │ │ │ +00000070 : │ │ │ │ │ destroy(): │ │ │ │ │ ldr r0, [r0, #64] @ 0x40 │ │ │ │ │ b 0 │ │ │ │ │ R_ARM_JUMP24 fftwf_plan_destroy_internal │ │ │ │ │ │ │ │ │ │ -00000064 : │ │ │ │ │ +00000078 : │ │ │ │ │ awake(): │ │ │ │ │ ldr r0, [r0, #64] @ 0x40 │ │ │ │ │ b 0 │ │ │ │ │ R_ARM_JUMP24 fftwf_plan_awake │ │ │ │ │ │ │ │ │ │ -0000006c : │ │ │ │ │ +00000080 : │ │ │ │ │ mkplan(): │ │ │ │ │ - push {r4, r5, r6, r7, lr} │ │ │ │ │ + strd r4, [sp, #-20]! @ 0xffffffec │ │ │ │ │ mov r4, r1 │ │ │ │ │ ldr r1, [r1, #24] │ │ │ │ │ + strd r6, [sp, #8] │ │ │ │ │ + str lr, [sp, #16] │ │ │ │ │ sub sp, sp, #36 @ 0x24 │ │ │ │ │ cmp r1, #0 │ │ │ │ │ - beq 90 │ │ │ │ │ + beq b8 │ │ │ │ │ mov r0, #0 │ │ │ │ │ add sp, sp, #36 @ 0x24 │ │ │ │ │ - pop {r4, r5, r6, r7, pc} │ │ │ │ │ + ldrd r4, [sp] │ │ │ │ │ + ldrd r6, [sp, #8] │ │ │ │ │ + add sp, sp, #16 │ │ │ │ │ + pop {pc} @ (ldr pc, [sp], #4) │ │ │ │ │ ldr r0, [r4, #4] │ │ │ │ │ - mov r6, r2 │ │ │ │ │ + mov r5, r2 │ │ │ │ │ bl 0 │ │ │ │ │ R_ARM_CALL fftwf_mpi_is_local │ │ │ │ │ cmp r0, #0 │ │ │ │ │ - bne 260 │ │ │ │ │ + bne 268 │ │ │ │ │ ldr r3, [r4, #8] │ │ │ │ │ cmp r3, #0 │ │ │ │ │ - bne 84 │ │ │ │ │ + bne a0 │ │ │ │ │ ldr r1, [r4, #12] │ │ │ │ │ - ldr r0, [r4, #20] │ │ │ │ │ add r3, sp, #20 │ │ │ │ │ add r2, sp, #16 │ │ │ │ │ + ldr r0, [r4, #20] │ │ │ │ │ bl 0 │ │ │ │ │ R_ARM_CALL fftwf_extract_reim │ │ │ │ │ - add r3, sp, #28 │ │ │ │ │ ldr r1, [r4, #16] │ │ │ │ │ - ldr r0, [r4, #20] │ │ │ │ │ + add r3, sp, #28 │ │ │ │ │ add r2, sp, #24 │ │ │ │ │ + ldr r0, [r4, #20] │ │ │ │ │ bl 0 │ │ │ │ │ R_ARM_CALL fftwf_extract_reim │ │ │ │ │ ldr r0, [r4, #28] │ │ │ │ │ add r1, sp, #12 │ │ │ │ │ bl 0 │ │ │ │ │ R_ARM_CALL MPI_Comm_rank │ │ │ │ │ ldr r3, [sp, #12] │ │ │ │ │ cmp r3, #0 │ │ │ │ │ - bne fc │ │ │ │ │ + bne 124 │ │ │ │ │ ldr r3, [r4, #8] │ │ │ │ │ cmp r3, #0 │ │ │ │ │ - bgt 1b8 │ │ │ │ │ + bgt 1dc │ │ │ │ │ bl 0 │ │ │ │ │ R_ARM_CALL fftwf_mktensor_0d │ │ │ │ │ mov r2, #0 │ │ │ │ │ + mov r6, r0 │ │ │ │ │ mov r1, r2 │ │ │ │ │ - mov r5, r0 │ │ │ │ │ mov r0, r2 │ │ │ │ │ bl 0 │ │ │ │ │ R_ARM_CALL fftwf_mktensor_1d │ │ │ │ │ ldr r3, [sp, #28] │ │ │ │ │ + mov r1, r0 │ │ │ │ │ + mov r0, r6 │ │ │ │ │ str r3, [sp, #4] │ │ │ │ │ ldr r3, [sp, #24] │ │ │ │ │ str r3, [sp] │ │ │ │ │ ldrd r2, [sp, #16] │ │ │ │ │ - mov r1, r0 │ │ │ │ │ - mov r0, r5 │ │ │ │ │ bl 0 │ │ │ │ │ R_ARM_CALL fftwf_mkproblem_dft_d │ │ │ │ │ mov r1, r0 │ │ │ │ │ - mov r0, r6 │ │ │ │ │ + mov r0, r5 │ │ │ │ │ bl 0 │ │ │ │ │ R_ARM_CALL fftwf_mkplan_d │ │ │ │ │ - ldr r1, [r4, #28] │ │ │ │ │ mov r6, r0 │ │ │ │ │ clz r0, r0 │ │ │ │ │ + ldr r1, [r4, #28] │ │ │ │ │ lsr r0, r0, #5 │ │ │ │ │ bl 0 │ │ │ │ │ R_ARM_CALL fftwf_mpi_any_true │ │ │ │ │ cmp r0, #0 │ │ │ │ │ - bne 84 │ │ │ │ │ - ldr r2, [pc, #276] @ 278 │ │ │ │ │ - ldr r1, [pc, #276] @ 27c │ │ │ │ │ + bne a0 │ │ │ │ │ + ldr r2, [pc, #244] @ 280 │ │ │ │ │ + mov r0, #80 @ 0x50 │ │ │ │ │ + ldr r1, [pc, #240] @ 284 │ │ │ │ │ add r2, pc, r2 │ │ │ │ │ add r1, pc, r1 │ │ │ │ │ - mov r0, #80 @ 0x50 │ │ │ │ │ bl 0 │ │ │ │ │ R_ARM_CALL fftwf_mkplan_rdft │ │ │ │ │ ldr r2, [r4, #16] │ │ │ │ │ + mov r5, r0 │ │ │ │ │ + add r1, r0, #8 │ │ │ │ │ + str r6, [r0, #64] @ 0x40 │ │ │ │ │ ldr r3, [sp, #24] │ │ │ │ │ sub r3, r3, r2 │ │ │ │ │ asr r3, r3, #2 │ │ │ │ │ str r3, [r0, #68] @ 0x44 │ │ │ │ │ ldr r3, [sp, #28] │ │ │ │ │ - mov r5, r0 │ │ │ │ │ sub r3, r3, r2 │ │ │ │ │ asr r3, r3, #2 │ │ │ │ │ - add r1, r0, #8 │ │ │ │ │ - str r6, [r0, #64] @ 0x40 │ │ │ │ │ str r3, [r0, #72] @ 0x48 │ │ │ │ │ add r0, r6, #8 │ │ │ │ │ bl 0 │ │ │ │ │ R_ARM_CALL fftwf_ops_cpy │ │ │ │ │ mov r0, r5 │ │ │ │ │ - add sp, sp, #36 @ 0x24 │ │ │ │ │ - pop {r4, r5, r6, r7, pc} │ │ │ │ │ + b a4 │ │ │ │ │ ldr r3, [r4, #4] │ │ │ │ │ - ldr r5, [r3] │ │ │ │ │ - mov r0, r5 │ │ │ │ │ + ldr r7, [r3] │ │ │ │ │ + mov r0, r7 │ │ │ │ │ bl 0 │ │ │ │ │ R_ARM_CALL fftwf_mktensor │ │ │ │ │ - sub r2, r5, #1 │ │ │ │ │ - ldr ip, [r4, #4] │ │ │ │ │ - add lr, r2, r2, lsl #1 │ │ │ │ │ - cmp r2, #0 │ │ │ │ │ - mov r7, r0 │ │ │ │ │ + ldr r2, [r4, #4] │ │ │ │ │ + sub ip, r7, #1 │ │ │ │ │ + mov r6, r0 │ │ │ │ │ + add lr, ip, ip, lsl #1 │ │ │ │ │ + cmp ip, #0 │ │ │ │ │ ldr r0, [r4, #8] │ │ │ │ │ - add r3, r7, lr, lsl #2 │ │ │ │ │ + add r7, r7, r7, lsl #1 │ │ │ │ │ + lsl lr, lr, #2 │ │ │ │ │ + lsl r7, r7, #2 │ │ │ │ │ + add r3, r6, lr │ │ │ │ │ + add lr, r2, lr │ │ │ │ │ + ldr lr, [lr, #4] │ │ │ │ │ lsl r1, r0, #1 │ │ │ │ │ - add lr, ip, lr, lsl #2 │ │ │ │ │ str r1, [r3, #12] │ │ │ │ │ - add r3, r5, r5, lsl #1 │ │ │ │ │ - ldr lr, [lr, #4] │ │ │ │ │ - lsl r5, r3, #2 │ │ │ │ │ - add r3, r7, r3, lsl #2 │ │ │ │ │ - str r1, [r3, #-4] │ │ │ │ │ + add r3, r6, r7 │ │ │ │ │ str lr, [r3, #-8] │ │ │ │ │ - ble 234 │ │ │ │ │ - add ip, ip, r5 │ │ │ │ │ + str r1, [r3, #-4] │ │ │ │ │ + ble 25c │ │ │ │ │ + add r2, r2, r7 │ │ │ │ │ mul r1, lr, r1 │ │ │ │ │ - subs r2, r2, #1 │ │ │ │ │ - str r1, [r3, #-12] │ │ │ │ │ - str r1, [r3, #-16] │ │ │ │ │ - ldr lr, [ip, #-20] @ 0xffffffec │ │ │ │ │ - str lr, [r3, #-20] @ 0xffffffec │ │ │ │ │ - sub ip, ip, #12 │ │ │ │ │ + subs ip, ip, #1 │ │ │ │ │ sub r3, r3, #12 │ │ │ │ │ - bne 210 │ │ │ │ │ + sub r2, r2, #12 │ │ │ │ │ + str r1, [r3, #-4] │ │ │ │ │ + str r1, [r3] │ │ │ │ │ + ldr lr, [r2, #-8] │ │ │ │ │ + str lr, [r3, #-8] │ │ │ │ │ + bne 238 │ │ │ │ │ mov r2, #2 │ │ │ │ │ mov r1, r2 │ │ │ │ │ - bl 0 │ │ │ │ │ - R_ARM_CALL fftwf_mktensor_1d │ │ │ │ │ - ldr r3, [sp, #28] │ │ │ │ │ - str r3, [sp, #4] │ │ │ │ │ - ldr r3, [sp, #24] │ │ │ │ │ - str r3, [sp] │ │ │ │ │ - ldrd r2, [sp, #16] │ │ │ │ │ - mov r1, r0 │ │ │ │ │ - mov r0, r7 │ │ │ │ │ - b 130 │ │ │ │ │ + b 138 │ │ │ │ │ ldr r0, [r4, #4] │ │ │ │ │ mov r1, #1 │ │ │ │ │ bl 0 │ │ │ │ │ R_ARM_CALL fftwf_mpi_is_local │ │ │ │ │ cmp r0, #0 │ │ │ │ │ - beq a4 │ │ │ │ │ - b b0 │ │ │ │ │ - .word 0xfffffe94 │ │ │ │ │ - .word 0x0000010c │ │ │ │ │ + beq cc │ │ │ │ │ + b d8 │ │ │ │ │ + .word 0xfffffe68 │ │ │ │ │ + .word 0x000000e8 │ │ │ │ │ R_ARM_REL32 .data.rel.ro │ │ │ │ │ │ │ │ │ │ -00000280 : │ │ │ │ │ +00000288 : │ │ │ │ │ fftwf_mpi_dft_serial_applicable(): │ │ │ │ │ ldr r1, [r0, #24] │ │ │ │ │ cmp r1, #0 │ │ │ │ │ - beq 294 │ │ │ │ │ + beq 29c │ │ │ │ │ mov r0, #0 │ │ │ │ │ bx lr │ │ │ │ │ - push {r4, lr} │ │ │ │ │ + str r4, [sp, #-8]! │ │ │ │ │ mov r4, r0 │ │ │ │ │ ldr r0, [r0, #4] │ │ │ │ │ + str lr, [sp, #4] │ │ │ │ │ bl 0 │ │ │ │ │ R_ARM_CALL fftwf_mpi_is_local │ │ │ │ │ cmp r0, #0 │ │ │ │ │ - bne 2bc │ │ │ │ │ + bne 2d0 │ │ │ │ │ ldr r0, [r4, #8] │ │ │ │ │ clz r0, r0 │ │ │ │ │ lsr r0, r0, #5 │ │ │ │ │ - pop {r4, pc} │ │ │ │ │ + ldr r4, [sp] │ │ │ │ │ + add sp, sp, #4 │ │ │ │ │ + pop {pc} @ (ldr pc, [sp], #4) │ │ │ │ │ ldr r0, [r4, #4] │ │ │ │ │ mov r1, #1 │ │ │ │ │ bl 0 │ │ │ │ │ R_ARM_CALL fftwf_mpi_is_local │ │ │ │ │ cmp r0, #0 │ │ │ │ │ - beq 2ac │ │ │ │ │ - mov r0, #1 │ │ │ │ │ - pop {r4, pc} │ │ │ │ │ + movne r0, #1 │ │ │ │ │ + bne 2c4 │ │ │ │ │ + b 2b8 │ │ │ │ │ │ │ │ │ │ -000002d8 : │ │ │ │ │ +000002ec : │ │ │ │ │ fftwf_mpi_dft_serial_register(): │ │ │ │ │ - ldr r1, [pc, #32] @ 300 │ │ │ │ │ - push {r4, lr} │ │ │ │ │ - add r1, pc, r1 │ │ │ │ │ + ldr r1, [pc, #44] @ 320 │ │ │ │ │ + str r4, [sp, #-8]! │ │ │ │ │ mov r4, r0 │ │ │ │ │ mov r0, #8 │ │ │ │ │ + str lr, [sp, #4] │ │ │ │ │ + add r1, pc, r1 │ │ │ │ │ bl 0 │ │ │ │ │ R_ARM_CALL fftwf_mksolver │ │ │ │ │ + ldr lr, [sp, #4] │ │ │ │ │ mov r1, r0 │ │ │ │ │ mov r0, r4 │ │ │ │ │ - pop {r4, lr} │ │ │ │ │ + ldr r4, [sp] │ │ │ │ │ + add sp, sp, #8 │ │ │ │ │ b 0 │ │ │ │ │ R_ARM_JUMP24 fftwf_solver_register │ │ │ │ │ .word 0x00000018 │ │ │ │ │ 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: 3188 (bytes into file) │ │ │ │ │ + Start of section headers: 3312 (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 0xc74: │ │ │ │ │ +There are 15 section headers, starting at offset 0xcf0: │ │ │ │ │ │ │ │ │ │ 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 00054c 00 AX 0 0 4 │ │ │ │ │ - [ 2] .rel.text REL 00000000 000aac 000118 08 I 12 1 4 │ │ │ │ │ - [ 3] .data PROGBITS 00000000 000580 000000 00 WA 0 0 1 │ │ │ │ │ - [ 4] .bss NOBITS 00000000 000580 000000 00 WA 0 0 1 │ │ │ │ │ - [ 5] .rodata.str1.4 PROGBITS 00000000 000580 00002a 01 AMS 0 0 4 │ │ │ │ │ - [ 6] .data.rel.ro PROGBITS 00000000 0005aa 000010 00 WA 0 0 4 │ │ │ │ │ - [ 7] .rel.data.rel.ro REL 00000000 000bc4 000020 08 I 12 6 4 │ │ │ │ │ - [ 8] .data.rel.ro.local PROGBITS 00000000 0005ba 00000c 00 WA 0 0 4 │ │ │ │ │ - [ 9] .rel.data.rel.ro.local REL 00000000 000be4 000008 08 I 12 8 4 │ │ │ │ │ - [10] .note.GNU-stack PROGBITS 00000000 0005c6 000000 00 0 0 1 │ │ │ │ │ - [11] .ARM.attributes ARM_ATTRIBUTES 00000000 0005c6 00002b 00 0 0 1 │ │ │ │ │ - [12] .symtab SYMTAB 00000000 0005f4 0002c0 10 13 22 4 │ │ │ │ │ - [13] .strtab STRTAB 00000000 0008b4 0001f5 00 0 0 1 │ │ │ │ │ - [14] .shstrtab STRTAB 00000000 000bec 000087 00 0 0 1 │ │ │ │ │ + [ 1] .text PROGBITS 00000000 000034 0005c8 00 AX 0 0 4 │ │ │ │ │ + [ 2] .rel.text REL 00000000 000b28 000118 08 I 12 1 4 │ │ │ │ │ + [ 3] .data PROGBITS 00000000 0005fc 000000 00 WA 0 0 1 │ │ │ │ │ + [ 4] .bss NOBITS 00000000 0005fc 000000 00 WA 0 0 1 │ │ │ │ │ + [ 5] .rodata.str1.4 PROGBITS 00000000 0005fc 00002a 01 AMS 0 0 4 │ │ │ │ │ + [ 6] .data.rel.ro PROGBITS 00000000 000626 000010 00 WA 0 0 4 │ │ │ │ │ + [ 7] .rel.data.rel.ro REL 00000000 000c40 000020 08 I 12 6 4 │ │ │ │ │ + [ 8] .data.rel.ro.local PROGBITS 00000000 000636 00000c 00 WA 0 0 4 │ │ │ │ │ + [ 9] .rel.data.rel.ro.local REL 00000000 000c60 000008 08 I 12 8 4 │ │ │ │ │ + [10] .note.GNU-stack PROGBITS 00000000 000642 000000 00 0 0 1 │ │ │ │ │ + [11] .ARM.attributes ARM_ATTRIBUTES 00000000 000642 00002b 00 0 0 1 │ │ │ │ │ + [12] .symtab SYMTAB 00000000 000670 0002c0 10 13 22 4 │ │ │ │ │ + [13] .strtab STRTAB 00000000 000930 0001f5 00 0 0 1 │ │ │ │ │ + [14] .shstrtab STRTAB 00000000 000c68 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: 00000000 0 NOTYPE LOCAL DEFAULT 1 $a │ │ │ │ │ - 2: 00000000 128 FUNC LOCAL DEFAULT 1 apply │ │ │ │ │ + 2: 00000000 148 FUNC LOCAL DEFAULT 1 apply │ │ │ │ │ 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: 00000080 96 FUNC LOCAL DEFAULT 1 print │ │ │ │ │ - 8: 000000d4 0 NOTYPE LOCAL DEFAULT 1 $d │ │ │ │ │ - 9: 000000e0 0 NOTYPE LOCAL DEFAULT 1 $a │ │ │ │ │ - 10: 000000e0 28 FUNC LOCAL DEFAULT 1 destroy │ │ │ │ │ - 11: 000000fc 980 FUNC LOCAL DEFAULT 1 mkplan │ │ │ │ │ - 12: 000004c8 0 NOTYPE LOCAL DEFAULT 1 $d │ │ │ │ │ - 13: 000004d0 0 NOTYPE LOCAL DEFAULT 1 $a │ │ │ │ │ - 14: 000004d0 36 FUNC LOCAL DEFAULT 1 awake │ │ │ │ │ - 15: 00000548 0 NOTYPE LOCAL DEFAULT 1 $d │ │ │ │ │ + 7: 00000094 108 FUNC LOCAL DEFAULT 1 print │ │ │ │ │ + 8: 000000f4 0 NOTYPE LOCAL DEFAULT 1 $d │ │ │ │ │ + 9: 00000100 0 NOTYPE LOCAL DEFAULT 1 $a │ │ │ │ │ + 10: 00000100 40 FUNC LOCAL DEFAULT 1 destroy │ │ │ │ │ + 11: 00000128 1020 FUNC LOCAL DEFAULT 1 mkplan │ │ │ │ │ + 12: 0000051c 0 NOTYPE LOCAL DEFAULT 1 $d │ │ │ │ │ + 13: 00000524 0 NOTYPE LOCAL DEFAULT 1 $a │ │ │ │ │ + 14: 00000524 56 FUNC LOCAL DEFAULT 1 awake │ │ │ │ │ + 15: 000005c4 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: 000004f4 88 FUNC GLOBAL DEFAULT 1 fftwf_mpi_dft_rank_geq2_register │ │ │ │ │ + 40: 0000055c 108 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,49 +1,49 @@ │ │ │ │ │ │ │ │ │ │ -Relocation section '.rel.text' at offset 0xaac contains 35 entries: │ │ │ │ │ +Relocation section '.rel.text' at offset 0xb28 contains 35 entries: │ │ │ │ │ Offset Info Type Sym. Value Symbol's Name │ │ │ │ │ -000000d4 00000503 R_ARM_REL32 00000004 .LC1 │ │ │ │ │ -000000d8 00000603 R_ARM_REL32 00000008 .LC2 │ │ │ │ │ -000000dc 00000403 R_ARM_REL32 00000000 .LC0 │ │ │ │ │ -000000ec 0000161c R_ARM_CALL 00000000 fftwf_plan_destroy_internal │ │ │ │ │ -000000f8 0000161d R_ARM_JUMP24 00000000 fftwf_plan_destroy_internal │ │ │ │ │ -00000168 0000171c R_ARM_CALL 00000000 fftwf_mpi_is_local_after │ │ │ │ │ -00000180 0000171c R_ARM_CALL 00000000 fftwf_mpi_is_local_after │ │ │ │ │ -000001ac 0000181c R_ARM_CALL 00000000 fftwf_extract_reim │ │ │ │ │ -000001c4 0000181c R_ARM_CALL 00000000 fftwf_extract_reim │ │ │ │ │ -000001f8 0000191c R_ARM_CALL 00000000 MPI_Comm_rank │ │ │ │ │ -00000204 00001a1c R_ARM_CALL 00000000 MPI_Comm_size │ │ │ │ │ -00000214 00001b1c R_ARM_CALL 00000000 fftwf_mktensor │ │ │ │ │ -00000314 00001c1c R_ARM_CALL 00000000 fftwf_tensor_sz │ │ │ │ │ -00000338 00001d1c R_ARM_CALL 00000000 fftwf_mpi_block │ │ │ │ │ -00000350 00001e1c R_ARM_CALL 00000000 fftwf_mktensor_2d │ │ │ │ │ -00000370 00001f1c R_ARM_CALL 00000000 fftwf_mkproblem_dft_d │ │ │ │ │ -0000037c 0000201c R_ARM_CALL 00000000 fftwf_mkplan_d │ │ │ │ │ -00000390 0000211c R_ARM_CALL 00000000 fftwf_mpi_any_true │ │ │ │ │ -000003a0 0000221c R_ARM_CALL 00000000 fftwf_mpi_mkdtensor │ │ │ │ │ -000003e8 0000231c R_ARM_CALL 00000000 fftwf_mpi_mkproblem_dft_d │ │ │ │ │ -000003f4 0000201c R_ARM_CALL 00000000 fftwf_mkplan_d │ │ │ │ │ -00000408 0000211c R_ARM_CALL 00000000 fftwf_mpi_any_true │ │ │ │ │ -00000428 0000241c R_ARM_CALL 00000000 fftwf_mkplan_rdft │ │ │ │ │ -0000047c 0000251c R_ARM_CALL 00000000 fftwf_ops_add │ │ │ │ │ -0000049c 0000161c R_ARM_CALL 00000000 fftwf_plan_destroy_internal │ │ │ │ │ -000004a4 0000161c R_ARM_CALL 00000000 fftwf_plan_destroy_internal │ │ │ │ │ -000004b8 0000261c R_ARM_CALL 00000000 fftwf_mpi_dft_serial_applicable │ │ │ │ │ -000004cc 00001003 R_ARM_REL32 00000000 .data.rel.ro │ │ │ │ │ -000004e0 0000271c R_ARM_CALL 00000000 fftwf_plan_awake │ │ │ │ │ -000004f0 0000271d R_ARM_JUMP24 00000000 fftwf_plan_awake │ │ │ │ │ -0000050c 0000291c R_ARM_CALL 00000000 fftwf_mksolver │ │ │ │ │ -00000520 00002a1c R_ARM_CALL 00000000 fftwf_solver_register │ │ │ │ │ -0000052c 0000291c R_ARM_CALL 00000000 fftwf_mksolver │ │ │ │ │ -00000544 00002a1d R_ARM_JUMP24 00000000 fftwf_solver_register │ │ │ │ │ -00000548 00001303 R_ARM_REL32 00000000 .data.rel.ro.local │ │ │ │ │ +000000f4 00000503 R_ARM_REL32 00000004 .LC1 │ │ │ │ │ +000000f8 00000603 R_ARM_REL32 00000008 .LC2 │ │ │ │ │ +000000fc 00000403 R_ARM_REL32 00000000 .LC0 │ │ │ │ │ +00000110 0000161c R_ARM_CALL 00000000 fftwf_plan_destroy_internal │ │ │ │ │ +00000124 0000161d R_ARM_JUMP24 00000000 fftwf_plan_destroy_internal │ │ │ │ │ +000001b8 0000171c R_ARM_CALL 00000000 fftwf_mpi_is_local_after │ │ │ │ │ +000001d0 0000171c R_ARM_CALL 00000000 fftwf_mpi_is_local_after │ │ │ │ │ +000001fc 0000181c R_ARM_CALL 00000000 fftwf_extract_reim │ │ │ │ │ +00000214 0000181c R_ARM_CALL 00000000 fftwf_extract_reim │ │ │ │ │ +00000248 0000191c R_ARM_CALL 00000000 MPI_Comm_rank │ │ │ │ │ +00000254 00001a1c R_ARM_CALL 00000000 MPI_Comm_size │ │ │ │ │ +00000264 00001b1c R_ARM_CALL 00000000 fftwf_mktensor │ │ │ │ │ +00000368 00001c1c R_ARM_CALL 00000000 fftwf_tensor_sz │ │ │ │ │ +00000388 00001d1c R_ARM_CALL 00000000 fftwf_mpi_block │ │ │ │ │ +000003a4 00001e1c R_ARM_CALL 00000000 fftwf_mktensor_2d │ │ │ │ │ +000003c4 00001f1c R_ARM_CALL 00000000 fftwf_mkproblem_dft_d │ │ │ │ │ +000003d0 0000201c R_ARM_CALL 00000000 fftwf_mkplan_d │ │ │ │ │ +000003e4 0000211c R_ARM_CALL 00000000 fftwf_mpi_any_true │ │ │ │ │ +000003f4 0000221c R_ARM_CALL 00000000 fftwf_mpi_mkdtensor │ │ │ │ │ +0000043c 0000231c R_ARM_CALL 00000000 fftwf_mpi_mkproblem_dft_d │ │ │ │ │ +00000448 0000201c R_ARM_CALL 00000000 fftwf_mkplan_d │ │ │ │ │ +0000045c 0000211c R_ARM_CALL 00000000 fftwf_mpi_any_true │ │ │ │ │ +0000047c 0000241c R_ARM_CALL 00000000 fftwf_mkplan_rdft │ │ │ │ │ +000004d4 0000251c R_ARM_CALL 00000000 fftwf_ops_add │ │ │ │ │ +000004f0 0000161c R_ARM_CALL 00000000 fftwf_plan_destroy_internal │ │ │ │ │ +000004f8 0000161c R_ARM_CALL 00000000 fftwf_plan_destroy_internal │ │ │ │ │ +0000050c 0000261c R_ARM_CALL 00000000 fftwf_mpi_dft_serial_applicable │ │ │ │ │ +00000520 00001003 R_ARM_REL32 00000000 .data.rel.ro │ │ │ │ │ +0000053c 0000271c R_ARM_CALL 00000000 fftwf_plan_awake │ │ │ │ │ +00000558 0000271d R_ARM_JUMP24 00000000 fftwf_plan_awake │ │ │ │ │ +0000057c 0000291c R_ARM_CALL 00000000 fftwf_mksolver │ │ │ │ │ +00000590 00002a1c R_ARM_CALL 00000000 fftwf_solver_register │ │ │ │ │ +0000059c 0000291c R_ARM_CALL 00000000 fftwf_mksolver │ │ │ │ │ +000005c0 00002a1d R_ARM_JUMP24 00000000 fftwf_solver_register │ │ │ │ │ +000005c4 00001303 R_ARM_REL32 00000000 .data.rel.ro.local │ │ │ │ │ │ │ │ │ │ -Relocation section '.rel.data.rel.ro' at offset 0xbc4 contains 4 entries: │ │ │ │ │ +Relocation section '.rel.data.rel.ro' at offset 0xc40 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 000004d0 awake │ │ │ │ │ -00000008 00000702 R_ARM_ABS32 00000080 print │ │ │ │ │ -0000000c 00000a02 R_ARM_ABS32 000000e0 destroy │ │ │ │ │ +00000004 00000e02 R_ARM_ABS32 00000524 awake │ │ │ │ │ +00000008 00000702 R_ARM_ABS32 00000094 print │ │ │ │ │ +0000000c 00000a02 R_ARM_ABS32 00000100 destroy │ │ │ │ │ │ │ │ │ │ -Relocation section '.rel.data.rel.ro.local' at offset 0xbe4 contains 1 entry: │ │ │ │ │ +Relocation section '.rel.data.rel.ro.local' at offset 0xc60 contains 1 entry: │ │ │ │ │ Offset Info Type Sym. Value Symbol's Name │ │ │ │ │ -00000004 00000b02 R_ARM_ABS32 000000fc mkplan │ │ │ │ │ +00000004 00000b02 R_ARM_ABS32 00000128 mkplan │ │ │ │ ├── objdump --line-numbers --disassemble --demangle --reloc --no-show-raw-insn --section=.text {} │ │ │ │ │ @@ -1,396 +1,427 @@ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ Disassembly of section .text: │ │ │ │ │ │ │ │ │ │ 00000000 : │ │ │ │ │ apply(): │ │ │ │ │ - push {r4, r5, r6, r7, lr} │ │ │ │ │ + strd r4, [sp, #-20]! @ 0xffffffec │ │ │ │ │ mov r4, r0 │ │ │ │ │ - ldr lr, [r4, #80] @ 0x50 │ │ │ │ │ mov r5, r1 │ │ │ │ │ - ldr r0, [r0, #64] @ 0x40 │ │ │ │ │ - ldr r1, [r4, #72] @ 0x48 │ │ │ │ │ + ldr r3, [r4, #72] @ 0x48 │ │ │ │ │ + strd r6, [sp, #8] │ │ │ │ │ mov r6, r2 │ │ │ │ │ - ldr r2, [r4, #76] @ 0x4c │ │ │ │ │ + ldr ip, [r4, #76] @ 0x4c │ │ │ │ │ + str lr, [sp, #16] │ │ │ │ │ + sub sp, sp, #12 │ │ │ │ │ + ldr lr, [r4, #80] @ 0x50 │ │ │ │ │ + lsl r3, r3, #2 │ │ │ │ │ + ldr r0, [r0, #64] @ 0x40 │ │ │ │ │ + lsl ip, ip, #2 │ │ │ │ │ + add r1, r1, r3 │ │ │ │ │ cmp lr, #0 │ │ │ │ │ - lsl r3, r1, #2 │ │ │ │ │ - lsl ip, r2, #2 │ │ │ │ │ + add r2, r5, ip │ │ │ │ │ ldr r7, [r0, #56] @ 0x38 │ │ │ │ │ - sub sp, sp, #12 │ │ │ │ │ - add r1, r5, r1, lsl #2 │ │ │ │ │ - add r2, r5, r2, lsl #2 │ │ │ │ │ - beq 70 │ │ │ │ │ + beq 84 │ │ │ │ │ add ip, r6, ip │ │ │ │ │ add r3, r6, r3 │ │ │ │ │ + mov r5, r6 │ │ │ │ │ str ip, [sp] │ │ │ │ │ blx r7 │ │ │ │ │ - mov r5, r6 │ │ │ │ │ ldr r0, [r4, #68] @ 0x44 │ │ │ │ │ mov r2, r6 │ │ │ │ │ mov r1, r5 │ │ │ │ │ ldr r3, [r0, #56] @ 0x38 │ │ │ │ │ add sp, sp, #12 │ │ │ │ │ - pop {r4, r5, r6, r7, lr} │ │ │ │ │ + ldrd r4, [sp] │ │ │ │ │ + ldrd r6, [sp, #8] │ │ │ │ │ + ldr lr, [sp, #16] │ │ │ │ │ + add sp, sp, #20 │ │ │ │ │ bx r3 │ │ │ │ │ mov r3, r1 │ │ │ │ │ str r2, [sp] │ │ │ │ │ blx r7 │ │ │ │ │ - b 54 │ │ │ │ │ + b 5c │ │ │ │ │ │ │ │ │ │ -00000080 : │ │ │ │ │ +00000094 : │ │ │ │ │ print(): │ │ │ │ │ mov r3, r0 │ │ │ │ │ + mov r0, r1 │ │ │ │ │ + str r4, [sp, #-8]! │ │ │ │ │ ldr r2, [r3, #80] @ 0x50 │ │ │ │ │ - push {r4, lr} │ │ │ │ │ - cmp r2, #2 │ │ │ │ │ - ldr r4, [r1] │ │ │ │ │ + str lr, [sp, #4] │ │ │ │ │ sub sp, sp, #8 │ │ │ │ │ - mov r0, r1 │ │ │ │ │ - beq c8 │ │ │ │ │ - ldr r2, [pc, #44] @ d4 │ │ │ │ │ + ldr r4, [r1] │ │ │ │ │ + cmp r2, #2 │ │ │ │ │ + beq e8 │ │ │ │ │ + ldr r2, [pc, #52] @ f4 │ │ │ │ │ add r2, pc, r2 │ │ │ │ │ ldr r1, [r3, #68] @ 0x44 │ │ │ │ │ str r1, [sp] │ │ │ │ │ - ldr r1, [pc, #32] @ d8 │ │ │ │ │ + ldr r1, [pc, #40] @ f8 │ │ │ │ │ ldr r3, [r3, #64] @ 0x40 │ │ │ │ │ add r1, pc, r1 │ │ │ │ │ blx r4 │ │ │ │ │ add sp, sp, #8 │ │ │ │ │ - pop {r4, pc} │ │ │ │ │ - ldr r2, [pc, #12] @ dc │ │ │ │ │ + ldr r4, [sp] │ │ │ │ │ + add sp, sp, #4 │ │ │ │ │ + pop {pc} @ (ldr pc, [sp], #4) │ │ │ │ │ + ldr r2, [pc, #12] @ fc │ │ │ │ │ add r2, pc, r2 │ │ │ │ │ - b a8 │ │ │ │ │ - .word 0x00000028 │ │ │ │ │ + b c0 │ │ │ │ │ + .word 0x00000030 │ │ │ │ │ R_ARM_REL32 .LC1 │ │ │ │ │ - .word 0x00000018 │ │ │ │ │ + .word 0x00000020 │ │ │ │ │ R_ARM_REL32 .LC2 │ │ │ │ │ .word 0x00000008 │ │ │ │ │ R_ARM_REL32 .LC0 │ │ │ │ │ │ │ │ │ │ -000000e0 : │ │ │ │ │ +00000100 : │ │ │ │ │ destroy(): │ │ │ │ │ - push {r4, lr} │ │ │ │ │ + str r4, [sp, #-8]! │ │ │ │ │ mov r4, r0 │ │ │ │ │ ldr r0, [r0, #68] @ 0x44 │ │ │ │ │ + str lr, [sp, #4] │ │ │ │ │ bl 0 │ │ │ │ │ R_ARM_CALL fftwf_plan_destroy_internal │ │ │ │ │ + ldr lr, [sp, #4] │ │ │ │ │ ldr r0, [r4, #64] @ 0x40 │ │ │ │ │ - pop {r4, lr} │ │ │ │ │ + ldr r4, [sp] │ │ │ │ │ + add sp, sp, #8 │ │ │ │ │ b 0 │ │ │ │ │ R_ARM_JUMP24 fftwf_plan_destroy_internal │ │ │ │ │ │ │ │ │ │ -000000fc : │ │ │ │ │ +00000128 : │ │ │ │ │ mkplan(): │ │ │ │ │ - push {r4, r5, r6, r7, r8, r9, sl, fp, lr} │ │ │ │ │ + strd r4, [sp, #-36]! @ 0xffffffdc │ │ │ │ │ mov r4, r1 │ │ │ │ │ ldr r1, [r1, #4] │ │ │ │ │ + strd r6, [sp, #8] │ │ │ │ │ + strd r8, [sp, #16] │ │ │ │ │ + strd sl, [sp, #24] │ │ │ │ │ + str lr, [sp, #32] │ │ │ │ │ sub sp, sp, #52 @ 0x34 │ │ │ │ │ ldr r3, [r1] │ │ │ │ │ cmp r3, #1 │ │ │ │ │ - ble 124 │ │ │ │ │ + ble 160 │ │ │ │ │ ldr r3, [r4, #24] │ │ │ │ │ cmp r3, #0 │ │ │ │ │ - beq 130 │ │ │ │ │ + beq 180 │ │ │ │ │ mov r0, #0 │ │ │ │ │ add sp, sp, #52 @ 0x34 │ │ │ │ │ - pop {r4, r5, r6, r7, r8, r9, sl, fp, pc} │ │ │ │ │ + ldrd r4, [sp] │ │ │ │ │ + ldrd r6, [sp, #8] │ │ │ │ │ + ldrd r8, [sp, #16] │ │ │ │ │ + ldrd sl, [sp, #24] │ │ │ │ │ + add sp, sp, #32 │ │ │ │ │ + pop {pc} @ (ldr pc, [sp], #4) │ │ │ │ │ ldr r3, [r0, #8] │ │ │ │ │ mov r7, r0 │ │ │ │ │ - cmp r3, #0 │ │ │ │ │ mov r6, r2 │ │ │ │ │ - beq 160 │ │ │ │ │ + cmp r3, #0 │ │ │ │ │ + beq 1b0 │ │ │ │ │ ldr r3, [r2, #164] @ 0xa4 │ │ │ │ │ tst r3, #4096 @ 0x1000 │ │ │ │ │ - bne 124 │ │ │ │ │ + bne 160 │ │ │ │ │ ldr r2, [r4, #12] │ │ │ │ │ ldr r3, [r4, #16] │ │ │ │ │ cmp r2, r3 │ │ │ │ │ - beq 124 │ │ │ │ │ + beq 160 │ │ │ │ │ mov r2, #0 │ │ │ │ │ mov r0, #1 │ │ │ │ │ bl 0 │ │ │ │ │ R_ARM_CALL fftwf_mpi_is_local_after │ │ │ │ │ cmp r0, #0 │ │ │ │ │ - beq 124 │ │ │ │ │ + beq 160 │ │ │ │ │ mov r2, #1 │ │ │ │ │ ldr r1, [r4, #4] │ │ │ │ │ mov r0, r2 │ │ │ │ │ bl 0 │ │ │ │ │ R_ARM_CALL fftwf_mpi_is_local_after │ │ │ │ │ cmp r0, #0 │ │ │ │ │ - beq 124 │ │ │ │ │ + beq 160 │ │ │ │ │ ldr r3, [r6, #164] @ 0xa4 │ │ │ │ │ tst r3, #8 │ │ │ │ │ - bne 4b4 │ │ │ │ │ + bne 508 │ │ │ │ │ ldr sl, [r4, #12] │ │ │ │ │ - ldr r0, [r4, #20] │ │ │ │ │ add r3, sp, #28 │ │ │ │ │ add r2, sp, #24 │ │ │ │ │ + ldr r0, [r4, #20] │ │ │ │ │ mov r1, sl │ │ │ │ │ bl 0 │ │ │ │ │ R_ARM_CALL fftwf_extract_reim │ │ │ │ │ ldr fp, [r4, #16] │ │ │ │ │ add r3, sp, #36 @ 0x24 │ │ │ │ │ - ldr r0, [r4, #20] │ │ │ │ │ add r2, sp, #32 │ │ │ │ │ + ldr r0, [r4, #20] │ │ │ │ │ mov r1, fp │ │ │ │ │ bl 0 │ │ │ │ │ R_ARM_CALL fftwf_extract_reim │ │ │ │ │ ldr r3, [r7, #8] │ │ │ │ │ cmp r3, #0 │ │ │ │ │ - bne 48c │ │ │ │ │ + bne 4e0 │ │ │ │ │ ldr r3, [r6, #164] @ 0xa4 │ │ │ │ │ tst r3, #4096 @ 0x1000 │ │ │ │ │ - bne 48c │ │ │ │ │ + bne 4e0 │ │ │ │ │ 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_CALL MPI_Comm_rank │ │ │ │ │ - add r1, sp, #44 @ 0x2c │ │ │ │ │ ldr r0, [r4, #28] │ │ │ │ │ + add r1, sp, #44 @ 0x2c │ │ │ │ │ bl 0 │ │ │ │ │ R_ARM_CALL MPI_Comm_size │ │ │ │ │ ldr r3, [r4, #4] │ │ │ │ │ ldr r0, [r3] │ │ │ │ │ sub r0, r0, #1 │ │ │ │ │ bl 0 │ │ │ │ │ R_ARM_CALL fftwf_mktensor │ │ │ │ │ ldr r9, [r4, #4] │ │ │ │ │ + mov r5, r0 │ │ │ │ │ ldr lr, [r9] │ │ │ │ │ add r2, lr, lr, lsl #1 │ │ │ │ │ - add r3, lr, lr, lsl #1 │ │ │ │ │ + add r1, lr, lr, lsl #1 │ │ │ │ │ add r2, r9, r2, lsl #2 │ │ │ │ │ + lsl r1, r1, #2 │ │ │ │ │ ldr r2, [r2, #-8] │ │ │ │ │ - lsl r1, r3, #2 │ │ │ │ │ - mov r5, r0 │ │ │ │ │ - add r3, r0, r3, lsl #2 │ │ │ │ │ + add r3, r0, r1 │ │ │ │ │ ldr r0, [r4, #8] │ │ │ │ │ str r2, [r3, #-20] @ 0xffffffec │ │ │ │ │ add r2, lr, lr, lsl #1 │ │ │ │ │ lsl r0, r0, #1 │ │ │ │ │ add r2, r5, r2, lsl #2 │ │ │ │ │ str r0, [r2, #-12] │ │ │ │ │ str r0, [r3, #-16] │ │ │ │ │ subs r0, lr, #3 │ │ │ │ │ - bmi 310 │ │ │ │ │ + bmi 364 │ │ │ │ │ cmp lr, #4 │ │ │ │ │ sub r2, r1, #16 │ │ │ │ │ sub ip, r1, #20 │ │ │ │ │ - ble 4ac │ │ │ │ │ - sub lr, lr, #5 │ │ │ │ │ + ble 500 │ │ │ │ │ ldr r2, [r5, r2] │ │ │ │ │ - ldr ip, [r5, ip] │ │ │ │ │ + sub lr, lr, #5 │ │ │ │ │ add r1, r9, r1 │ │ │ │ │ and lr, lr, #1 │ │ │ │ │ + ldr ip, [r5, ip] │ │ │ │ │ mul r2, ip, r2 │ │ │ │ │ - ldr r8, [r1, #-20] @ 0xffffffec │ │ │ │ │ - str r2, [r3, #-24] @ 0xffffffe8 │ │ │ │ │ - str r2, [r3, #-28] @ 0xffffffe4 │ │ │ │ │ - mul r2, r8, r2 │ │ │ │ │ sub r0, r0, #2 │ │ │ │ │ - str r8, [r3, #-32] @ 0xffffffe0 │ │ │ │ │ - cmp r0, lr │ │ │ │ │ - ldr ip, [r1, #-32] @ 0xffffffe0 │ │ │ │ │ - str ip, [r3, #-44] @ 0xffffffd4 │ │ │ │ │ - str r2, [r3, #-36] @ 0xffffffdc │ │ │ │ │ - str r2, [r3, #-40] @ 0xffffffd8 │ │ │ │ │ sub r1, r1, #24 │ │ │ │ │ + ldr r8, [r1, #4] │ │ │ │ │ + cmp r0, lr │ │ │ │ │ sub r3, r3, #24 │ │ │ │ │ - bne 284 │ │ │ │ │ + str r8, [r3, #-8] │ │ │ │ │ + str r2, [r3, #-4] │ │ │ │ │ + str r2, [r3] │ │ │ │ │ + mul r2, r8, r2 │ │ │ │ │ + ldr ip, [r1, #-8] │ │ │ │ │ + str ip, [r3, #-20] @ 0xffffffec │ │ │ │ │ + str r2, [r3, #-16] │ │ │ │ │ + str r2, [r3, #-12] │ │ │ │ │ + bne 2d4 │ │ │ │ │ add r3, lr, lr, lsl #1 │ │ │ │ │ - add r9, r9, r3, lsl #2 │ │ │ │ │ - add r3, r5, r3, lsl #2 │ │ │ │ │ - ldr r1, [r3, #20] │ │ │ │ │ + cmp lr, #0 │ │ │ │ │ + lsl r3, r3, #2 │ │ │ │ │ + add r9, r9, r3 │ │ │ │ │ + add r3, r5, r3 │ │ │ │ │ ldr r2, [r3, #16] │ │ │ │ │ + ldr r1, [r3, #20] │ │ │ │ │ ldr r0, [r9, #16] │ │ │ │ │ mul r2, r1, r2 │ │ │ │ │ - cmp lr, #0 │ │ │ │ │ sub r1, lr, #1 │ │ │ │ │ str r0, [r3, #4] │ │ │ │ │ - str r2, [r3, #12] │ │ │ │ │ str r2, [r3, #8] │ │ │ │ │ - beq 310 │ │ │ │ │ - mul r2, r0, r2 │ │ │ │ │ - add r1, r1, r1, lsl #1 │ │ │ │ │ + str r2, [r3, #12] │ │ │ │ │ + beq 364 │ │ │ │ │ ldr ip, [r9, #4] │ │ │ │ │ + add r1, r1, r1, lsl #1 │ │ │ │ │ + mul r2, r0, r2 │ │ │ │ │ add r1, r5, r1, lsl #2 │ │ │ │ │ str ip, [r3, #-8] │ │ │ │ │ str r2, [r1, #12] │ │ │ │ │ str r2, [r3, #-4] │ │ │ │ │ mov r0, r5 │ │ │ │ │ bl 0 │ │ │ │ │ R_ARM_CALL fftwf_tensor_sz │ │ │ │ │ - ldr r3, [r5, #8] │ │ │ │ │ ldr r9, [r5, #4] │ │ │ │ │ + str r0, [sp, #20] │ │ │ │ │ + ldr r3, [r5, #8] │ │ │ │ │ ldr r2, [sp, #40] @ 0x28 │ │ │ │ │ mul r9, r3, r9 │ │ │ │ │ ldr r3, [r4, #4] │ │ │ │ │ - mov r8, #2 │ │ │ │ │ - str r0, [sp, #20] │ │ │ │ │ ldmib r3, {r0, r1} │ │ │ │ │ bl 0 │ │ │ │ │ R_ARM_CALL fftwf_mpi_block │ │ │ │ │ + mov r3, #2 │ │ │ │ │ mov r2, r9 │ │ │ │ │ mov r1, r9 │ │ │ │ │ - str r8, [sp, #4] │ │ │ │ │ - str r8, [sp] │ │ │ │ │ + str r3, [sp] │ │ │ │ │ + str r3, [sp, #4] │ │ │ │ │ ldr r3, [r4, #8] │ │ │ │ │ bl 0 │ │ │ │ │ R_ARM_CALL fftwf_mktensor_2d │ │ │ │ │ ldr r3, [sp, #36] @ 0x24 │ │ │ │ │ + mov r1, r0 │ │ │ │ │ + mov r0, r5 │ │ │ │ │ str r3, [sp, #4] │ │ │ │ │ ldr r3, [sp, #32] │ │ │ │ │ str r3, [sp] │ │ │ │ │ ldrd r2, [sp, #24] │ │ │ │ │ - mov r1, r0 │ │ │ │ │ - mov r0, r5 │ │ │ │ │ bl 0 │ │ │ │ │ R_ARM_CALL fftwf_mkproblem_dft_d │ │ │ │ │ mov r1, r0 │ │ │ │ │ mov r0, r6 │ │ │ │ │ bl 0 │ │ │ │ │ R_ARM_CALL fftwf_mkplan_d │ │ │ │ │ - ldr r1, [r4, #28] │ │ │ │ │ mov r5, r0 │ │ │ │ │ clz r0, r0 │ │ │ │ │ + ldr r1, [r4, #28] │ │ │ │ │ lsr r0, r0, #5 │ │ │ │ │ bl 0 │ │ │ │ │ R_ARM_CALL fftwf_mpi_any_true │ │ │ │ │ cmp r0, #0 │ │ │ │ │ - bne 494 │ │ │ │ │ + bne 4e8 │ │ │ │ │ mov r0, #1 │ │ │ │ │ bl 0 │ │ │ │ │ R_ARM_CALL fftwf_mpi_mkdtensor │ │ │ │ │ - ldr r3, [r4, #4] │ │ │ │ │ - mov ip, r0 │ │ │ │ │ - ldmib r3, {r0, r1, r2} │ │ │ │ │ - stmib ip, {r0, r1, r2} │ │ │ │ │ - ldr r1, [r4, #8] │ │ │ │ │ - ldr r0, [sp, #20] │ │ │ │ │ + ldr r2, [r4, #4] │ │ │ │ │ mov r3, #16 │ │ │ │ │ - mul r0, r1, r0 │ │ │ │ │ + ldr r1, [r4, #8] │ │ │ │ │ + ldr ip, [sp, #20] │ │ │ │ │ + ldrd r8, [r2, #4] │ │ │ │ │ + mul ip, r1, ip │ │ │ │ │ + strd r8, [r0, #4] │ │ │ │ │ + ldr r2, [r2, #12] │ │ │ │ │ + mov r1, ip │ │ │ │ │ + str r2, [r0, #12] │ │ │ │ │ + mov r2, sl │ │ │ │ │ str r3, [sp, #8] │ │ │ │ │ ldr r3, [r4, #20] │ │ │ │ │ str r3, [sp, #4] │ │ │ │ │ ldr r3, [r4, #28] │ │ │ │ │ - mov r2, sl │ │ │ │ │ - mov r1, r0 │ │ │ │ │ str r3, [sp] │ │ │ │ │ - mov r0, ip │ │ │ │ │ mov r3, fp │ │ │ │ │ bl 0 │ │ │ │ │ R_ARM_CALL fftwf_mpi_mkproblem_dft_d │ │ │ │ │ mov r1, r0 │ │ │ │ │ mov r0, r6 │ │ │ │ │ bl 0 │ │ │ │ │ R_ARM_CALL fftwf_mkplan_d │ │ │ │ │ - ldr r1, [r4, #28] │ │ │ │ │ - mov sl, r0 │ │ │ │ │ + mov r9, r0 │ │ │ │ │ clz r0, r0 │ │ │ │ │ + ldr r1, [r4, #28] │ │ │ │ │ lsr r0, r0, #5 │ │ │ │ │ bl 0 │ │ │ │ │ R_ARM_CALL fftwf_mpi_any_true │ │ │ │ │ cmp r0, #0 │ │ │ │ │ - bne 498 │ │ │ │ │ - ldr r2, [pc, #172] @ 4c8 │ │ │ │ │ - ldr r1, [pc, #172] @ 4cc │ │ │ │ │ + bne 4ec │ │ │ │ │ + ldr r2, [pc, #172] @ 51c │ │ │ │ │ + mov r0, #88 @ 0x58 │ │ │ │ │ + ldr r1, [pc, #168] @ 520 │ │ │ │ │ add r2, pc, r2 │ │ │ │ │ add r1, pc, r1 │ │ │ │ │ - mov r0, #88 @ 0x58 │ │ │ │ │ bl 0 │ │ │ │ │ R_ARM_CALL fftwf_mkplan_rdft │ │ │ │ │ ldr r3, [r7, #8] │ │ │ │ │ + mov sl, r0 │ │ │ │ │ + add r1, r9, #8 │ │ │ │ │ + str r5, [r0, #64] @ 0x40 │ │ │ │ │ ldr r2, [r4, #12] │ │ │ │ │ + str r9, [r0, #68] @ 0x44 │ │ │ │ │ cmp r3, #0 │ │ │ │ │ ldr r3, [sp, #24] │ │ │ │ │ + movne r8, #2 │ │ │ │ │ ldreq r8, [r6, #164] @ 0xa4 │ │ │ │ │ sub r3, r3, r2 │ │ │ │ │ asr r3, r3, #2 │ │ │ │ │ andeq r8, r8, #4096 @ 0x1000 │ │ │ │ │ - add r1, sl, #8 │ │ │ │ │ str r3, [r0, #72] @ 0x48 │ │ │ │ │ ldr r3, [sp, #28] │ │ │ │ │ - mov r9, r0 │ │ │ │ │ + str r8, [r0, #80] @ 0x50 │ │ │ │ │ sub r3, r3, r2 │ │ │ │ │ - asr r3, r3, #2 │ │ │ │ │ add r2, r0, #8 │ │ │ │ │ - str r5, [r0, #64] @ 0x40 │ │ │ │ │ - str sl, [r0, #68] @ 0x44 │ │ │ │ │ - str r8, [r0, #80] @ 0x50 │ │ │ │ │ + asr r3, r3, #2 │ │ │ │ │ str r3, [r0, #76] @ 0x4c │ │ │ │ │ add r0, r5, #8 │ │ │ │ │ bl 0 │ │ │ │ │ R_ARM_CALL fftwf_ops_add │ │ │ │ │ - mov r0, r9 │ │ │ │ │ - add sp, sp, #52 @ 0x34 │ │ │ │ │ - pop {r4, r5, r6, r7, r8, r9, sl, fp, pc} │ │ │ │ │ - mov sl, fp │ │ │ │ │ - b 1f0 │ │ │ │ │ - mov sl, #0 │ │ │ │ │ mov r0, sl │ │ │ │ │ + b 164 │ │ │ │ │ + mov sl, fp │ │ │ │ │ + b 240 │ │ │ │ │ + mov r9, #0 │ │ │ │ │ + mov r0, r9 │ │ │ │ │ bl 0 │ │ │ │ │ R_ARM_CALL fftwf_plan_destroy_internal │ │ │ │ │ mov r0, r5 │ │ │ │ │ bl 0 │ │ │ │ │ R_ARM_CALL fftwf_plan_destroy_internal │ │ │ │ │ - b 124 │ │ │ │ │ + b 160 │ │ │ │ │ mov lr, r0 │ │ │ │ │ - b 2c0 │ │ │ │ │ + b 310 │ │ │ │ │ mov r0, r4 │ │ │ │ │ bl 0 │ │ │ │ │ R_ARM_CALL fftwf_mpi_dft_serial_applicable │ │ │ │ │ cmp r0, #0 │ │ │ │ │ - beq 198 │ │ │ │ │ - b 124 │ │ │ │ │ - .word 0xfffffbdc │ │ │ │ │ - .word 0x000000a4 │ │ │ │ │ + beq 1e8 │ │ │ │ │ + b 160 │ │ │ │ │ + .word 0xfffffb84 │ │ │ │ │ + .word 0x000000a0 │ │ │ │ │ R_ARM_REL32 .data.rel.ro │ │ │ │ │ │ │ │ │ │ -000004d0 : │ │ │ │ │ +00000524 : │ │ │ │ │ awake(): │ │ │ │ │ - push {r4, r5, r6, lr} │ │ │ │ │ + strd r4, [sp, #-16]! │ │ │ │ │ mov r4, r0 │ │ │ │ │ mov r5, r1 │ │ │ │ │ ldr r0, [r0, #64] @ 0x40 │ │ │ │ │ + str r6, [sp, #8] │ │ │ │ │ + str lr, [sp, #12] │ │ │ │ │ bl 0 │ │ │ │ │ R_ARM_CALL fftwf_plan_awake │ │ │ │ │ - ldr r0, [r4, #68] @ 0x44 │ │ │ │ │ + ldr r6, [sp, #8] │ │ │ │ │ mov r1, r5 │ │ │ │ │ - pop {r4, r5, r6, lr} │ │ │ │ │ + ldr lr, [sp, #12] │ │ │ │ │ + ldr r0, [r4, #68] @ 0x44 │ │ │ │ │ + ldrd r4, [sp] │ │ │ │ │ + add sp, sp, #16 │ │ │ │ │ b 0 │ │ │ │ │ R_ARM_JUMP24 fftwf_plan_awake │ │ │ │ │ │ │ │ │ │ -000004f4 : │ │ │ │ │ +0000055c : │ │ │ │ │ fftwf_mpi_dft_rank_geq2_register(): │ │ │ │ │ - push {r4, r5, r6, lr} │ │ │ │ │ - ldr r5, [pc, #72] @ 548 │ │ │ │ │ + strd r4, [sp, #-16]! │ │ │ │ │ mov r4, r0 │ │ │ │ │ + mov r0, #12 │ │ │ │ │ + ldr r5, [pc, #84] @ 5c4 │ │ │ │ │ + str r6, [sp, #8] │ │ │ │ │ + str lr, [sp, #12] │ │ │ │ │ add r5, pc, r5 │ │ │ │ │ mov r1, r5 │ │ │ │ │ - mov r0, #12 │ │ │ │ │ bl 0 │ │ │ │ │ R_ARM_CALL fftwf_mksolver │ │ │ │ │ mov r3, #0 │ │ │ │ │ - str r3, [r0, #8] │ │ │ │ │ mov r1, r0 │ │ │ │ │ + str r3, [r0, #8] │ │ │ │ │ mov r0, r4 │ │ │ │ │ bl 0 │ │ │ │ │ R_ARM_CALL fftwf_solver_register │ │ │ │ │ mov r1, r5 │ │ │ │ │ mov r0, #12 │ │ │ │ │ bl 0 │ │ │ │ │ R_ARM_CALL fftwf_mksolver │ │ │ │ │ mov r3, #1 │ │ │ │ │ + ldr r6, [sp, #8] │ │ │ │ │ mov r1, r0 │ │ │ │ │ + ldr lr, [sp, #12] │ │ │ │ │ str r3, [r0, #8] │ │ │ │ │ mov r0, r4 │ │ │ │ │ - pop {r4, r5, r6, lr} │ │ │ │ │ + ldrd r4, [sp] │ │ │ │ │ + add sp, sp, #16 │ │ │ │ │ b 0 │ │ │ │ │ R_ARM_JUMP24 fftwf_solver_register │ │ │ │ │ - .word 0x00000040 │ │ │ │ │ + .word 0x00000048 │ │ │ │ │ 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: 3660 (bytes into file) │ │ │ │ │ + Start of section headers: 3796 (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 0xe4c: │ │ │ │ │ +There are 15 section headers, starting at offset 0xed4: │ │ │ │ │ │ │ │ │ │ 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 000694 00 AX 0 0 4 │ │ │ │ │ - [ 2] .rel.text REL 00000000 000c34 000168 08 I 12 1 4 │ │ │ │ │ - [ 3] .data PROGBITS 00000000 0006c8 000000 00 WA 0 0 1 │ │ │ │ │ - [ 4] .bss NOBITS 00000000 0006c8 000000 00 WA 0 0 1 │ │ │ │ │ - [ 5] .rodata.str1.4 PROGBITS 00000000 0006c8 00003b 01 AMS 0 0 4 │ │ │ │ │ - [ 6] .data.rel.ro PROGBITS 00000000 000703 000010 00 WA 0 0 4 │ │ │ │ │ - [ 7] .rel.data.rel.ro REL 00000000 000d9c 000020 08 I 12 6 4 │ │ │ │ │ - [ 8] .data.rel.ro.local PROGBITS 00000000 000713 00000c 00 WA 0 0 4 │ │ │ │ │ - [ 9] .rel.data.rel.ro.local REL 00000000 000dbc 000008 08 I 12 8 4 │ │ │ │ │ - [10] .note.GNU-stack PROGBITS 00000000 00071f 000000 00 0 0 1 │ │ │ │ │ - [11] .ARM.attributes ARM_ATTRIBUTES 00000000 00071f 00002b 00 0 0 1 │ │ │ │ │ - [12] .symtab SYMTAB 00000000 00074c 0002d0 10 13 22 4 │ │ │ │ │ - [13] .strtab STRTAB 00000000 000a1c 000216 00 0 0 1 │ │ │ │ │ - [14] .shstrtab STRTAB 00000000 000dc4 000087 00 0 0 1 │ │ │ │ │ + [ 1] .text PROGBITS 00000000 000034 00071c 00 AX 0 0 4 │ │ │ │ │ + [ 2] .rel.text REL 00000000 000cbc 000168 08 I 12 1 4 │ │ │ │ │ + [ 3] .data PROGBITS 00000000 000750 000000 00 WA 0 0 1 │ │ │ │ │ + [ 4] .bss NOBITS 00000000 000750 000000 00 WA 0 0 1 │ │ │ │ │ + [ 5] .rodata.str1.4 PROGBITS 00000000 000750 00003b 01 AMS 0 0 4 │ │ │ │ │ + [ 6] .data.rel.ro PROGBITS 00000000 00078b 000010 00 WA 0 0 4 │ │ │ │ │ + [ 7] .rel.data.rel.ro REL 00000000 000e24 000020 08 I 12 6 4 │ │ │ │ │ + [ 8] .data.rel.ro.local PROGBITS 00000000 00079b 00000c 00 WA 0 0 4 │ │ │ │ │ + [ 9] .rel.data.rel.ro.local REL 00000000 000e44 000008 08 I 12 8 4 │ │ │ │ │ + [10] .note.GNU-stack PROGBITS 00000000 0007a7 000000 00 0 0 1 │ │ │ │ │ + [11] .ARM.attributes ARM_ATTRIBUTES 00000000 0007a7 00002b 00 0 0 1 │ │ │ │ │ + [12] .symtab SYMTAB 00000000 0007d4 0002d0 10 13 22 4 │ │ │ │ │ + [13] .strtab STRTAB 00000000 000aa4 000216 00 0 0 1 │ │ │ │ │ + [14] .shstrtab STRTAB 00000000 000e4c 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: 00000000 0 NOTYPE LOCAL DEFAULT 1 $a │ │ │ │ │ - 2: 00000000 152 FUNC LOCAL DEFAULT 1 apply │ │ │ │ │ + 2: 00000000 188 FUNC LOCAL DEFAULT 1 apply │ │ │ │ │ 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: 00000098 104 FUNC LOCAL DEFAULT 1 print │ │ │ │ │ - 8: 000000f4 0 NOTYPE LOCAL DEFAULT 1 $d │ │ │ │ │ - 9: 00000100 0 NOTYPE LOCAL DEFAULT 1 $a │ │ │ │ │ - 10: 00000100 36 FUNC LOCAL DEFAULT 1 destroy │ │ │ │ │ - 11: 00000124 1256 FUNC LOCAL DEFAULT 1 mkplan │ │ │ │ │ - 12: 00000604 0 NOTYPE LOCAL DEFAULT 1 $d │ │ │ │ │ - 13: 0000060c 0 NOTYPE LOCAL DEFAULT 1 $a │ │ │ │ │ - 14: 0000060c 48 FUNC LOCAL DEFAULT 1 awake │ │ │ │ │ - 15: 00000690 0 NOTYPE LOCAL DEFAULT 1 $d │ │ │ │ │ + 7: 000000bc 116 FUNC LOCAL DEFAULT 1 print │ │ │ │ │ + 8: 00000124 0 NOTYPE LOCAL DEFAULT 1 $d │ │ │ │ │ + 9: 00000130 0 NOTYPE LOCAL DEFAULT 1 $a │ │ │ │ │ + 10: 00000130 48 FUNC LOCAL DEFAULT 1 destroy │ │ │ │ │ + 11: 00000160 1292 FUNC LOCAL DEFAULT 1 mkplan │ │ │ │ │ + 12: 00000664 0 NOTYPE LOCAL DEFAULT 1 $d │ │ │ │ │ + 13: 0000066c 0 NOTYPE LOCAL DEFAULT 1 $a │ │ │ │ │ + 14: 0000066c 68 FUNC LOCAL DEFAULT 1 awake │ │ │ │ │ + 15: 00000718 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: 0000063c 88 FUNC GLOBAL DEFAULT 1 fftwf_mpi_dft_rank_geq2_transposed_register │ │ │ │ │ + 41: 000006b0 108 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,59 +1,59 @@ │ │ │ │ │ │ │ │ │ │ -Relocation section '.rel.text' at offset 0xc34 contains 45 entries: │ │ │ │ │ +Relocation section '.rel.text' at offset 0xcbc contains 45 entries: │ │ │ │ │ Offset Info Type Sym. Value Symbol's Name │ │ │ │ │ -000000f4 00000503 R_ARM_REL32 00000004 .LC1 │ │ │ │ │ -000000f8 00000603 R_ARM_REL32 00000008 .LC2 │ │ │ │ │ -000000fc 00000403 R_ARM_REL32 00000000 .LC0 │ │ │ │ │ -0000010c 0000161c R_ARM_CALL 00000000 fftwf_plan_destroy_internal │ │ │ │ │ -00000114 0000161c R_ARM_CALL 00000000 fftwf_plan_destroy_internal │ │ │ │ │ -00000120 0000161d R_ARM_JUMP24 00000000 fftwf_plan_destroy_internal │ │ │ │ │ -00000190 0000171c R_ARM_CALL 00000000 fftwf_mpi_is_local_after │ │ │ │ │ -000001a8 0000171c R_ARM_CALL 00000000 fftwf_mpi_is_local_after │ │ │ │ │ -000001c0 0000181c R_ARM_CALL 00000000 fftwf_mpi_num_blocks │ │ │ │ │ -000001f0 0000191c R_ARM_CALL 00000000 fftwf_extract_reim │ │ │ │ │ -00000210 0000191c R_ARM_CALL 00000000 fftwf_extract_reim │ │ │ │ │ -00000244 00001a1c R_ARM_CALL 00000000 MPI_Comm_rank │ │ │ │ │ -00000250 00001b1c R_ARM_CALL 00000000 MPI_Comm_size │ │ │ │ │ -00000260 00001c1c R_ARM_CALL 00000000 fftwf_mktensor │ │ │ │ │ -000003ac 00001d1c R_ARM_CALL 00000000 fftwf_mpi_block │ │ │ │ │ -000003c4 00001e1c R_ARM_CALL 00000000 fftwf_mktensor_2d │ │ │ │ │ -000003e4 00001f1c R_ARM_CALL 00000000 fftwf_mkproblem_dft_d │ │ │ │ │ -000003f0 0000201c R_ARM_CALL 00000000 fftwf_mkplan_d │ │ │ │ │ -00000404 0000211c R_ARM_CALL 00000000 fftwf_mpi_any_true │ │ │ │ │ -00000454 0000221c R_ARM_CALL 00000000 fftwf_mpi_mkproblem_transpose │ │ │ │ │ -00000460 0000201c R_ARM_CALL 00000000 fftwf_mkplan_d │ │ │ │ │ -00000474 0000211c R_ARM_CALL 00000000 fftwf_mpi_any_true │ │ │ │ │ -00000490 0000191c R_ARM_CALL 00000000 fftwf_extract_reim │ │ │ │ │ -000004a8 00001d1c R_ARM_CALL 00000000 fftwf_mpi_block │ │ │ │ │ -000004c8 0000231c R_ARM_CALL 00000000 fftwf_mktensor_1d │ │ │ │ │ -000004e8 00001e1c R_ARM_CALL 00000000 fftwf_mktensor_2d │ │ │ │ │ -000004fc 00001f1c R_ARM_CALL 00000000 fftwf_mkproblem_dft_d │ │ │ │ │ -00000508 0000201c R_ARM_CALL 00000000 fftwf_mkplan_d │ │ │ │ │ -0000051c 0000211c R_ARM_CALL 00000000 fftwf_mpi_any_true │ │ │ │ │ -0000053c 0000241c R_ARM_CALL 00000000 fftwf_mkplan_rdft │ │ │ │ │ -000005a0 0000251c R_ARM_CALL 00000000 fftwf_ops_add │ │ │ │ │ -000005ac 0000261c R_ARM_CALL 00000000 fftwf_ops_add2 │ │ │ │ │ -000005d0 0000161c R_ARM_CALL 00000000 fftwf_plan_destroy_internal │ │ │ │ │ -000005d8 0000161c R_ARM_CALL 00000000 fftwf_plan_destroy_internal │ │ │ │ │ -000005e0 0000161c R_ARM_CALL 00000000 fftwf_plan_destroy_internal │ │ │ │ │ -000005f4 0000271c R_ARM_CALL 00000000 fftwf_mpi_dft_serial_applicable │ │ │ │ │ -00000608 00001003 R_ARM_REL32 00000000 .data.rel.ro │ │ │ │ │ -0000061c 0000281c R_ARM_CALL 00000000 fftwf_plan_awake │ │ │ │ │ -00000628 0000281c R_ARM_CALL 00000000 fftwf_plan_awake │ │ │ │ │ -00000638 0000281d R_ARM_JUMP24 00000000 fftwf_plan_awake │ │ │ │ │ -00000654 00002a1c R_ARM_CALL 00000000 fftwf_mksolver │ │ │ │ │ -00000668 00002b1c R_ARM_CALL 00000000 fftwf_solver_register │ │ │ │ │ -00000674 00002a1c R_ARM_CALL 00000000 fftwf_mksolver │ │ │ │ │ -0000068c 00002b1d R_ARM_JUMP24 00000000 fftwf_solver_register │ │ │ │ │ -00000690 00001303 R_ARM_REL32 00000000 .data.rel.ro.local │ │ │ │ │ +00000124 00000503 R_ARM_REL32 00000004 .LC1 │ │ │ │ │ +00000128 00000603 R_ARM_REL32 00000008 .LC2 │ │ │ │ │ +0000012c 00000403 R_ARM_REL32 00000000 .LC0 │ │ │ │ │ +00000140 0000161c R_ARM_CALL 00000000 fftwf_plan_destroy_internal │ │ │ │ │ +00000148 0000161c R_ARM_CALL 00000000 fftwf_plan_destroy_internal │ │ │ │ │ +0000015c 0000161d R_ARM_JUMP24 00000000 fftwf_plan_destroy_internal │ │ │ │ │ +000001f0 0000171c R_ARM_CALL 00000000 fftwf_mpi_is_local_after │ │ │ │ │ +00000208 0000171c R_ARM_CALL 00000000 fftwf_mpi_is_local_after │ │ │ │ │ +00000220 0000181c R_ARM_CALL 00000000 fftwf_mpi_num_blocks │ │ │ │ │ +00000250 0000191c R_ARM_CALL 00000000 fftwf_extract_reim │ │ │ │ │ +00000270 0000191c R_ARM_CALL 00000000 fftwf_extract_reim │ │ │ │ │ +000002a4 00001a1c R_ARM_CALL 00000000 MPI_Comm_rank │ │ │ │ │ +000002b0 00001b1c R_ARM_CALL 00000000 MPI_Comm_size │ │ │ │ │ +000002c0 00001c1c R_ARM_CALL 00000000 fftwf_mktensor │ │ │ │ │ +00000410 00001d1c R_ARM_CALL 00000000 fftwf_mpi_block │ │ │ │ │ +00000428 00001e1c R_ARM_CALL 00000000 fftwf_mktensor_2d │ │ │ │ │ +00000448 00001f1c R_ARM_CALL 00000000 fftwf_mkproblem_dft_d │ │ │ │ │ +00000454 0000201c R_ARM_CALL 00000000 fftwf_mkplan_d │ │ │ │ │ +00000468 0000211c R_ARM_CALL 00000000 fftwf_mpi_any_true │ │ │ │ │ +000004b8 0000221c R_ARM_CALL 00000000 fftwf_mpi_mkproblem_transpose │ │ │ │ │ +000004c4 0000201c R_ARM_CALL 00000000 fftwf_mkplan_d │ │ │ │ │ +000004d8 0000211c R_ARM_CALL 00000000 fftwf_mpi_any_true │ │ │ │ │ +000004f4 0000191c R_ARM_CALL 00000000 fftwf_extract_reim │ │ │ │ │ +0000050c 00001d1c R_ARM_CALL 00000000 fftwf_mpi_block │ │ │ │ │ +0000052c 0000231c R_ARM_CALL 00000000 fftwf_mktensor_1d │ │ │ │ │ +0000054c 00001e1c R_ARM_CALL 00000000 fftwf_mktensor_2d │ │ │ │ │ +00000560 00001f1c R_ARM_CALL 00000000 fftwf_mkproblem_dft_d │ │ │ │ │ +0000056c 0000201c R_ARM_CALL 00000000 fftwf_mkplan_d │ │ │ │ │ +00000580 0000211c R_ARM_CALL 00000000 fftwf_mpi_any_true │ │ │ │ │ +000005a0 0000241c R_ARM_CALL 00000000 fftwf_mkplan_rdft │ │ │ │ │ +00000604 0000251c R_ARM_CALL 00000000 fftwf_ops_add │ │ │ │ │ +00000610 0000261c R_ARM_CALL 00000000 fftwf_ops_add2 │ │ │ │ │ +00000630 0000161c R_ARM_CALL 00000000 fftwf_plan_destroy_internal │ │ │ │ │ +00000638 0000161c R_ARM_CALL 00000000 fftwf_plan_destroy_internal │ │ │ │ │ +00000640 0000161c R_ARM_CALL 00000000 fftwf_plan_destroy_internal │ │ │ │ │ +00000654 0000271c R_ARM_CALL 00000000 fftwf_mpi_dft_serial_applicable │ │ │ │ │ +00000668 00001003 R_ARM_REL32 00000000 .data.rel.ro │ │ │ │ │ +00000684 0000281c R_ARM_CALL 00000000 fftwf_plan_awake │ │ │ │ │ +00000690 0000281c R_ARM_CALL 00000000 fftwf_plan_awake │ │ │ │ │ +000006ac 0000281d R_ARM_JUMP24 00000000 fftwf_plan_awake │ │ │ │ │ +000006d0 00002a1c R_ARM_CALL 00000000 fftwf_mksolver │ │ │ │ │ +000006e4 00002b1c R_ARM_CALL 00000000 fftwf_solver_register │ │ │ │ │ +000006f0 00002a1c R_ARM_CALL 00000000 fftwf_mksolver │ │ │ │ │ +00000714 00002b1d R_ARM_JUMP24 00000000 fftwf_solver_register │ │ │ │ │ +00000718 00001303 R_ARM_REL32 00000000 .data.rel.ro.local │ │ │ │ │ │ │ │ │ │ -Relocation section '.rel.data.rel.ro' at offset 0xd9c contains 4 entries: │ │ │ │ │ +Relocation section '.rel.data.rel.ro' at offset 0xe24 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 0000060c awake │ │ │ │ │ -00000008 00000702 R_ARM_ABS32 00000098 print │ │ │ │ │ -0000000c 00000a02 R_ARM_ABS32 00000100 destroy │ │ │ │ │ +00000004 00000e02 R_ARM_ABS32 0000066c awake │ │ │ │ │ +00000008 00000702 R_ARM_ABS32 000000bc print │ │ │ │ │ +0000000c 00000a02 R_ARM_ABS32 00000130 destroy │ │ │ │ │ │ │ │ │ │ -Relocation section '.rel.data.rel.ro.local' at offset 0xdbc contains 1 entry: │ │ │ │ │ +Relocation section '.rel.data.rel.ro.local' at offset 0xe44 contains 1 entry: │ │ │ │ │ Offset Info Type Sym. Value Symbol's Name │ │ │ │ │ -00000004 00000b02 R_ARM_ABS32 00000124 mkplan │ │ │ │ │ +00000004 00000b02 R_ARM_ABS32 00000160 mkplan │ │ │ │ ├── objdump --line-numbers --disassemble --demangle --reloc --no-show-raw-insn --section=.text {} │ │ │ │ │ @@ -1,488 +1,522 @@ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ Disassembly of section .text: │ │ │ │ │ │ │ │ │ │ 00000000 : │ │ │ │ │ apply(): │ │ │ │ │ - push {r4, r5, r6, r7, r8, r9, lr} │ │ │ │ │ + strd r4, [sp, #-28]! @ 0xffffffe4 │ │ │ │ │ mov r4, r0 │ │ │ │ │ mov r5, r1 │ │ │ │ │ ldr r1, [r4, #76] @ 0x4c │ │ │ │ │ - ldr r3, [r4, #84] @ 0x54 │ │ │ │ │ + strd r6, [sp, #8] │ │ │ │ │ mov r6, r2 │ │ │ │ │ - add r8, r2, r1, lsl #2 │ │ │ │ │ + ldr ip, [r4, #80] @ 0x50 │ │ │ │ │ + strd r8, [sp, #16] │ │ │ │ │ + ldr r3, [r4, #84] @ 0x54 │ │ │ │ │ + lsl r1, r1, #2 │ │ │ │ │ + str lr, [sp, #24] │ │ │ │ │ + sub sp, sp, #12 │ │ │ │ │ ldr r0, [r0, #64] @ 0x40 │ │ │ │ │ - ldr r2, [r4, #80] @ 0x50 │ │ │ │ │ + lsl ip, ip, #2 │ │ │ │ │ + add r8, r2, r1 │ │ │ │ │ + add r1, r5, r1 │ │ │ │ │ cmp r3, #0 │ │ │ │ │ - add r7, r6, r2, lsl #2 │ │ │ │ │ + add r7, r2, ip │ │ │ │ │ + add r2, r5, ip │ │ │ │ │ ldr r9, [r0, #56] @ 0x38 │ │ │ │ │ - sub sp, sp, #12 │ │ │ │ │ - add r1, r5, r1, lsl #2 │ │ │ │ │ - add r2, r5, r2, lsl #2 │ │ │ │ │ - beq 88 │ │ │ │ │ + beq ac │ │ │ │ │ mov r3, r8 │ │ │ │ │ + mov r5, r6 │ │ │ │ │ str r7, [sp] │ │ │ │ │ blx r9 │ │ │ │ │ - mov r5, r6 │ │ │ │ │ ldr r0, [r4, #68] @ 0x44 │ │ │ │ │ mov r2, r6 │ │ │ │ │ - ldr r3, [r0, #56] @ 0x38 │ │ │ │ │ mov r1, r5 │ │ │ │ │ + ldr r3, [r0, #56] @ 0x38 │ │ │ │ │ blx r3 │ │ │ │ │ ldr r0, [r4, #72] @ 0x48 │ │ │ │ │ mov r3, r8 │ │ │ │ │ - str r7, [sp] │ │ │ │ │ mov r2, r7 │ │ │ │ │ - ldr r4, [r0, #56] @ 0x38 │ │ │ │ │ + str r7, [sp] │ │ │ │ │ mov r1, r8 │ │ │ │ │ + ldr r4, [r0, #56] @ 0x38 │ │ │ │ │ blx r4 │ │ │ │ │ add sp, sp, #12 │ │ │ │ │ - pop {r4, r5, r6, r7, r8, r9, pc} │ │ │ │ │ + ldrd r4, [sp] │ │ │ │ │ + ldrd r6, [sp, #8] │ │ │ │ │ + ldrd r8, [sp, #16] │ │ │ │ │ + add sp, sp, #24 │ │ │ │ │ + pop {pc} @ (ldr pc, [sp], #4) │ │ │ │ │ mov r3, r1 │ │ │ │ │ str r2, [sp] │ │ │ │ │ blx r9 │ │ │ │ │ - b 50 │ │ │ │ │ + b 64 │ │ │ │ │ │ │ │ │ │ -00000098 : │ │ │ │ │ +000000bc : │ │ │ │ │ print(): │ │ │ │ │ mov r3, r0 │ │ │ │ │ + mov r0, r1 │ │ │ │ │ + str r4, [sp, #-8]! │ │ │ │ │ ldr r2, [r3, #84] @ 0x54 │ │ │ │ │ - push {r4, lr} │ │ │ │ │ - cmp r2, #2 │ │ │ │ │ - ldr r4, [r1] │ │ │ │ │ + str lr, [sp, #4] │ │ │ │ │ sub sp, sp, #8 │ │ │ │ │ - mov r0, r1 │ │ │ │ │ - beq e8 │ │ │ │ │ - ldr r2, [pc, #52] @ f4 │ │ │ │ │ + ldr r4, [r1] │ │ │ │ │ + cmp r2, #2 │ │ │ │ │ + beq 118 │ │ │ │ │ + ldr r2, [pc, #60] @ 124 │ │ │ │ │ add r2, pc, r2 │ │ │ │ │ ldr r1, [r3, #72] @ 0x48 │ │ │ │ │ str r1, [sp, #4] │ │ │ │ │ ldr r1, [r3, #68] @ 0x44 │ │ │ │ │ str r1, [sp] │ │ │ │ │ - ldr r1, [pc, #32] @ f8 │ │ │ │ │ + ldr r1, [pc, #40] @ 128 │ │ │ │ │ ldr r3, [r3, #64] @ 0x40 │ │ │ │ │ add r1, pc, r1 │ │ │ │ │ blx r4 │ │ │ │ │ add sp, sp, #8 │ │ │ │ │ - pop {r4, pc} │ │ │ │ │ - ldr r2, [pc, #12] @ fc │ │ │ │ │ + ldr r4, [sp] │ │ │ │ │ + add sp, sp, #4 │ │ │ │ │ + pop {pc} @ (ldr pc, [sp], #4) │ │ │ │ │ + ldr r2, [pc, #12] @ 12c │ │ │ │ │ add r2, pc, r2 │ │ │ │ │ - b c0 │ │ │ │ │ - .word 0x00000030 │ │ │ │ │ + b e8 │ │ │ │ │ + .word 0x00000038 │ │ │ │ │ R_ARM_REL32 .LC1 │ │ │ │ │ - .word 0x00000018 │ │ │ │ │ + .word 0x00000020 │ │ │ │ │ R_ARM_REL32 .LC2 │ │ │ │ │ .word 0x00000008 │ │ │ │ │ R_ARM_REL32 .LC0 │ │ │ │ │ │ │ │ │ │ -00000100 : │ │ │ │ │ +00000130 : │ │ │ │ │ destroy(): │ │ │ │ │ - push {r4, lr} │ │ │ │ │ + str r4, [sp, #-8]! │ │ │ │ │ mov r4, r0 │ │ │ │ │ ldr r0, [r0, #72] @ 0x48 │ │ │ │ │ + str lr, [sp, #4] │ │ │ │ │ bl 0 │ │ │ │ │ R_ARM_CALL fftwf_plan_destroy_internal │ │ │ │ │ ldr r0, [r4, #68] @ 0x44 │ │ │ │ │ bl 0 │ │ │ │ │ R_ARM_CALL fftwf_plan_destroy_internal │ │ │ │ │ + ldr lr, [sp, #4] │ │ │ │ │ ldr r0, [r4, #64] @ 0x40 │ │ │ │ │ - pop {r4, lr} │ │ │ │ │ + ldr r4, [sp] │ │ │ │ │ + add sp, sp, #8 │ │ │ │ │ b 0 │ │ │ │ │ R_ARM_JUMP24 fftwf_plan_destroy_internal │ │ │ │ │ │ │ │ │ │ -00000124 : │ │ │ │ │ +00000160 : │ │ │ │ │ mkplan(): │ │ │ │ │ - push {r4, r5, r6, r7, r8, r9, sl, fp, lr} │ │ │ │ │ + strd r4, [sp, #-36]! @ 0xffffffdc │ │ │ │ │ mov r4, r1 │ │ │ │ │ ldr r1, [r1, #4] │ │ │ │ │ + strd r6, [sp, #8] │ │ │ │ │ + strd r8, [sp, #16] │ │ │ │ │ + strd sl, [sp, #24] │ │ │ │ │ + str lr, [sp, #32] │ │ │ │ │ sub sp, sp, #68 @ 0x44 │ │ │ │ │ ldr r3, [r1] │ │ │ │ │ cmp r3, #1 │ │ │ │ │ - ble 14c │ │ │ │ │ + ble 198 │ │ │ │ │ ldr r3, [r4, #24] │ │ │ │ │ cmp r3, #8 │ │ │ │ │ - beq 158 │ │ │ │ │ + beq 1b8 │ │ │ │ │ mov r0, #0 │ │ │ │ │ add sp, sp, #68 @ 0x44 │ │ │ │ │ - pop {r4, r5, r6, r7, r8, r9, sl, fp, pc} │ │ │ │ │ + ldrd r4, [sp] │ │ │ │ │ + ldrd r6, [sp, #8] │ │ │ │ │ + ldrd r8, [sp, #16] │ │ │ │ │ + ldrd sl, [sp, #24] │ │ │ │ │ + add sp, sp, #32 │ │ │ │ │ + pop {pc} @ (ldr pc, [sp], #4) │ │ │ │ │ ldr r3, [r0, #8] │ │ │ │ │ mov r8, r0 │ │ │ │ │ - cmp r3, #0 │ │ │ │ │ mov sl, r2 │ │ │ │ │ - beq 188 │ │ │ │ │ + cmp r3, #0 │ │ │ │ │ + beq 1e8 │ │ │ │ │ ldr r3, [r2, #164] @ 0xa4 │ │ │ │ │ tst r3, #4096 @ 0x1000 │ │ │ │ │ - bne 14c │ │ │ │ │ + bne 198 │ │ │ │ │ ldr r2, [r4, #12] │ │ │ │ │ ldr r3, [r4, #16] │ │ │ │ │ cmp r2, r3 │ │ │ │ │ - beq 14c │ │ │ │ │ + beq 198 │ │ │ │ │ mov r2, #0 │ │ │ │ │ mov r0, #1 │ │ │ │ │ bl 0 │ │ │ │ │ R_ARM_CALL fftwf_mpi_is_local_after │ │ │ │ │ cmp r0, #0 │ │ │ │ │ - beq 14c │ │ │ │ │ + beq 198 │ │ │ │ │ ldr r1, [r4, #4] │ │ │ │ │ mov r2, #1 │ │ │ │ │ mov r0, #2 │ │ │ │ │ bl 0 │ │ │ │ │ R_ARM_CALL fftwf_mpi_is_local_after │ │ │ │ │ cmp r0, #0 │ │ │ │ │ - beq 14c │ │ │ │ │ + beq 198 │ │ │ │ │ ldr r3, [r4, #4] │ │ │ │ │ - ldr r1, [r3, #12] │ │ │ │ │ ldr r0, [r3, #4] │ │ │ │ │ + ldr r1, [r3, #12] │ │ │ │ │ bl 0 │ │ │ │ │ R_ARM_CALL fftwf_mpi_num_blocks │ │ │ │ │ cmp r0, #1 │ │ │ │ │ mov r5, r0 │ │ │ │ │ - bne 14c │ │ │ │ │ + bne 198 │ │ │ │ │ ldr r3, [sl, #164] @ 0xa4 │ │ │ │ │ tst r3, #8 │ │ │ │ │ - bne 5f0 │ │ │ │ │ + bne 650 │ │ │ │ │ ldr r9, [r4, #12] │ │ │ │ │ - ldr r0, [r4, #20] │ │ │ │ │ add r3, sp, #44 @ 0x2c │ │ │ │ │ add r2, sp, #40 @ 0x28 │ │ │ │ │ + ldr r0, [r4, #20] │ │ │ │ │ mov r1, r9 │ │ │ │ │ bl 0 │ │ │ │ │ R_ARM_CALL fftwf_extract_reim │ │ │ │ │ ldr fp, [r4, #16] │ │ │ │ │ add r3, sp, #52 @ 0x34 │ │ │ │ │ add r2, sp, #48 @ 0x30 │ │ │ │ │ ldr r0, [r4, #20] │ │ │ │ │ - mov r1, fp │ │ │ │ │ - str r3, [sp, #36] @ 0x24 │ │ │ │ │ str r2, [sp, #32] │ │ │ │ │ + str r3, [sp, #36] @ 0x24 │ │ │ │ │ + mov r1, fp │ │ │ │ │ bl 0 │ │ │ │ │ R_ARM_CALL fftwf_extract_reim │ │ │ │ │ ldr r3, [r8, #8] │ │ │ │ │ cmp r3, #0 │ │ │ │ │ - bne 5bc │ │ │ │ │ + bne 61c │ │ │ │ │ ldr r3, [sl, #164] @ 0xa4 │ │ │ │ │ tst r3, #4096 @ 0x1000 │ │ │ │ │ - bne 5bc │ │ │ │ │ + bne 61c │ │ │ │ │ ldr r3, [sp, #40] @ 0x28 │ │ │ │ │ str r3, [sp, #48] @ 0x30 │ │ │ │ │ ldr r3, [sp, #44] @ 0x2c │ │ │ │ │ str r3, [sp, #52] @ 0x34 │ │ │ │ │ - add r1, sp, #56 @ 0x38 │ │ │ │ │ ldr r0, [r4, #28] │ │ │ │ │ + add r1, sp, #56 @ 0x38 │ │ │ │ │ bl 0 │ │ │ │ │ R_ARM_CALL MPI_Comm_rank │ │ │ │ │ - add r1, sp, #60 @ 0x3c │ │ │ │ │ ldr r0, [r4, #28] │ │ │ │ │ + add r1, sp, #60 @ 0x3c │ │ │ │ │ bl 0 │ │ │ │ │ R_ARM_CALL MPI_Comm_size │ │ │ │ │ ldr r3, [r4, #4] │ │ │ │ │ ldr r0, [r3] │ │ │ │ │ sub r0, r0, #1 │ │ │ │ │ bl 0 │ │ │ │ │ R_ARM_CALL fftwf_mktensor │ │ │ │ │ ldr ip, [r4, #4] │ │ │ │ │ + mov r7, r0 │ │ │ │ │ ldr r6, [ip] │ │ │ │ │ add r2, r6, r6, lsl #1 │ │ │ │ │ - add r3, r6, r6, lsl #1 │ │ │ │ │ + add r1, r6, r6, lsl #1 │ │ │ │ │ add r2, ip, r2, lsl #2 │ │ │ │ │ + lsl r1, r1, #2 │ │ │ │ │ ldr r2, [r2, #-8] │ │ │ │ │ - lsl r1, r3, #2 │ │ │ │ │ - mov r7, r0 │ │ │ │ │ - add r3, r0, r3, lsl #2 │ │ │ │ │ + add r3, r0, r1 │ │ │ │ │ ldr r0, [r4, #8] │ │ │ │ │ str r2, [r3, #-20] @ 0xffffffec │ │ │ │ │ add r2, r6, r6, lsl #1 │ │ │ │ │ lsl r0, r0, #1 │ │ │ │ │ add r2, r7, r2, lsl #2 │ │ │ │ │ str r0, [r2, #-12] │ │ │ │ │ str r0, [r3, #-16] │ │ │ │ │ subs r0, r6, #3 │ │ │ │ │ - bmi 364 │ │ │ │ │ + bmi 3c8 │ │ │ │ │ cmp r6, #4 │ │ │ │ │ sub r2, r1, #16 │ │ │ │ │ sub lr, r1, #20 │ │ │ │ │ - ble 5e8 │ │ │ │ │ - sub r6, r6, #5 │ │ │ │ │ + ble 648 │ │ │ │ │ ldr r2, [r7, r2] │ │ │ │ │ - ldr lr, [r7, lr] │ │ │ │ │ + sub r6, r6, #5 │ │ │ │ │ add r1, ip, r1 │ │ │ │ │ and r6, r6, #1 │ │ │ │ │ str ip, [sp, #24] │ │ │ │ │ + ldr lr, [r7, lr] │ │ │ │ │ mul r2, lr, r2 │ │ │ │ │ - ldr ip, [r1, #-20] @ 0xffffffec │ │ │ │ │ - str r2, [r3, #-24] @ 0xffffffe8 │ │ │ │ │ - str r2, [r3, #-28] @ 0xffffffe4 │ │ │ │ │ - mul r2, ip, r2 │ │ │ │ │ sub r0, r0, #2 │ │ │ │ │ - str ip, [r3, #-32] @ 0xffffffe0 │ │ │ │ │ - cmp r0, r6 │ │ │ │ │ - ldr lr, [r1, #-32] @ 0xffffffe0 │ │ │ │ │ - str lr, [r3, #-44] @ 0xffffffd4 │ │ │ │ │ - str r2, [r3, #-36] @ 0xffffffdc │ │ │ │ │ - str r2, [r3, #-40] @ 0xffffffd8 │ │ │ │ │ sub r1, r1, #24 │ │ │ │ │ + ldr ip, [r1, #4] │ │ │ │ │ + cmp r0, r6 │ │ │ │ │ sub r3, r3, #24 │ │ │ │ │ - bne 2d4 │ │ │ │ │ + str ip, [r3, #-8] │ │ │ │ │ + str r2, [r3, #-4] │ │ │ │ │ + str r2, [r3] │ │ │ │ │ + mul r2, ip, r2 │ │ │ │ │ + ldr lr, [r1, #-8] │ │ │ │ │ + str lr, [r3, #-20] @ 0xffffffec │ │ │ │ │ + str r2, [r3, #-16] │ │ │ │ │ + str r2, [r3, #-12] │ │ │ │ │ + bne 334 │ │ │ │ │ ldr ip, [sp, #24] │ │ │ │ │ add r3, r6, r6, lsl #1 │ │ │ │ │ - add r0, ip, r3, lsl #2 │ │ │ │ │ - add r3, r7, r3, lsl #2 │ │ │ │ │ - ldr lr, [r3, #20] │ │ │ │ │ + cmp r6, #0 │ │ │ │ │ + lsl r3, r3, #2 │ │ │ │ │ + add r0, ip, r3 │ │ │ │ │ + add r3, r7, r3 │ │ │ │ │ ldr r2, [r3, #16] │ │ │ │ │ + ldr lr, [r3, #20] │ │ │ │ │ ldr r1, [r0, #16] │ │ │ │ │ mul r2, lr, r2 │ │ │ │ │ - cmp r6, #0 │ │ │ │ │ sub lr, r6, #1 │ │ │ │ │ str r1, [r3, #4] │ │ │ │ │ - str r2, [r3, #12] │ │ │ │ │ str r2, [r3, #8] │ │ │ │ │ - beq 364 │ │ │ │ │ - mul r2, r1, r2 │ │ │ │ │ - add lr, lr, lr, lsl #1 │ │ │ │ │ + str r2, [r3, #12] │ │ │ │ │ + beq 3c8 │ │ │ │ │ ldr r0, [r0, #4] │ │ │ │ │ + add lr, lr, lr, lsl #1 │ │ │ │ │ + mul r2, r1, r2 │ │ │ │ │ add lr, r7, lr, lsl #2 │ │ │ │ │ str r0, [r3, #-8] │ │ │ │ │ str r2, [lr, #12] │ │ │ │ │ str r2, [r3, #-4] │ │ │ │ │ ldr r1, [r7] │ │ │ │ │ cmp r1, #1 │ │ │ │ │ - ble 394 │ │ │ │ │ + ble 3f8 │ │ │ │ │ add r1, r1, r1, lsl #1 │ │ │ │ │ - sub r1, r1, #3 │ │ │ │ │ mov r3, #0 │ │ │ │ │ add r0, r7, #16 │ │ │ │ │ + sub r1, r1, #3 │ │ │ │ │ ldr r2, [r0, r3, lsl #2] │ │ │ │ │ add r3, r3, #3 │ │ │ │ │ cmp r1, r3 │ │ │ │ │ mul r5, r2, r5 │ │ │ │ │ - bne 380 │ │ │ │ │ + bne 3e4 │ │ │ │ │ ldmib r7, {r2, r3} │ │ │ │ │ mov r6, #2 │ │ │ │ │ mul r1, r3, r2 │ │ │ │ │ ldr r2, [sp, #56] @ 0x38 │ │ │ │ │ str r1, [sp, #24] │ │ │ │ │ ldmib ip, {r0, r1} │ │ │ │ │ bl 0 │ │ │ │ │ R_ARM_CALL fftwf_mpi_block │ │ │ │ │ ldr r2, [sp, #24] │ │ │ │ │ - str r6, [sp, #4] │ │ │ │ │ - mov r1, r2 │ │ │ │ │ str r6, [sp] │ │ │ │ │ + str r6, [sp, #4] │ │ │ │ │ ldr r3, [r4, #8] │ │ │ │ │ + mov r1, r2 │ │ │ │ │ bl 0 │ │ │ │ │ R_ARM_CALL fftwf_mktensor_2d │ │ │ │ │ ldr r3, [sp, #52] @ 0x34 │ │ │ │ │ + mov r1, r0 │ │ │ │ │ + mov r0, r7 │ │ │ │ │ str r3, [sp, #4] │ │ │ │ │ ldr r3, [sp, #48] @ 0x30 │ │ │ │ │ str r3, [sp] │ │ │ │ │ ldrd r2, [sp, #40] @ 0x28 │ │ │ │ │ - mov r1, r0 │ │ │ │ │ - mov r0, r7 │ │ │ │ │ bl 0 │ │ │ │ │ R_ARM_CALL fftwf_mkproblem_dft_d │ │ │ │ │ mov r1, r0 │ │ │ │ │ mov r0, sl │ │ │ │ │ bl 0 │ │ │ │ │ R_ARM_CALL fftwf_mkplan_d │ │ │ │ │ - ldr r1, [r4, #28] │ │ │ │ │ str r0, [sp, #24] │ │ │ │ │ clz r0, r0 │ │ │ │ │ + ldr r1, [r4, #28] │ │ │ │ │ lsr r0, r0, #5 │ │ │ │ │ bl 0 │ │ │ │ │ R_ARM_CALL fftwf_mpi_any_true │ │ │ │ │ subs r7, r0, #0 │ │ │ │ │ - bne 5c4 │ │ │ │ │ + bne 624 │ │ │ │ │ ldr r3, [r4, #8] │ │ │ │ │ mul r5, r3, r5 │ │ │ │ │ ldr r3, [r4, #4] │ │ │ │ │ lsl ip, r5, #1 │ │ │ │ │ - ldr r1, [r3, #16] │ │ │ │ │ ldr r0, [r3, #4] │ │ │ │ │ + str ip, [sp, #28] │ │ │ │ │ + ldr r1, [r3, #16] │ │ │ │ │ str r7, [sp, #16] │ │ │ │ │ ldr r2, [r4, #28] │ │ │ │ │ str r2, [sp, #12] │ │ │ │ │ ldr r2, [r3, #24] │ │ │ │ │ str r2, [sp, #8] │ │ │ │ │ - ldr r3, [r3, #8] │ │ │ │ │ mov r2, ip │ │ │ │ │ - str r3, [sp, #4] │ │ │ │ │ + ldr r3, [r3, #8] │ │ │ │ │ str fp, [sp] │ │ │ │ │ + str r3, [sp, #4] │ │ │ │ │ mov r3, r9 │ │ │ │ │ - str ip, [sp, #28] │ │ │ │ │ bl 0 │ │ │ │ │ R_ARM_CALL fftwf_mpi_mkproblem_transpose │ │ │ │ │ mov r1, r0 │ │ │ │ │ mov r0, sl │ │ │ │ │ bl 0 │ │ │ │ │ R_ARM_CALL fftwf_mkplan_d │ │ │ │ │ - ldr r1, [r4, #28] │ │ │ │ │ mov r9, r0 │ │ │ │ │ clz r0, r0 │ │ │ │ │ + ldr r1, [r4, #28] │ │ │ │ │ lsr r0, r0, #5 │ │ │ │ │ bl 0 │ │ │ │ │ R_ARM_CALL fftwf_mpi_any_true │ │ │ │ │ cmp r0, #0 │ │ │ │ │ - bne 5cc │ │ │ │ │ + bne 62c │ │ │ │ │ + ldr r0, [r4, #20] │ │ │ │ │ mov r1, fp │ │ │ │ │ - ldr r3, [sp, #36] @ 0x24 │ │ │ │ │ ldr r2, [sp, #32] │ │ │ │ │ - ldr r0, [r4, #20] │ │ │ │ │ + ldr r3, [sp, #36] @ 0x24 │ │ │ │ │ bl 0 │ │ │ │ │ R_ARM_CALL fftwf_extract_reim │ │ │ │ │ ldr r3, [r4, #4] │ │ │ │ │ ldr r2, [sp, #56] @ 0x38 │ │ │ │ │ - ldr r1, [r3, #24] │ │ │ │ │ - ldr r0, [r3, #16] │ │ │ │ │ ldr r7, [r3, #4] │ │ │ │ │ + ldr r0, [r3, #16] │ │ │ │ │ + ldr r1, [r3, #24] │ │ │ │ │ bl 0 │ │ │ │ │ R_ARM_CALL fftwf_mpi_block │ │ │ │ │ ldr r3, [r4, #4] │ │ │ │ │ - ldr r2, [sp, #28] │ │ │ │ │ mul r7, r5, r7 │ │ │ │ │ - mov r1, r2 │ │ │ │ │ - lsl r7, r7, #1 │ │ │ │ │ mov fp, r0 │ │ │ │ │ + ldr r2, [sp, #28] │ │ │ │ │ + lsl r7, r7, #1 │ │ │ │ │ ldr r0, [r3, #4] │ │ │ │ │ + mov r1, r2 │ │ │ │ │ bl 0 │ │ │ │ │ R_ARM_CALL fftwf_mktensor_1d │ │ │ │ │ mov r2, r7 │ │ │ │ │ mov r1, r7 │ │ │ │ │ + str r6, [sp] │ │ │ │ │ mov r3, r5 │ │ │ │ │ str r6, [sp, #4] │ │ │ │ │ - str r6, [sp] │ │ │ │ │ str r0, [sp, #28] │ │ │ │ │ mov r0, fp │ │ │ │ │ bl 0 │ │ │ │ │ R_ARM_CALL fftwf_mktensor_2d │ │ │ │ │ ldrd r2, [sp, #48] @ 0x30 │ │ │ │ │ - stm sp, {r2, r3} │ │ │ │ │ mov r1, r0 │ │ │ │ │ ldr r0, [sp, #28] │ │ │ │ │ + stm sp, {r2, r3} │ │ │ │ │ bl 0 │ │ │ │ │ R_ARM_CALL fftwf_mkproblem_dft_d │ │ │ │ │ mov r1, r0 │ │ │ │ │ mov r0, sl │ │ │ │ │ bl 0 │ │ │ │ │ R_ARM_CALL fftwf_mkplan_d │ │ │ │ │ - ldr r1, [r4, #28] │ │ │ │ │ mov r7, r0 │ │ │ │ │ clz r0, r0 │ │ │ │ │ + ldr r1, [r4, #28] │ │ │ │ │ lsr r0, r0, #5 │ │ │ │ │ bl 0 │ │ │ │ │ R_ARM_CALL fftwf_mpi_any_true │ │ │ │ │ cmp r0, #0 │ │ │ │ │ - bne 5cc │ │ │ │ │ - ldr r2, [pc, #212] @ 604 │ │ │ │ │ - ldr r1, [pc, #212] @ 608 │ │ │ │ │ + bne 62c │ │ │ │ │ + ldr r2, [pc, #208] @ 664 │ │ │ │ │ + mov r0, #88 @ 0x58 │ │ │ │ │ + ldr r1, [pc, #204] @ 668 │ │ │ │ │ add r2, pc, r2 │ │ │ │ │ add r1, pc, r1 │ │ │ │ │ - mov r0, #88 @ 0x58 │ │ │ │ │ bl 0 │ │ │ │ │ R_ARM_CALL fftwf_mkplan_rdft │ │ │ │ │ ldr r3, [sp, #24] │ │ │ │ │ - ldr r2, [r4, #12] │ │ │ │ │ + mov r5, r0 │ │ │ │ │ add r1, r7, #8 │ │ │ │ │ + ldr r2, [r4, #12] │ │ │ │ │ + add r4, r0, #8 │ │ │ │ │ str r3, [r0, #64] @ 0x40 │ │ │ │ │ ldr r3, [r8, #8] │ │ │ │ │ - add r4, r0, #8 │ │ │ │ │ + str r9, [r0, #68] @ 0x44 │ │ │ │ │ + str r7, [r0, #72] @ 0x48 │ │ │ │ │ cmp r3, #0 │ │ │ │ │ ldr r3, [sp, #40] @ 0x28 │ │ │ │ │ ldreq r6, [sl, #164] @ 0xa4 │ │ │ │ │ sub r3, r3, r2 │ │ │ │ │ asr r3, r3, #2 │ │ │ │ │ + andeq r6, r6, #4096 @ 0x1000 │ │ │ │ │ str r3, [r0, #76] @ 0x4c │ │ │ │ │ ldr r3, [sp, #44] @ 0x2c │ │ │ │ │ - andeq r6, r6, #4096 @ 0x1000 │ │ │ │ │ + str r6, [r0, #84] @ 0x54 │ │ │ │ │ sub r3, r3, r2 │ │ │ │ │ + mov r2, r4 │ │ │ │ │ asr r3, r3, #2 │ │ │ │ │ str r3, [r0, #80] @ 0x50 │ │ │ │ │ ldr r3, [sp, #24] │ │ │ │ │ - mov r5, r0 │ │ │ │ │ - mov r2, r4 │ │ │ │ │ - str r9, [r0, #68] @ 0x44 │ │ │ │ │ - str r7, [r0, #72] @ 0x48 │ │ │ │ │ - str r6, [r0, #84] @ 0x54 │ │ │ │ │ add r0, r3, #8 │ │ │ │ │ bl 0 │ │ │ │ │ R_ARM_CALL fftwf_ops_add │ │ │ │ │ add r0, r9, #8 │ │ │ │ │ mov r1, r4 │ │ │ │ │ bl 0 │ │ │ │ │ R_ARM_CALL fftwf_ops_add2 │ │ │ │ │ mov r0, r5 │ │ │ │ │ - add sp, sp, #68 @ 0x44 │ │ │ │ │ - pop {r4, r5, r6, r7, r8, r9, sl, fp, pc} │ │ │ │ │ + b 19c │ │ │ │ │ mov r9, fp │ │ │ │ │ - b 23c │ │ │ │ │ + b 29c │ │ │ │ │ mov r7, #0 │ │ │ │ │ mov r9, r7 │ │ │ │ │ mov r0, r7 │ │ │ │ │ bl 0 │ │ │ │ │ R_ARM_CALL fftwf_plan_destroy_internal │ │ │ │ │ mov r0, r9 │ │ │ │ │ bl 0 │ │ │ │ │ R_ARM_CALL fftwf_plan_destroy_internal │ │ │ │ │ ldr r0, [sp, #24] │ │ │ │ │ bl 0 │ │ │ │ │ R_ARM_CALL fftwf_plan_destroy_internal │ │ │ │ │ - b 14c │ │ │ │ │ + b 198 │ │ │ │ │ mov r6, r0 │ │ │ │ │ - b 314 │ │ │ │ │ + b 374 │ │ │ │ │ mov r0, r4 │ │ │ │ │ bl 0 │ │ │ │ │ R_ARM_CALL fftwf_mpi_dft_serial_applicable │ │ │ │ │ cmp r0, #0 │ │ │ │ │ - beq 1dc │ │ │ │ │ - b 14c │ │ │ │ │ - .word 0xfffffac8 │ │ │ │ │ - .word 0x000000cc │ │ │ │ │ + beq 23c │ │ │ │ │ + b 198 │ │ │ │ │ + .word 0xfffffa60 │ │ │ │ │ + .word 0x000000c4 │ │ │ │ │ R_ARM_REL32 .data.rel.ro │ │ │ │ │ │ │ │ │ │ -0000060c : │ │ │ │ │ +0000066c : │ │ │ │ │ awake(): │ │ │ │ │ - push {r4, r5, r6, lr} │ │ │ │ │ + strd r4, [sp, #-16]! │ │ │ │ │ mov r4, r0 │ │ │ │ │ mov r5, r1 │ │ │ │ │ ldr r0, [r0, #64] @ 0x40 │ │ │ │ │ + str r6, [sp, #8] │ │ │ │ │ + str lr, [sp, #12] │ │ │ │ │ bl 0 │ │ │ │ │ R_ARM_CALL fftwf_plan_awake │ │ │ │ │ ldr r0, [r4, #68] @ 0x44 │ │ │ │ │ mov r1, r5 │ │ │ │ │ bl 0 │ │ │ │ │ R_ARM_CALL fftwf_plan_awake │ │ │ │ │ - ldr r0, [r4, #72] @ 0x48 │ │ │ │ │ + ldr r6, [sp, #8] │ │ │ │ │ mov r1, r5 │ │ │ │ │ - pop {r4, r5, r6, lr} │ │ │ │ │ + ldr lr, [sp, #12] │ │ │ │ │ + ldr r0, [r4, #72] @ 0x48 │ │ │ │ │ + ldrd r4, [sp] │ │ │ │ │ + add sp, sp, #16 │ │ │ │ │ b 0 │ │ │ │ │ R_ARM_JUMP24 fftwf_plan_awake │ │ │ │ │ │ │ │ │ │ -0000063c : │ │ │ │ │ +000006b0 : │ │ │ │ │ fftwf_mpi_dft_rank_geq2_transposed_register(): │ │ │ │ │ - push {r4, r5, r6, lr} │ │ │ │ │ - ldr r5, [pc, #72] @ 690 │ │ │ │ │ + strd r4, [sp, #-16]! │ │ │ │ │ mov r4, r0 │ │ │ │ │ + mov r0, #12 │ │ │ │ │ + ldr r5, [pc, #84] @ 718 │ │ │ │ │ + str r6, [sp, #8] │ │ │ │ │ + str lr, [sp, #12] │ │ │ │ │ add r5, pc, r5 │ │ │ │ │ mov r1, r5 │ │ │ │ │ - mov r0, #12 │ │ │ │ │ bl 0 │ │ │ │ │ R_ARM_CALL fftwf_mksolver │ │ │ │ │ mov r3, #0 │ │ │ │ │ - str r3, [r0, #8] │ │ │ │ │ mov r1, r0 │ │ │ │ │ + str r3, [r0, #8] │ │ │ │ │ mov r0, r4 │ │ │ │ │ bl 0 │ │ │ │ │ R_ARM_CALL fftwf_solver_register │ │ │ │ │ mov r1, r5 │ │ │ │ │ mov r0, #12 │ │ │ │ │ bl 0 │ │ │ │ │ R_ARM_CALL fftwf_mksolver │ │ │ │ │ mov r3, #1 │ │ │ │ │ + ldr r6, [sp, #8] │ │ │ │ │ mov r1, r0 │ │ │ │ │ + ldr lr, [sp, #12] │ │ │ │ │ str r3, [r0, #8] │ │ │ │ │ mov r0, r4 │ │ │ │ │ - pop {r4, r5, r6, lr} │ │ │ │ │ + ldrd r4, [sp] │ │ │ │ │ + add sp, sp, #16 │ │ │ │ │ b 0 │ │ │ │ │ R_ARM_JUMP24 fftwf_solver_register │ │ │ │ │ - .word 0x00000040 │ │ │ │ │ + .word 0x00000048 │ │ │ │ │ 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: 5232 (bytes into file) │ │ │ │ │ + Start of section headers: 5432 (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 0x1470: │ │ │ │ │ +There are 15 section headers, starting at offset 0x1538: │ │ │ │ │ │ │ │ │ │ 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 000b78 00 AX 0 0 4 │ │ │ │ │ - [ 2] .rel.text REL 00000000 0011f8 0001c8 08 I 12 1 4 │ │ │ │ │ - [ 3] .data PROGBITS 00000000 000bac 000000 00 WA 0 0 1 │ │ │ │ │ - [ 4] .bss NOBITS 00000000 000bac 000000 00 WA 0 0 1 │ │ │ │ │ - [ 5] .rodata.str1.4 PROGBITS 00000000 000bac 000041 01 AMS 0 0 4 │ │ │ │ │ - [ 6] .data.rel.ro PROGBITS 00000000 000bed 000010 00 WA 0 0 4 │ │ │ │ │ - [ 7] .rel.data.rel.ro REL 00000000 0013c0 000020 08 I 12 6 4 │ │ │ │ │ - [ 8] .data.rel.ro.local PROGBITS 00000000 000bfd 00000c 00 WA 0 0 4 │ │ │ │ │ - [ 9] .rel.data.rel.ro.local REL 00000000 0013e0 000008 08 I 12 8 4 │ │ │ │ │ - [10] .note.GNU-stack PROGBITS 00000000 000c09 000000 00 0 0 1 │ │ │ │ │ - [11] .ARM.attributes ARM_ATTRIBUTES 00000000 000c09 00002b 00 0 0 1 │ │ │ │ │ - [12] .symtab SYMTAB 00000000 000c34 000350 10 13 25 4 │ │ │ │ │ - [13] .strtab STRTAB 00000000 000f84 000273 00 0 0 1 │ │ │ │ │ - [14] .shstrtab STRTAB 00000000 0013e8 000087 00 0 0 1 │ │ │ │ │ + [ 1] .text PROGBITS 00000000 000034 000c40 00 AX 0 0 4 │ │ │ │ │ + [ 2] .rel.text REL 00000000 0012c0 0001c8 08 I 12 1 4 │ │ │ │ │ + [ 3] .data PROGBITS 00000000 000c74 000000 00 WA 0 0 1 │ │ │ │ │ + [ 4] .bss NOBITS 00000000 000c74 000000 00 WA 0 0 1 │ │ │ │ │ + [ 5] .rodata.str1.4 PROGBITS 00000000 000c74 000041 01 AMS 0 0 4 │ │ │ │ │ + [ 6] .data.rel.ro PROGBITS 00000000 000cb5 000010 00 WA 0 0 4 │ │ │ │ │ + [ 7] .rel.data.rel.ro REL 00000000 001488 000020 08 I 12 6 4 │ │ │ │ │ + [ 8] .data.rel.ro.local PROGBITS 00000000 000cc5 00000c 00 WA 0 0 4 │ │ │ │ │ + [ 9] .rel.data.rel.ro.local REL 00000000 0014a8 000008 08 I 12 8 4 │ │ │ │ │ + [10] .note.GNU-stack PROGBITS 00000000 000cd1 000000 00 0 0 1 │ │ │ │ │ + [11] .ARM.attributes ARM_ATTRIBUTES 00000000 000cd1 00002b 00 0 0 1 │ │ │ │ │ + [12] .symtab SYMTAB 00000000 000cfc 000350 10 13 25 4 │ │ │ │ │ + [13] .strtab STRTAB 00000000 00104c 000273 00 0 0 1 │ │ │ │ │ + [14] .shstrtab STRTAB 00000000 0014b0 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 53 entries: │ │ │ │ │ Num: Value Size Type Bind Vis Ndx Name │ │ │ │ │ 0: 00000000 0 NOTYPE LOCAL DEFAULT UND │ │ │ │ │ 1: 00000000 0 NOTYPE LOCAL DEFAULT 1 $a │ │ │ │ │ - 2: 00000000 468 FUNC LOCAL DEFAULT 1 apply_ddft_first │ │ │ │ │ + 2: 00000000 528 FUNC LOCAL DEFAULT 1 apply_ddft_first │ │ │ │ │ 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: 000001d4 164 FUNC LOCAL DEFAULT 1 print │ │ │ │ │ - 10: 00000260 0 NOTYPE LOCAL DEFAULT 1 $d │ │ │ │ │ - 11: 00000278 0 NOTYPE LOCAL DEFAULT 1 $a │ │ │ │ │ - 12: 00000278 36 FUNC LOCAL DEFAULT 1 destroy │ │ │ │ │ - 13: 0000029c 1560 FUNC LOCAL DEFAULT 1 mkplan │ │ │ │ │ - 14: 00000890 0 NOTYPE LOCAL DEFAULT 1 $d │ │ │ │ │ - 15: 00000918 444 FUNC LOCAL DEFAULT 1 apply_ddft_last │ │ │ │ │ - 16: 000008b4 0 NOTYPE LOCAL DEFAULT 1 $a │ │ │ │ │ - 17: 000008b4 100 FUNC LOCAL DEFAULT 1 awake │ │ │ │ │ - 18: 00000b6c 0 NOTYPE LOCAL DEFAULT 1 $d │ │ │ │ │ + 9: 00000210 176 FUNC LOCAL DEFAULT 1 print │ │ │ │ │ + 10: 000002a8 0 NOTYPE LOCAL DEFAULT 1 $d │ │ │ │ │ + 11: 000002c0 0 NOTYPE LOCAL DEFAULT 1 $a │ │ │ │ │ + 12: 000002c0 48 FUNC LOCAL DEFAULT 1 destroy │ │ │ │ │ + 13: 000002f0 1592 FUNC LOCAL DEFAULT 1 mkplan │ │ │ │ │ + 14: 00000904 0 NOTYPE LOCAL DEFAULT 1 $d │ │ │ │ │ + 15: 0000099c 484 FUNC LOCAL DEFAULT 1 apply_ddft_last │ │ │ │ │ + 16: 00000928 0 NOTYPE LOCAL DEFAULT 1 $a │ │ │ │ │ + 17: 00000928 116 FUNC LOCAL DEFAULT 1 awake │ │ │ │ │ + 18: 00000c34 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 │ │ │ │ │ @@ -46,11 +46,11 @@ │ │ │ │ │ 42: 00000000 0 NOTYPE GLOBAL DEFAULT UND __aeabi_i2d │ │ │ │ │ 43: 00000000 0 NOTYPE GLOBAL DEFAULT UND __aeabi_dmul │ │ │ │ │ 44: 00000000 0 NOTYPE GLOBAL DEFAULT UND __aeabi_dadd │ │ │ │ │ 45: 00000000 0 NOTYPE GLOBAL DEFAULT UND fftwf_mpi_dft_serial_applicable │ │ │ │ │ 46: 00000000 0 NOTYPE GLOBAL DEFAULT UND fftwf_plan_awake │ │ │ │ │ 47: 00000000 0 NOTYPE GLOBAL DEFAULT UND fftwf_triggen_destroy │ │ │ │ │ 48: 00000000 0 NOTYPE GLOBAL DEFAULT UND fftwf_mktriggen │ │ │ │ │ - 49: 00000ad4 164 FUNC GLOBAL DEFAULT 1 fftwf_mpi_dft_rank1_register │ │ │ │ │ + 49: 00000b80 192 FUNC GLOBAL DEFAULT 1 fftwf_mpi_dft_rank1_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_dft_solve │ │ │ │ ├── readelf --wide --relocs {} │ │ │ │ │ @@ -1,71 +1,71 @@ │ │ │ │ │ │ │ │ │ │ -Relocation section '.rel.text' at offset 0x11f8 contains 57 entries: │ │ │ │ │ +Relocation section '.rel.text' at offset 0x12c0 contains 57 entries: │ │ │ │ │ Offset Info Type Sym. Value Symbol's Name │ │ │ │ │ -00000264 00000503 R_ARM_REL32 00000008 .LC2 │ │ │ │ │ -00000268 00000703 R_ARM_REL32 00000014 .LC4 │ │ │ │ │ -0000026c 00000803 R_ARM_REL32 00000018 .LC5 │ │ │ │ │ -00000270 00000603 R_ARM_REL32 00000010 .LC3 │ │ │ │ │ -00000274 00000403 R_ARM_REL32 00000000 .LC1 │ │ │ │ │ -00000284 0000191c R_ARM_CALL 00000000 fftwf_plan_destroy_internal │ │ │ │ │ -0000028c 0000191c R_ARM_CALL 00000000 fftwf_plan_destroy_internal │ │ │ │ │ -00000298 0000191d R_ARM_JUMP24 00000000 fftwf_plan_destroy_internal │ │ │ │ │ -000002bc 00001a1c R_ARM_CALL 00000000 MPI_Comm_size │ │ │ │ │ -0000037c 00001b1c R_ARM_CALL 00000000 fftwf_mpi_choose_radix │ │ │ │ │ -00000394 00001c1c R_ARM_CALL 00000000 MPI_Comm_rank │ │ │ │ │ -000003a0 00001a1c R_ARM_CALL 00000000 MPI_Comm_size │ │ │ │ │ -000003b0 00001d1c R_ARM_CALL 00000000 __aeabi_idiv │ │ │ │ │ -000003e8 00001e1c R_ARM_CALL 00000000 fftwf_mpi_block │ │ │ │ │ -00000424 00001f1c R_ARM_CALL 00000000 fftwf_mpi_mkdtensor │ │ │ │ │ -00000460 0000201c R_ARM_CALL 00000000 fftwf_mpi_mkproblem_dft_d │ │ │ │ │ -0000046c 0000211c R_ARM_CALL 00000000 fftwf_mkplan_d │ │ │ │ │ -00000480 0000221c R_ARM_CALL 00000000 fftwf_mpi_any_true │ │ │ │ │ -000004c8 0000231c R_ARM_CALL 00000000 fftwf_extract_reim │ │ │ │ │ -000004e4 0000231c R_ARM_CALL 00000000 fftwf_extract_reim │ │ │ │ │ -000004f8 0000241c R_ARM_CALL 00000000 fftwf_mktensor_1d │ │ │ │ │ -0000050c 0000241c R_ARM_CALL 00000000 fftwf_mktensor_1d │ │ │ │ │ -0000052c 0000251c R_ARM_CALL 00000000 fftwf_mkproblem_dft_d │ │ │ │ │ -00000538 0000211c R_ARM_CALL 00000000 fftwf_mkplan_d │ │ │ │ │ -0000054c 0000221c R_ARM_CALL 00000000 fftwf_mpi_any_true │ │ │ │ │ -000005b0 0000261c R_ARM_CALL 00000000 fftwf_mpi_mkproblem_transpose │ │ │ │ │ -000005bc 0000211c R_ARM_CALL 00000000 fftwf_mkplan_d │ │ │ │ │ -000005d0 0000221c R_ARM_CALL 00000000 fftwf_mpi_any_true │ │ │ │ │ -000005ec 0000271c R_ARM_CALL 00000000 fftwf_mkplan_rdft │ │ │ │ │ -00000614 0000231c R_ARM_CALL 00000000 fftwf_extract_reim │ │ │ │ │ -000006ac 0000281c R_ARM_CALL 00000000 fftwf_ops_add │ │ │ │ │ -000006c0 0000291c R_ARM_CALL 00000000 fftwf_ops_add2 │ │ │ │ │ -000006e8 00002a1c R_ARM_CALL 00000000 __aeabi_i2d │ │ │ │ │ -000006fc 00002b1c R_ARM_CALL 00000000 __aeabi_dmul │ │ │ │ │ -00000714 00002c1c R_ARM_CALL 00000000 __aeabi_dadd │ │ │ │ │ -0000072c 00002b1c R_ARM_CALL 00000000 __aeabi_dmul │ │ │ │ │ -0000073c 00002c1c R_ARM_CALL 00000000 __aeabi_dadd │ │ │ │ │ -00000750 00002c1c R_ARM_CALL 00000000 __aeabi_dadd │ │ │ │ │ -000007ac 0000201c R_ARM_CALL 00000000 fftwf_mpi_mkproblem_dft_d │ │ │ │ │ -000007b8 0000211c R_ARM_CALL 00000000 fftwf_mkplan_d │ │ │ │ │ -000007cc 0000221c R_ARM_CALL 00000000 fftwf_mpi_any_true │ │ │ │ │ -000007e0 0000191c R_ARM_CALL 00000000 fftwf_plan_destroy_internal │ │ │ │ │ -000007e8 0000191c R_ARM_CALL 00000000 fftwf_plan_destroy_internal │ │ │ │ │ -000007f0 0000191c R_ARM_CALL 00000000 fftwf_plan_destroy_internal │ │ │ │ │ -00000830 00001e1c R_ARM_CALL 00000000 fftwf_mpi_block │ │ │ │ │ -0000087c 00002d1c R_ARM_CALL 00000000 fftwf_mpi_dft_serial_applicable │ │ │ │ │ -0000089c 00001303 R_ARM_REL32 00000000 .data.rel.ro │ │ │ │ │ -000008c4 00002e1c R_ARM_CALL 00000000 fftwf_plan_awake │ │ │ │ │ -000008d0 00002e1c R_ARM_CALL 00000000 fftwf_plan_awake │ │ │ │ │ -000008dc 00002e1c R_ARM_CALL 00000000 fftwf_plan_awake │ │ │ │ │ -000008ec 00002f1c R_ARM_CALL 00000000 fftwf_triggen_destroy │ │ │ │ │ -00000908 0000301c R_ARM_CALL 00000000 fftwf_mktriggen │ │ │ │ │ -00000b18 0000321c R_ARM_CALL 00000000 fftwf_mksolver │ │ │ │ │ -00000b2c 0000331c R_ARM_CALL 00000000 fftwf_solver_register │ │ │ │ │ -00000b38 0000321c R_ARM_CALL 00000000 fftwf_mksolver │ │ │ │ │ -00000b50 0000331c R_ARM_CALL 00000000 fftwf_solver_register │ │ │ │ │ -00000b70 00001603 R_ARM_REL32 00000000 .data.rel.ro.local │ │ │ │ │ +000002ac 00000503 R_ARM_REL32 00000008 .LC2 │ │ │ │ │ +000002b0 00000703 R_ARM_REL32 00000014 .LC4 │ │ │ │ │ +000002b4 00000803 R_ARM_REL32 00000018 .LC5 │ │ │ │ │ +000002b8 00000603 R_ARM_REL32 00000010 .LC3 │ │ │ │ │ +000002bc 00000403 R_ARM_REL32 00000000 .LC1 │ │ │ │ │ +000002d0 0000191c R_ARM_CALL 00000000 fftwf_plan_destroy_internal │ │ │ │ │ +000002d8 0000191c R_ARM_CALL 00000000 fftwf_plan_destroy_internal │ │ │ │ │ +000002ec 0000191d R_ARM_JUMP24 00000000 fftwf_plan_destroy_internal │ │ │ │ │ +00000320 00001a1c R_ARM_CALL 00000000 MPI_Comm_size │ │ │ │ │ +000003f4 00001b1c R_ARM_CALL 00000000 fftwf_mpi_choose_radix │ │ │ │ │ +0000040c 00001c1c R_ARM_CALL 00000000 MPI_Comm_rank │ │ │ │ │ +00000418 00001a1c R_ARM_CALL 00000000 MPI_Comm_size │ │ │ │ │ +00000428 00001d1c R_ARM_CALL 00000000 __aeabi_idiv │ │ │ │ │ +00000460 00001e1c R_ARM_CALL 00000000 fftwf_mpi_block │ │ │ │ │ +0000049c 00001f1c R_ARM_CALL 00000000 fftwf_mpi_mkdtensor │ │ │ │ │ +000004d8 0000201c R_ARM_CALL 00000000 fftwf_mpi_mkproblem_dft_d │ │ │ │ │ +000004e4 0000211c R_ARM_CALL 00000000 fftwf_mkplan_d │ │ │ │ │ +000004f8 0000221c R_ARM_CALL 00000000 fftwf_mpi_any_true │ │ │ │ │ +00000540 0000231c R_ARM_CALL 00000000 fftwf_extract_reim │ │ │ │ │ +0000055c 0000231c R_ARM_CALL 00000000 fftwf_extract_reim │ │ │ │ │ +00000570 0000241c R_ARM_CALL 00000000 fftwf_mktensor_1d │ │ │ │ │ +00000584 0000241c R_ARM_CALL 00000000 fftwf_mktensor_1d │ │ │ │ │ +000005a4 0000251c R_ARM_CALL 00000000 fftwf_mkproblem_dft_d │ │ │ │ │ +000005b0 0000211c R_ARM_CALL 00000000 fftwf_mkplan_d │ │ │ │ │ +000005c4 0000221c R_ARM_CALL 00000000 fftwf_mpi_any_true │ │ │ │ │ +00000628 0000261c R_ARM_CALL 00000000 fftwf_mpi_mkproblem_transpose │ │ │ │ │ +00000634 0000211c R_ARM_CALL 00000000 fftwf_mkplan_d │ │ │ │ │ +00000648 0000221c R_ARM_CALL 00000000 fftwf_mpi_any_true │ │ │ │ │ +00000664 0000271c R_ARM_CALL 00000000 fftwf_mkplan_rdft │ │ │ │ │ +0000068c 0000231c R_ARM_CALL 00000000 fftwf_extract_reim │ │ │ │ │ +00000724 0000281c R_ARM_CALL 00000000 fftwf_ops_add │ │ │ │ │ +00000738 0000291c R_ARM_CALL 00000000 fftwf_ops_add2 │ │ │ │ │ +00000760 00002a1c R_ARM_CALL 00000000 __aeabi_i2d │ │ │ │ │ +00000774 00002b1c R_ARM_CALL 00000000 __aeabi_dmul │ │ │ │ │ +0000078c 00002c1c R_ARM_CALL 00000000 __aeabi_dadd │ │ │ │ │ +000007a4 00002b1c R_ARM_CALL 00000000 __aeabi_dmul │ │ │ │ │ +000007b4 00002c1c R_ARM_CALL 00000000 __aeabi_dadd │ │ │ │ │ +000007c8 00002c1c R_ARM_CALL 00000000 __aeabi_dadd │ │ │ │ │ +00000820 0000201c R_ARM_CALL 00000000 fftwf_mpi_mkproblem_dft_d │ │ │ │ │ +0000082c 0000211c R_ARM_CALL 00000000 fftwf_mkplan_d │ │ │ │ │ +00000840 0000221c R_ARM_CALL 00000000 fftwf_mpi_any_true │ │ │ │ │ +00000854 0000191c R_ARM_CALL 00000000 fftwf_plan_destroy_internal │ │ │ │ │ +0000085c 0000191c R_ARM_CALL 00000000 fftwf_plan_destroy_internal │ │ │ │ │ +00000864 0000191c R_ARM_CALL 00000000 fftwf_plan_destroy_internal │ │ │ │ │ +000008a4 00001e1c R_ARM_CALL 00000000 fftwf_mpi_block │ │ │ │ │ +000008f0 00002d1c R_ARM_CALL 00000000 fftwf_mpi_dft_serial_applicable │ │ │ │ │ +00000910 00001303 R_ARM_REL32 00000000 .data.rel.ro │ │ │ │ │ +00000940 00002e1c R_ARM_CALL 00000000 fftwf_plan_awake │ │ │ │ │ +0000094c 00002e1c R_ARM_CALL 00000000 fftwf_plan_awake │ │ │ │ │ +00000958 00002e1c R_ARM_CALL 00000000 fftwf_plan_awake │ │ │ │ │ +00000968 00002f1c R_ARM_CALL 00000000 fftwf_triggen_destroy │ │ │ │ │ +00000990 0000301c R_ARM_CALL 00000000 fftwf_mktriggen │ │ │ │ │ +00000bd0 0000321c R_ARM_CALL 00000000 fftwf_mksolver │ │ │ │ │ +00000be4 0000331c R_ARM_CALL 00000000 fftwf_solver_register │ │ │ │ │ +00000bf0 0000321c R_ARM_CALL 00000000 fftwf_mksolver │ │ │ │ │ +00000c08 0000331c R_ARM_CALL 00000000 fftwf_solver_register │ │ │ │ │ +00000c38 00001603 R_ARM_REL32 00000000 .data.rel.ro.local │ │ │ │ │ │ │ │ │ │ -Relocation section '.rel.data.rel.ro' at offset 0x13c0 contains 4 entries: │ │ │ │ │ +Relocation section '.rel.data.rel.ro' at offset 0x1488 contains 4 entries: │ │ │ │ │ Offset Info Type Sym. Value Symbol's Name │ │ │ │ │ 00000000 00003402 R_ARM_ABS32 00000000 fftwf_mpi_dft_solve │ │ │ │ │ -00000004 00001102 R_ARM_ABS32 000008b4 awake │ │ │ │ │ -00000008 00000902 R_ARM_ABS32 000001d4 print │ │ │ │ │ -0000000c 00000c02 R_ARM_ABS32 00000278 destroy │ │ │ │ │ +00000004 00001102 R_ARM_ABS32 00000928 awake │ │ │ │ │ +00000008 00000902 R_ARM_ABS32 00000210 print │ │ │ │ │ +0000000c 00000c02 R_ARM_ABS32 000002c0 destroy │ │ │ │ │ │ │ │ │ │ -Relocation section '.rel.data.rel.ro.local' at offset 0x13e0 contains 1 entry: │ │ │ │ │ +Relocation section '.rel.data.rel.ro.local' at offset 0x14a8 contains 1 entry: │ │ │ │ │ Offset Info Type Sym. Value Symbol's Name │ │ │ │ │ -00000004 00000d02 R_ARM_ABS32 0000029c mkplan │ │ │ │ │ +00000004 00000d02 R_ARM_ABS32 000002f0 mkplan │ │ │ │ ├── objdump --line-numbers --disassemble --demangle --reloc --no-show-raw-insn --section=.text {} │ │ │ │ │ @@ -1,513 +1,543 @@ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ Disassembly of section .text: │ │ │ │ │ │ │ │ │ │ 00000000 : │ │ │ │ │ apply_ddft_first(): │ │ │ │ │ - push {r4, r5, r6, r7, r8, r9, sl, fp, lr} │ │ │ │ │ + strd r4, [sp, #-36]! @ 0xffffffdc │ │ │ │ │ mov r4, r0 │ │ │ │ │ ldr r0, [r0, #72] @ 0x48 │ │ │ │ │ - sub sp, sp, #76 @ 0x4c │ │ │ │ │ - ldr r3, [r0, #56] @ 0x38 │ │ │ │ │ + strd r6, [sp, #8] │ │ │ │ │ mov r6, r1 │ │ │ │ │ + strd r8, [sp, #16] │ │ │ │ │ mov r9, r2 │ │ │ │ │ + strd sl, [sp, #24] │ │ │ │ │ + str lr, [sp, #32] │ │ │ │ │ + sub sp, sp, #76 @ 0x4c │ │ │ │ │ + ldr r3, [r0, #56] @ 0x38 │ │ │ │ │ blx r3 │ │ │ │ │ - ldr r2, [r4, #88] @ 0x58 │ │ │ │ │ - ldr ip, [r4, #112] @ 0x70 │ │ │ │ │ + ldr r8, [r4, #64] @ 0x40 │ │ │ │ │ ldr r5, [r4, #68] @ 0x44 │ │ │ │ │ + ldr r2, [r4, #88] @ 0x58 │ │ │ │ │ + ldr r0, [r4, #112] @ 0x70 │ │ │ │ │ clz r3, r5 │ │ │ │ │ lsr r3, r3, #5 │ │ │ │ │ + ldr r1, [r4, #84] @ 0x54 │ │ │ │ │ cmp r2, #0 │ │ │ │ │ orrne r3, r3, #1 │ │ │ │ │ - str ip, [sp, #16] │ │ │ │ │ - ldr r2, [r4, #100] @ 0x64 │ │ │ │ │ - ldr ip, [r4, #96] @ 0x60 │ │ │ │ │ + ldr r7, [r4, #92] @ 0x5c │ │ │ │ │ + str r0, [sp, #16] │ │ │ │ │ cmp r3, #0 │ │ │ │ │ + ldr r2, [r4, #100] @ 0x64 │ │ │ │ │ movne r6, r9 │ │ │ │ │ + ldr r0, [r4, #96] @ 0x60 │ │ │ │ │ ldr r3, [r4, #76] @ 0x4c │ │ │ │ │ - cmp r2, ip │ │ │ │ │ + ldr ip, [r4, #104] @ 0x68 │ │ │ │ │ + cmp r2, r0 │ │ │ │ │ + str r0, [sp, #12] │ │ │ │ │ str r3, [sp, #44] @ 0x2c │ │ │ │ │ - ldr r1, [r4, #84] @ 0x54 │ │ │ │ │ ldr r3, [r4, #80] @ 0x50 │ │ │ │ │ - ldr r0, [r4, #104] @ 0x68 │ │ │ │ │ - ldr r8, [r4, #64] @ 0x40 │ │ │ │ │ - ldr r7, [r4, #92] @ 0x5c │ │ │ │ │ - str ip, [sp, #12] │ │ │ │ │ - blt 1a8 │ │ │ │ │ - lsl r0, r0, #2 │ │ │ │ │ + blt 1bc │ │ │ │ │ sub r3, r3, r1 │ │ │ │ │ + lsl ip, ip, #2 │ │ │ │ │ + add sl, sp, #64 @ 0x40 │ │ │ │ │ lsl r3, r3, #2 │ │ │ │ │ - str r0, [sp, #40] @ 0x28 │ │ │ │ │ - add r0, r9, r1, lsl #2 │ │ │ │ │ + lsl r0, r1, #2 │ │ │ │ │ str r3, [sp, #24] │ │ │ │ │ - str r2, [sp, #48] @ 0x30 │ │ │ │ │ lsl r3, r7, #3 │ │ │ │ │ - add r4, r6, r1, lsl #2 │ │ │ │ │ - add sl, sp, #64 @ 0x40 │ │ │ │ │ - mov r2, r0 │ │ │ │ │ + add r4, r6, r0 │ │ │ │ │ + str ip, [sp, #40] @ 0x28 │ │ │ │ │ + add ip, r9, r0 │ │ │ │ │ + str r2, [sp, #48] @ 0x30 │ │ │ │ │ + mov r2, ip │ │ │ │ │ str r3, [sp, #20] │ │ │ │ │ str r5, [sp, #52] @ 0x34 │ │ │ │ │ str r6, [sp, #56] @ 0x38 │ │ │ │ │ str r9, [sp, #60] @ 0x3c │ │ │ │ │ ldr r3, [sp, #24] │ │ │ │ │ add r1, r2, r3 │ │ │ │ │ ldr r3, [sp, #16] │ │ │ │ │ cmp r3, #0 │ │ │ │ │ - ble 15c │ │ │ │ │ + ble 170 │ │ │ │ │ cmp r7, #0 │ │ │ │ │ - ble 15c │ │ │ │ │ - mov fp, #0 │ │ │ │ │ + ble 170 │ │ │ │ │ ldr r9, [r8, #8] │ │ │ │ │ + mov fp, #0 │ │ │ │ │ mov r6, r2 │ │ │ │ │ - str r2, [sp, #32] │ │ │ │ │ mov r5, r1 │ │ │ │ │ - mov r2, fp │ │ │ │ │ str r1, [sp, #28] │ │ │ │ │ + str r2, [sp, #32] │ │ │ │ │ + mov r2, fp │ │ │ │ │ str r4, [sp, #36] @ 0x24 │ │ │ │ │ mov r4, #0 │ │ │ │ │ str r2, [sp, #8] │ │ │ │ │ ldr r3, [r6, r4, lsl #3] │ │ │ │ │ - ldr r2, [r5, r4, lsl #3] │ │ │ │ │ mov r1, fp │ │ │ │ │ mov r0, r8 │ │ │ │ │ + ldr r2, [r5, r4, lsl #3] │ │ │ │ │ str sl, [sp] │ │ │ │ │ blx r9 │ │ │ │ │ ldr r3, [sp, #64] @ 0x40 │ │ │ │ │ str r3, [r5, r4, lsl #3] │ │ │ │ │ ldr r3, [sp, #68] @ 0x44 │ │ │ │ │ str r3, [r6, r4, lsl #3] │ │ │ │ │ add r4, r4, #1 │ │ │ │ │ cmp r7, r4 │ │ │ │ │ - bne f8 │ │ │ │ │ - ldr r3, [sp, #20] │ │ │ │ │ + bne 10c │ │ │ │ │ ldr r2, [sp, #8] │ │ │ │ │ + ldr r3, [sp, #20] │ │ │ │ │ + add r2, r2, #1 │ │ │ │ │ add r6, r6, r3 │ │ │ │ │ add r5, r5, r3 │ │ │ │ │ ldr r3, [sp, #12] │ │ │ │ │ - add r2, r2, #1 │ │ │ │ │ add fp, fp, r3 │ │ │ │ │ ldr r3, [sp, #16] │ │ │ │ │ cmp r3, r2 │ │ │ │ │ - bne f0 │ │ │ │ │ + bne 104 │ │ │ │ │ add r1, sp, #28 │ │ │ │ │ ldm r1, {r1, r2, r4} │ │ │ │ │ - ldr r0, [sp, #44] @ 0x2c │ │ │ │ │ - ldr r3, [sp, #24] │ │ │ │ │ str r4, [sp] │ │ │ │ │ + ldr r3, [sp, #24] │ │ │ │ │ + str r2, [sp, #8] │ │ │ │ │ + ldr r0, [sp, #44] @ 0x2c │ │ │ │ │ add r3, r4, r3 │ │ │ │ │ ldr r5, [r0, #56] @ 0x38 │ │ │ │ │ - str r2, [sp, #8] │ │ │ │ │ blx r5 │ │ │ │ │ - ldr r1, [sp, #40] @ 0x28 │ │ │ │ │ ldr r2, [sp, #8] │ │ │ │ │ ldr r3, [sp, #12] │ │ │ │ │ + ldr r1, [sp, #40] @ 0x28 │ │ │ │ │ + add r3, r3, #1 │ │ │ │ │ add r2, r2, r1 │ │ │ │ │ add r4, r4, r1 │ │ │ │ │ ldr r1, [sp, #48] @ 0x30 │ │ │ │ │ - add r3, r3, #1 │ │ │ │ │ - cmp r1, r3 │ │ │ │ │ str r3, [sp, #12] │ │ │ │ │ - bge b4 │ │ │ │ │ + cmp r1, r3 │ │ │ │ │ + bge c8 │ │ │ │ │ add r5, sp, #52 @ 0x34 │ │ │ │ │ ldm r5, {r5, r6, r9} │ │ │ │ │ cmp r5, #0 │ │ │ │ │ - beq 1cc │ │ │ │ │ + beq 1f4 │ │ │ │ │ mov r2, r9 │ │ │ │ │ mov r1, r6 │ │ │ │ │ - mov r0, r5 │ │ │ │ │ ldr r3, [r5, #56] @ 0x38 │ │ │ │ │ + mov r0, r5 │ │ │ │ │ add sp, sp, #76 @ 0x4c │ │ │ │ │ - pop {r4, r5, r6, r7, r8, r9, sl, fp, lr} │ │ │ │ │ + ldrd r4, [sp] │ │ │ │ │ + ldrd r6, [sp, #8] │ │ │ │ │ + ldrd r8, [sp, #16] │ │ │ │ │ + ldrd sl, [sp, #24] │ │ │ │ │ + ldr lr, [sp, #32] │ │ │ │ │ + add sp, sp, #36 @ 0x24 │ │ │ │ │ bx r3 │ │ │ │ │ add sp, sp, #76 @ 0x4c │ │ │ │ │ - pop {r4, r5, r6, r7, r8, r9, sl, fp, pc} │ │ │ │ │ + ldrd r4, [sp] │ │ │ │ │ + ldrd r6, [sp, #8] │ │ │ │ │ + ldrd r8, [sp, #16] │ │ │ │ │ + ldrd sl, [sp, #24] │ │ │ │ │ + add sp, sp, #32 │ │ │ │ │ + pop {pc} @ (ldr pc, [sp], #4) │ │ │ │ │ │ │ │ │ │ -000001d4 : │ │ │ │ │ +00000210 : │ │ │ │ │ print(): │ │ │ │ │ mov ip, r0 │ │ │ │ │ - ldr r3, [pc, #128] @ 260 │ │ │ │ │ - push {r4, lr} │ │ │ │ │ + ldr r3, [pc, #140] @ 2a8 │ │ │ │ │ mov r0, r1 │ │ │ │ │ + str r4, [sp, #-8]! │ │ │ │ │ ldr r4, [r1] │ │ │ │ │ + str lr, [sp, #4] │ │ │ │ │ + sub sp, sp, #16 │ │ │ │ │ ldr r1, [ip, #56] @ 0x38 │ │ │ │ │ add r3, pc, r3 │ │ │ │ │ - cmp r1, r3 │ │ │ │ │ ldr r2, [ip, #112] @ 0x70 │ │ │ │ │ - sub sp, sp, #16 │ │ │ │ │ - beq 254 │ │ │ │ │ - ldr r3, [pc, #92] @ 264 │ │ │ │ │ + cmp r1, r3 │ │ │ │ │ + beq 29c │ │ │ │ │ + ldr r3, [pc, #100] @ 2ac │ │ │ │ │ add r3, pc, r3 │ │ │ │ │ ldr r1, [ip, #88] @ 0x58 │ │ │ │ │ cmp r1, #2 │ │ │ │ │ - beq 248 │ │ │ │ │ - ldr r1, [pc, #76] @ 268 │ │ │ │ │ + beq 290 │ │ │ │ │ + ldr r1, [pc, #84] @ 2b0 │ │ │ │ │ add r1, pc, r1 │ │ │ │ │ ldr lr, [ip, #68] @ 0x44 │ │ │ │ │ str lr, [sp, #12] │ │ │ │ │ ldr lr, [ip, #76] @ 0x4c │ │ │ │ │ str lr, [sp, #8] │ │ │ │ │ ldr ip, [ip, #72] @ 0x48 │ │ │ │ │ stm sp, {r1, ip} │ │ │ │ │ - ldr r1, [pc, #48] @ 26c │ │ │ │ │ + ldr r1, [pc, #56] @ 2b4 │ │ │ │ │ add r1, pc, r1 │ │ │ │ │ blx r4 │ │ │ │ │ add sp, sp, #16 │ │ │ │ │ - pop {r4, pc} │ │ │ │ │ - ldr r1, [pc, #32] @ 270 │ │ │ │ │ + ldr r4, [sp] │ │ │ │ │ + add sp, sp, #4 │ │ │ │ │ + pop {pc} @ (ldr pc, [sp], #4) │ │ │ │ │ + ldr r1, [pc, #32] @ 2b8 │ │ │ │ │ add r1, pc, r1 │ │ │ │ │ - b 21c │ │ │ │ │ - ldr r3, [pc, #24] @ 274 │ │ │ │ │ + b 25c │ │ │ │ │ + ldr r3, [pc, #24] @ 2bc │ │ │ │ │ add r3, pc, r3 │ │ │ │ │ - b 208 │ │ │ │ │ - .word 0xfffffe0c │ │ │ │ │ - .word 0x00000058 │ │ │ │ │ + b 248 │ │ │ │ │ + .word 0xfffffdc8 │ │ │ │ │ + .word 0x00000060 │ │ │ │ │ R_ARM_REL32 .LC2 │ │ │ │ │ - .word 0x00000048 │ │ │ │ │ + .word 0x00000050 │ │ │ │ │ R_ARM_REL32 .LC4 │ │ │ │ │ - .word 0x0000002c │ │ │ │ │ + .word 0x00000034 │ │ │ │ │ R_ARM_REL32 .LC5 │ │ │ │ │ .word 0x0000001c │ │ │ │ │ R_ARM_REL32 .LC3 │ │ │ │ │ .word 0x00000014 │ │ │ │ │ R_ARM_REL32 .LC1 │ │ │ │ │ │ │ │ │ │ -00000278 : │ │ │ │ │ +000002c0 : │ │ │ │ │ destroy(): │ │ │ │ │ - push {r4, lr} │ │ │ │ │ + str r4, [sp, #-8]! │ │ │ │ │ mov r4, r0 │ │ │ │ │ ldr r0, [r0, #68] @ 0x44 │ │ │ │ │ + str lr, [sp, #4] │ │ │ │ │ bl 0 │ │ │ │ │ R_ARM_CALL fftwf_plan_destroy_internal │ │ │ │ │ ldr r0, [r4, #76] @ 0x4c │ │ │ │ │ bl 0 │ │ │ │ │ R_ARM_CALL fftwf_plan_destroy_internal │ │ │ │ │ + ldr lr, [sp, #4] │ │ │ │ │ ldr r0, [r4, #72] @ 0x48 │ │ │ │ │ - pop {r4, lr} │ │ │ │ │ + ldr r4, [sp] │ │ │ │ │ + add sp, sp, #8 │ │ │ │ │ b 0 │ │ │ │ │ R_ARM_JUMP24 fftwf_plan_destroy_internal │ │ │ │ │ │ │ │ │ │ -0000029c : │ │ │ │ │ +000002f0 : │ │ │ │ │ mkplan(): │ │ │ │ │ - push {r4, r5, r6, r7, r8, r9, sl, fp, lr} │ │ │ │ │ - sub sp, sp, #100 @ 0x64 │ │ │ │ │ + strd r4, [sp, #-36]! @ 0xffffffdc │ │ │ │ │ mov r4, r1 │ │ │ │ │ - add r5, sp, #76 @ 0x4c │ │ │ │ │ + strd r6, [sp, #8] │ │ │ │ │ mov r7, r0 │ │ │ │ │ - mov r1, r5 │ │ │ │ │ - ldr r0, [r4, #28] │ │ │ │ │ mov r6, r2 │ │ │ │ │ + strd r8, [sp, #16] │ │ │ │ │ + strd sl, [sp, #24] │ │ │ │ │ + str lr, [sp, #32] │ │ │ │ │ + sub sp, sp, #100 @ 0x64 │ │ │ │ │ + add r5, sp, #76 @ 0x4c │ │ │ │ │ + ldr r0, [r4, #28] │ │ │ │ │ + mov r1, r5 │ │ │ │ │ bl 0 │ │ │ │ │ R_ARM_CALL MPI_Comm_size │ │ │ │ │ ldr r3, [r4, #4] │ │ │ │ │ ldr r3, [r3] │ │ │ │ │ cmp r3, #1 │ │ │ │ │ - beq 2dc │ │ │ │ │ + beq 354 │ │ │ │ │ mov r0, #0 │ │ │ │ │ add sp, sp, #100 @ 0x64 │ │ │ │ │ - pop {r4, r5, r6, r7, r8, r9, sl, fp, pc} │ │ │ │ │ + ldrd r4, [sp] │ │ │ │ │ + ldrd r6, [sp, #8] │ │ │ │ │ + ldrd r8, [sp, #16] │ │ │ │ │ + ldrd sl, [sp, #24] │ │ │ │ │ + add sp, sp, #32 │ │ │ │ │ + pop {pc} @ (ldr pc, [sp], #4) │ │ │ │ │ ldr r2, [r4, #24] │ │ │ │ │ cmp r2, #3 │ │ │ │ │ - bhi 2d0 │ │ │ │ │ + bhi 334 │ │ │ │ │ ldr r3, [r7, #12] │ │ │ │ │ cmp r3, #0 │ │ │ │ │ - beq 310 │ │ │ │ │ + beq 388 │ │ │ │ │ ldr r3, [r6, #164] @ 0xa4 │ │ │ │ │ tst r3, #4096 @ 0x1000 │ │ │ │ │ - bne 2d0 │ │ │ │ │ + bne 334 │ │ │ │ │ ldr r1, [r4, #12] │ │ │ │ │ ldr r3, [r4, #16] │ │ │ │ │ cmp r1, r3 │ │ │ │ │ - beq 2d0 │ │ │ │ │ + beq 334 │ │ │ │ │ tst r2, #1 │ │ │ │ │ - beq 764 │ │ │ │ │ - ldr r3, [pc, #1392] @ 890 │ │ │ │ │ + beq 7d8 │ │ │ │ │ + ldr r3, [pc, #1388] @ 904 │ │ │ │ │ ldr r1, [r7, #8] │ │ │ │ │ add r3, pc, r3 │ │ │ │ │ cmp r1, r3 │ │ │ │ │ - bne 2d0 │ │ │ │ │ + bne 334 │ │ │ │ │ tst r2, #2 │ │ │ │ │ - bne 2d0 │ │ │ │ │ + bne 334 │ │ │ │ │ ldr r3, [r6, #164] @ 0xa4 │ │ │ │ │ tst r3, #8 │ │ │ │ │ - bne 878 │ │ │ │ │ - ldr r3, [sp, #76] @ 0x4c │ │ │ │ │ + bne 8ec │ │ │ │ │ ldr r1, [r4, #8] │ │ │ │ │ + ldr r3, [sp, #76] @ 0x4c │ │ │ │ │ cmp r1, r3 │ │ │ │ │ - blt 358 │ │ │ │ │ + blt 3d0 │ │ │ │ │ cmp r2, #0 │ │ │ │ │ - beq 2d0 │ │ │ │ │ + beq 334 │ │ │ │ │ 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] │ │ │ │ │ - str r0, [sp, #4] │ │ │ │ │ str r2, [sp] │ │ │ │ │ + str r0, [sp, #4] │ │ │ │ │ ldmib r1, {r0, r1, r2} │ │ │ │ │ bl 0 │ │ │ │ │ R_ARM_CALL fftwf_mpi_choose_radix │ │ │ │ │ subs r8, r0, #0 │ │ │ │ │ str r8, [sp, #40] @ 0x28 │ │ │ │ │ - beq 2d0 │ │ │ │ │ - add r1, sp, #72 @ 0x48 │ │ │ │ │ + beq 334 │ │ │ │ │ ldr r0, [r4, #28] │ │ │ │ │ + add r1, sp, #72 @ 0x48 │ │ │ │ │ bl 0 │ │ │ │ │ R_ARM_CALL MPI_Comm_rank │ │ │ │ │ - mov r1, r5 │ │ │ │ │ ldr r0, [r4, #28] │ │ │ │ │ + mov r1, r5 │ │ │ │ │ bl 0 │ │ │ │ │ R_ARM_CALL MPI_Comm_size │ │ │ │ │ ldr r3, [r4, #4] │ │ │ │ │ mov r1, r8 │ │ │ │ │ ldr r0, [r3, #4] │ │ │ │ │ bl 0 <__aeabi_idiv> │ │ │ │ │ R_ARM_CALL __aeabi_idiv │ │ │ │ │ - ldr r3, [pc, #1240] @ 894 │ │ │ │ │ + ldr r3, [pc, #1236] @ 908 │ │ │ │ │ + str r0, [sp, #28] │ │ │ │ │ ldr r8, [r7, #8] │ │ │ │ │ + ldr r2, [sp, #72] @ 0x48 │ │ │ │ │ add r3, pc, r3 │ │ │ │ │ cmp r8, r3 │ │ │ │ │ - ldr r2, [sp, #72] @ 0x48 │ │ │ │ │ moveq r9, #1 │ │ │ │ │ movne r9, #0 │ │ │ │ │ - str r0, [sp, #28] │ │ │ │ │ - beq 828 │ │ │ │ │ + beq 89c │ │ │ │ │ ldr r5, [sp, #40] @ 0x28 │ │ │ │ │ ldrd sl, [sp, #80] @ 0x50 │ │ │ │ │ mov r0, r5 │ │ │ │ │ mov r1, sl │ │ │ │ │ bl 0 │ │ │ │ │ R_ARM_CALL fftwf_mpi_block │ │ │ │ │ ldr r3, [sp, #28] │ │ │ │ │ - str r5, [sp, #36] @ 0x24 │ │ │ │ │ str r3, [sp, #24] │ │ │ │ │ + str r5, [sp, #36] @ 0x24 │ │ │ │ │ str r0, [sp, #44] @ 0x2c │ │ │ │ │ ldr r3, [r7, #12] │ │ │ │ │ cmp r3, #0 │ │ │ │ │ - bne 7f8 │ │ │ │ │ + bne 86c │ │ │ │ │ ldr r3, [r6, #164] @ 0xa4 │ │ │ │ │ and r3, r3, #4096 @ 0x1000 │ │ │ │ │ cmp r3, #0 │ │ │ │ │ movne r5, r9 │ │ │ │ │ orreq r5, r9, #1 │ │ │ │ │ str r3, [sp, #32] │ │ │ │ │ mov r0, #1 │ │ │ │ │ bl 0 │ │ │ │ │ R_ARM_CALL fftwf_mpi_mkdtensor │ │ │ │ │ ldr r2, [sp, #36] @ 0x24 │ │ │ │ │ - ldr r1, [r4, #8] │ │ │ │ │ - ldr ip, [r4, #20] │ │ │ │ │ mov lr, #16 │ │ │ │ │ cmp r5, #0 │ │ │ │ │ + ldr r1, [r4, #8] │ │ │ │ │ ldr r3, [r4, #16] │ │ │ │ │ stmib r0, {r2, sl, fp} │ │ │ │ │ ldr r2, [sp, #24] │ │ │ │ │ + ldr ip, [r4, #20] │ │ │ │ │ mul r2, r1, r2 │ │ │ │ │ mov r1, r2 │ │ │ │ │ ldr r2, [r4, #28] │ │ │ │ │ stm sp, {r2, ip, lr} │ │ │ │ │ - beq 7a8 │ │ │ │ │ + beq 81c │ │ │ │ │ ldr r2, [r4, #12] │ │ │ │ │ bl 0 │ │ │ │ │ R_ARM_CALL fftwf_mpi_mkproblem_dft_d │ │ │ │ │ mov r1, r0 │ │ │ │ │ mov r0, r6 │ │ │ │ │ bl 0 │ │ │ │ │ R_ARM_CALL fftwf_mkplan_d │ │ │ │ │ - ldr r1, [r4, #28] │ │ │ │ │ mov sl, r0 │ │ │ │ │ clz r0, r0 │ │ │ │ │ + ldr r1, [r4, #28] │ │ │ │ │ lsr r0, r0, #5 │ │ │ │ │ bl 0 │ │ │ │ │ R_ARM_CALL fftwf_mpi_any_true │ │ │ │ │ cmp r0, #0 │ │ │ │ │ - bne 86c │ │ │ │ │ - ldr r3, [pc, #1028] @ 898 │ │ │ │ │ + bne 8e0 │ │ │ │ │ + ldr r3, [pc, #1024] @ 90c │ │ │ │ │ add r3, pc, r3 │ │ │ │ │ cmp r8, r3 │ │ │ │ │ - bne 784 │ │ │ │ │ + bne 7f8 │ │ │ │ │ ldr r3, [sp, #32] │ │ │ │ │ ldr r1, [r4, #16] │ │ │ │ │ cmp r3, #0 │ │ │ │ │ - bne 7a0 │ │ │ │ │ + bne 814 │ │ │ │ │ ldr r3, [r4, #24] │ │ │ │ │ cmp r3, #0 │ │ │ │ │ - bne 7a0 │ │ │ │ │ + bne 814 │ │ │ │ │ ldr r5, [r4, #12] │ │ │ │ │ - ldr r0, [r4, #20] │ │ │ │ │ add r3, sp, #60 @ 0x3c │ │ │ │ │ add r2, sp, #56 @ 0x38 │ │ │ │ │ + ldr r0, [r4, #20] │ │ │ │ │ bl 0 │ │ │ │ │ R_ARM_CALL fftwf_extract_reim │ │ │ │ │ add r3, sp, #68 @ 0x44 │ │ │ │ │ add r2, sp, #64 @ 0x40 │ │ │ │ │ - mov r1, r5 │ │ │ │ │ ldr r0, [r4, #20] │ │ │ │ │ - str r3, [sp, #52] @ 0x34 │ │ │ │ │ + mov r1, r5 │ │ │ │ │ str r2, [sp, #48] @ 0x30 │ │ │ │ │ + str r3, [sp, #52] @ 0x34 │ │ │ │ │ bl 0 │ │ │ │ │ R_ARM_CALL fftwf_extract_reim │ │ │ │ │ ldr r2, [r4, #8] │ │ │ │ │ ldr r0, [sp, #24] │ │ │ │ │ lsl r2, r2, #1 │ │ │ │ │ mov r1, r2 │ │ │ │ │ bl 0 │ │ │ │ │ R_ARM_CALL fftwf_mktensor_1d │ │ │ │ │ mov r2, #2 │ │ │ │ │ - mov r1, r2 │ │ │ │ │ mov r5, r0 │ │ │ │ │ ldr r0, [r4, #8] │ │ │ │ │ + mov r1, r2 │ │ │ │ │ bl 0 │ │ │ │ │ R_ARM_CALL fftwf_mktensor_1d │ │ │ │ │ ldr r3, [sp, #68] @ 0x44 │ │ │ │ │ + mov r1, r0 │ │ │ │ │ + mov r0, r5 │ │ │ │ │ str r3, [sp, #4] │ │ │ │ │ ldr r3, [sp, #64] @ 0x40 │ │ │ │ │ str r3, [sp] │ │ │ │ │ ldrd r2, [sp, #56] @ 0x38 │ │ │ │ │ - mov r1, r0 │ │ │ │ │ - mov r0, r5 │ │ │ │ │ bl 0 │ │ │ │ │ R_ARM_CALL fftwf_mkproblem_dft_d │ │ │ │ │ mov r1, r0 │ │ │ │ │ mov r0, r6 │ │ │ │ │ bl 0 │ │ │ │ │ R_ARM_CALL fftwf_mkplan_d │ │ │ │ │ - ldr r1, [r4, #28] │ │ │ │ │ mov fp, r0 │ │ │ │ │ clz r0, r0 │ │ │ │ │ + ldr r1, [r4, #28] │ │ │ │ │ lsr r0, r0, #5 │ │ │ │ │ bl 0 │ │ │ │ │ R_ARM_CALL fftwf_mpi_any_true │ │ │ │ │ subs r5, r0, #0 │ │ │ │ │ - bne 864 │ │ │ │ │ + bne 8d8 │ │ │ │ │ ldr r3, [r4, #24] │ │ │ │ │ cmp r3, #0 │ │ │ │ │ - bne 5dc │ │ │ │ │ + bne 654 │ │ │ │ │ ldr r3, [sp, #32] │ │ │ │ │ ldr r2, [r4, #8] │ │ │ │ │ + ldr r1, [r4, #16] │ │ │ │ │ cmp r3, #0 │ │ │ │ │ moveq r9, #0 │ │ │ │ │ andne r9, r9, #1 │ │ │ │ │ cmp r9, #0 │ │ │ │ │ - ldr r1, [r4, #16] │ │ │ │ │ lsl r2, r2, #1 │ │ │ │ │ - beq 808 │ │ │ │ │ + beq 87c │ │ │ │ │ mov r3, r1 │ │ │ │ │ - ldr r0, [sp, #92] @ 0x5c │ │ │ │ │ ldr ip, [sp, #84] @ 0x54 │ │ │ │ │ + ldr r0, [sp, #92] @ 0x5c │ │ │ │ │ mov lr, #0 │ │ │ │ │ str lr, [sp, #16] │ │ │ │ │ ldr lr, [r4, #28] │ │ │ │ │ str r1, [sp] │ │ │ │ │ - stmib sp, {r0, ip, lr} │ │ │ │ │ ldr r1, [sp, #40] @ 0x28 │ │ │ │ │ + stmib sp, {r0, ip, lr} │ │ │ │ │ ldr r0, [sp, #28] │ │ │ │ │ bl 0 │ │ │ │ │ R_ARM_CALL fftwf_mpi_mkproblem_transpose │ │ │ │ │ mov r1, r0 │ │ │ │ │ mov r0, r6 │ │ │ │ │ bl 0 │ │ │ │ │ R_ARM_CALL fftwf_mkplan_d │ │ │ │ │ - ldr r1, [r4, #28] │ │ │ │ │ mov r5, r0 │ │ │ │ │ clz r0, r0 │ │ │ │ │ + ldr r1, [r4, #28] │ │ │ │ │ lsr r0, r0, #5 │ │ │ │ │ bl 0 │ │ │ │ │ R_ARM_CALL fftwf_mpi_any_true │ │ │ │ │ cmp r0, #0 │ │ │ │ │ - bne 7dc │ │ │ │ │ - ldr r1, [pc, #696] @ 89c │ │ │ │ │ + bne 850 │ │ │ │ │ + ldr r1, [pc, #692] @ 910 │ │ │ │ │ + mov r0, #120 @ 0x78 │ │ │ │ │ ldr r2, [r7, #8] │ │ │ │ │ add r1, pc, r1 │ │ │ │ │ - mov r0, #120 @ 0x78 │ │ │ │ │ bl 0 │ │ │ │ │ R_ARM_CALL fftwf_mkplan_rdft │ │ │ │ │ ldr r3, [sp, #32] │ │ │ │ │ + mov r6, r0 │ │ │ │ │ + str r5, [r0, #68] @ 0x44 │ │ │ │ │ ldr r1, [r4, #16] │ │ │ │ │ + strd sl, [r0, #72] @ 0x48 │ │ │ │ │ ldr r2, [sp, #48] @ 0x30 │ │ │ │ │ - mov r6, r0 │ │ │ │ │ str r3, [r0, #88] @ 0x58 │ │ │ │ │ - strd sl, [r0, #72] @ 0x48 │ │ │ │ │ - ldr r3, [sp, #52] @ 0x34 │ │ │ │ │ - str r5, [r0, #68] @ 0x44 │ │ │ │ │ ldr r0, [r4, #20] │ │ │ │ │ + ldr r3, [sp, #52] @ 0x34 │ │ │ │ │ bl 0 │ │ │ │ │ R_ARM_CALL fftwf_extract_reim │ │ │ │ │ ldr r2, [r4, #16] │ │ │ │ │ + add r0, sl, #8 │ │ │ │ │ ldr r3, [sp, #64] @ 0x40 │ │ │ │ │ ldr r1, [sp, #72] @ 0x48 │ │ │ │ │ sub r3, r3, r2 │ │ │ │ │ asr r3, r3, #2 │ │ │ │ │ str r3, [r6, #80] @ 0x50 │ │ │ │ │ ldr r3, [sp, #68] @ 0x44 │ │ │ │ │ - add r0, sl, #8 │ │ │ │ │ sub r3, r3, r2 │ │ │ │ │ + ldr r2, [r4, #8] │ │ │ │ │ + add r4, r6, #8 │ │ │ │ │ asr r3, r3, #2 │ │ │ │ │ str r3, [r6, #84] @ 0x54 │ │ │ │ │ ldr r3, [sp, #28] │ │ │ │ │ - ldr r2, [r4, #8] │ │ │ │ │ + str r2, [r6, #92] @ 0x5c │ │ │ │ │ str r3, [r6, #108] @ 0x6c │ │ │ │ │ ldr r3, [sp, #40] @ 0x28 │ │ │ │ │ str r3, [r6, #112] @ 0x70 │ │ │ │ │ - ldr r3, [pc, #576] @ 8a0 │ │ │ │ │ - str r2, [r6, #92] @ 0x5c │ │ │ │ │ + ldr r3, [pc, #564] @ 914 │ │ │ │ │ add r3, pc, r3 │ │ │ │ │ cmp r8, r3 │ │ │ │ │ ldreq r3, [sp, #92] @ 0x5c │ │ │ │ │ ldrne r3, [sp, #80] @ 0x50 │ │ │ │ │ - add r4, r6, #8 │ │ │ │ │ mul r3, r1, r3 │ │ │ │ │ ldr r1, [sp, #44] @ 0x2c │ │ │ │ │ str r3, [r6, #96] @ 0x60 │ │ │ │ │ add r3, r3, r1 │ │ │ │ │ + add r1, fp, #8 │ │ │ │ │ sub r3, r3, #1 │ │ │ │ │ str r3, [r6, #100] @ 0x64 │ │ │ │ │ ldr r3, [sp, #24] │ │ │ │ │ - add r1, fp, #8 │ │ │ │ │ mul r3, r2, r3 │ │ │ │ │ lsl r2, r3, #1 │ │ │ │ │ mov r3, #0 │ │ │ │ │ - str r2, [r6, #104] @ 0x68 │ │ │ │ │ str r3, [r6, #64] @ 0x40 │ │ │ │ │ + str r2, [r6, #104] @ 0x68 │ │ │ │ │ mov r2, r4 │ │ │ │ │ bl 0 │ │ │ │ │ R_ARM_CALL fftwf_ops_add │ │ │ │ │ cmp r5, #0 │ │ │ │ │ - beq 6c4 │ │ │ │ │ + beq 73c │ │ │ │ │ mov r1, r4 │ │ │ │ │ add r0, r5, #8 │ │ │ │ │ bl 0 │ │ │ │ │ R_ARM_CALL fftwf_ops_add2 │ │ │ │ │ - ldr r3, [r6, #100] @ 0x64 │ │ │ │ │ - ldr r2, [r6, #96] @ 0x60 │ │ │ │ │ - add r3, r3, #1 │ │ │ │ │ + ldrd r2, [r6, #96] @ 0x60 │ │ │ │ │ sub r3, r3, r2 │ │ │ │ │ ldr r2, [sp, #36] @ 0x24 │ │ │ │ │ - ldr r0, [r6, #92] @ 0x5c │ │ │ │ │ - sub r2, r2, #1 │ │ │ │ │ - mul r3, r2, r3 │ │ │ │ │ + sub r0, r2, #1 │ │ │ │ │ + mov r2, r0 │ │ │ │ │ + mla r2, r3, r0, r2 │ │ │ │ │ + ldr r3, [r6, #92] @ 0x5c │ │ │ │ │ + mov r0, r2 │ │ │ │ │ mul r0, r3, r0 │ │ │ │ │ bl 0 <__aeabi_i2d> │ │ │ │ │ R_ARM_CALL __aeabi_i2d │ │ │ │ │ - ldr r3, [pc, #432] @ 8a4 │ │ │ │ │ + ldr r3, [pc, #428] @ 918 │ │ │ │ │ mov r2, #0 │ │ │ │ │ mov r8, r0 │ │ │ │ │ mov r9, r1 │ │ │ │ │ bl 0 <__aeabi_dmul> │ │ │ │ │ R_ARM_CALL __aeabi_dmul │ │ │ │ │ - mov r4, r0 │ │ │ │ │ - mov r5, r1 │ │ │ │ │ mov r2, r0 │ │ │ │ │ mov r3, r1 │ │ │ │ │ + mov r4, r0 │ │ │ │ │ + mov r5, r1 │ │ │ │ │ ldrd r0, [r6, #16] │ │ │ │ │ bl 0 <__aeabi_dadd> │ │ │ │ │ R_ARM_CALL __aeabi_dadd │ │ │ │ │ - ldr r3, [pc, #392] @ 8a8 │ │ │ │ │ + ldr r3, [pc, #388] @ 91c │ │ │ │ │ mov r2, #0 │ │ │ │ │ strd r0, [r6, #16] │ │ │ │ │ mov r0, r8 │ │ │ │ │ mov r1, r9 │ │ │ │ │ bl 0 <__aeabi_dmul> │ │ │ │ │ R_ARM_CALL __aeabi_dmul │ │ │ │ │ mov r2, r0 │ │ │ │ │ @@ -519,276 +549,292 @@ │ │ │ │ │ mov r3, r5 │ │ │ │ │ strd r0, [r6, #8] │ │ │ │ │ ldrd r0, [r6, #32] │ │ │ │ │ bl 0 <__aeabi_dadd> │ │ │ │ │ R_ARM_CALL __aeabi_dadd │ │ │ │ │ strd r0, [r6, #32] │ │ │ │ │ mov r0, r6 │ │ │ │ │ - add sp, sp, #100 @ 0x64 │ │ │ │ │ - pop {r4, r5, r6, r7, r8, r9, sl, fp, pc} │ │ │ │ │ + b 338 │ │ │ │ │ cmp r2, #0 │ │ │ │ │ - beq 334 │ │ │ │ │ - ldr r3, [pc, #312] @ 8ac │ │ │ │ │ + beq 3ac │ │ │ │ │ + ldr r3, [pc, #312] @ 920 │ │ │ │ │ ldr r1, [r7, #8] │ │ │ │ │ add r3, pc, r3 │ │ │ │ │ cmp r1, r3 │ │ │ │ │ - bne 2d0 │ │ │ │ │ - b 334 │ │ │ │ │ + bne 334 │ │ │ │ │ + b 3ac │ │ │ │ │ ldr r3, [r4, #24] │ │ │ │ │ cmp r3, #0 │ │ │ │ │ - bne 84c │ │ │ │ │ + bne 8c0 │ │ │ │ │ ldr r3, [sp, #32] │ │ │ │ │ ldr r1, [r4, #16] │ │ │ │ │ cmp r3, #0 │ │ │ │ │ - beq 4b8 │ │ │ │ │ + beq 530 │ │ │ │ │ mov r5, r1 │ │ │ │ │ - b 4bc │ │ │ │ │ + b 534 │ │ │ │ │ mov r2, r3 │ │ │ │ │ bl 0 │ │ │ │ │ R_ARM_CALL fftwf_mpi_mkproblem_dft_d │ │ │ │ │ mov r1, r0 │ │ │ │ │ mov r0, r6 │ │ │ │ │ bl 0 │ │ │ │ │ R_ARM_CALL fftwf_mkplan_d │ │ │ │ │ - ldr r1, [r4, #28] │ │ │ │ │ mov sl, r0 │ │ │ │ │ clz r0, r0 │ │ │ │ │ + ldr r1, [r4, #28] │ │ │ │ │ lsr r0, r0, #5 │ │ │ │ │ bl 0 │ │ │ │ │ R_ARM_CALL fftwf_mpi_any_true │ │ │ │ │ cmp r0, #0 │ │ │ │ │ - beq 784 │ │ │ │ │ + beq 7f8 │ │ │ │ │ mov fp, r5 │ │ │ │ │ mov r0, r5 │ │ │ │ │ bl 0 │ │ │ │ │ R_ARM_CALL fftwf_plan_destroy_internal │ │ │ │ │ mov r0, fp │ │ │ │ │ bl 0 │ │ │ │ │ R_ARM_CALL fftwf_plan_destroy_internal │ │ │ │ │ mov r0, sl │ │ │ │ │ bl 0 │ │ │ │ │ R_ARM_CALL fftwf_plan_destroy_internal │ │ │ │ │ - b 2d0 │ │ │ │ │ + b 334 │ │ │ │ │ mov r3, #2 │ │ │ │ │ mov r5, r9 │ │ │ │ │ str r3, [sp, #32] │ │ │ │ │ - b 420 │ │ │ │ │ - ldr r0, [pc, #160] @ 8b0 │ │ │ │ │ + b 498 │ │ │ │ │ + ldr r0, [pc, #160] @ 924 │ │ │ │ │ ldr r3, [r4, #12] │ │ │ │ │ add r0, pc, r0 │ │ │ │ │ cmp r8, r0 │ │ │ │ │ - beq 58c │ │ │ │ │ - ldr r0, [sp, #88] @ 0x58 │ │ │ │ │ + beq 604 │ │ │ │ │ ldr ip, [sp, #80] @ 0x50 │ │ │ │ │ - b 594 │ │ │ │ │ + ldr r0, [sp, #88] @ 0x58 │ │ │ │ │ + b 60c │ │ │ │ │ ldrd sl, [sp, #88] @ 0x58 │ │ │ │ │ mov r1, fp │ │ │ │ │ bl 0 │ │ │ │ │ R_ARM_CALL fftwf_mpi_block │ │ │ │ │ ldr r3, [sp, #28] │ │ │ │ │ str r3, [sp, #36] @ 0x24 │ │ │ │ │ ldr r3, [sp, #40] @ 0x28 │ │ │ │ │ - str r3, [sp, #24] │ │ │ │ │ str r0, [sp, #44] @ 0x2c │ │ │ │ │ - b 3fc │ │ │ │ │ + str r3, [sp, #24] │ │ │ │ │ + b 474 │ │ │ │ │ ldr r3, [sp, #32] │ │ │ │ │ ldr r1, [r4, #12] │ │ │ │ │ cmp r3, #0 │ │ │ │ │ - beq 7a0 │ │ │ │ │ + beq 814 │ │ │ │ │ ldr r5, [r4, #16] │ │ │ │ │ - b 4bc │ │ │ │ │ + b 534 │ │ │ │ │ mov r5, #0 │ │ │ │ │ - b 7dc │ │ │ │ │ + b 850 │ │ │ │ │ mov r5, #0 │ │ │ │ │ mov fp, r5 │ │ │ │ │ - b 7dc │ │ │ │ │ + b 850 │ │ │ │ │ mov r0, r4 │ │ │ │ │ bl 0 │ │ │ │ │ R_ARM_CALL fftwf_mpi_dft_serial_applicable │ │ │ │ │ cmp r0, #0 │ │ │ │ │ - bne 2d0 │ │ │ │ │ + bne 334 │ │ │ │ │ ldr r2, [r4, #24] │ │ │ │ │ - b 340 │ │ │ │ │ - .word 0x000005f0 │ │ │ │ │ - .word 0xfffffc3c │ │ │ │ │ - .word 0xfffffb68 │ │ │ │ │ - .word 0x000002b0 │ │ │ │ │ + b 3b8 │ │ │ │ │ + .word 0x000005fc │ │ │ │ │ + .word 0xfffffbbc │ │ │ │ │ + .word 0xfffffaf0 │ │ │ │ │ + .word 0x000002a8 │ │ │ │ │ R_ARM_REL32 .data.rel.ro │ │ │ │ │ - .word 0xfffff998 │ │ │ │ │ + .word 0xfffff91c │ │ │ │ │ .word 0x40200000 │ │ │ │ │ .word 0x40100000 │ │ │ │ │ - .word 0xfffff884 │ │ │ │ │ - .word 0xfffff7e8 │ │ │ │ │ + .word 0xfffff810 │ │ │ │ │ + .word 0xfffff774 │ │ │ │ │ │ │ │ │ │ -000008b4 : │ │ │ │ │ +00000928 : │ │ │ │ │ awake(): │ │ │ │ │ - push {r4, r5, r6, lr} │ │ │ │ │ + strd r4, [sp, #-16]! │ │ │ │ │ mov r4, r1 │ │ │ │ │ mov r5, r0 │ │ │ │ │ ldr r0, [r0, #68] @ 0x44 │ │ │ │ │ + str r6, [sp, #8] │ │ │ │ │ + str lr, [sp, #12] │ │ │ │ │ bl 0 │ │ │ │ │ R_ARM_CALL fftwf_plan_awake │ │ │ │ │ ldr r0, [r5, #76] @ 0x4c │ │ │ │ │ mov r1, r4 │ │ │ │ │ bl 0 │ │ │ │ │ R_ARM_CALL fftwf_plan_awake │ │ │ │ │ ldr r0, [r5, #72] @ 0x48 │ │ │ │ │ mov r1, r4 │ │ │ │ │ bl 0 │ │ │ │ │ R_ARM_CALL fftwf_plan_awake │ │ │ │ │ cmp r4, #0 │ │ │ │ │ - bne 8f8 │ │ │ │ │ + bne 980 │ │ │ │ │ ldr r0, [r5, #64] @ 0x40 │ │ │ │ │ bl 0 │ │ │ │ │ R_ARM_CALL fftwf_triggen_destroy │ │ │ │ │ + ldr r6, [sp, #8] │ │ │ │ │ str r4, [r5, #64] @ 0x40 │ │ │ │ │ - pop {r4, r5, r6, pc} │ │ │ │ │ - ldr r3, [r5, #112] @ 0x70 │ │ │ │ │ + ldrd r4, [sp] │ │ │ │ │ + add sp, sp, #12 │ │ │ │ │ + pop {pc} @ (ldr pc, [sp], #4) │ │ │ │ │ ldr r1, [r5, #108] @ 0x6c │ │ │ │ │ mov r0, #2 │ │ │ │ │ + ldr r3, [r5, #112] @ 0x70 │ │ │ │ │ mul r1, r3, r1 │ │ │ │ │ bl 0 │ │ │ │ │ R_ARM_CALL fftwf_mktriggen │ │ │ │ │ mov r4, r0 │ │ │ │ │ - str r4, [r5, #64] @ 0x40 │ │ │ │ │ - pop {r4, r5, r6, pc} │ │ │ │ │ + b 96c │ │ │ │ │ │ │ │ │ │ -00000918 : │ │ │ │ │ +0000099c : │ │ │ │ │ apply_ddft_last(): │ │ │ │ │ - push {r4, r5, r6, r7, r8, r9, sl, fp, lr} │ │ │ │ │ + strd r4, [sp, #-36]! @ 0xffffffdc │ │ │ │ │ mov r4, r0 │ │ │ │ │ + mov r5, r1 │ │ │ │ │ ldr r0, [r0, #68] @ 0x44 │ │ │ │ │ + strd r6, [sp, #8] │ │ │ │ │ + mov r6, r2 │ │ │ │ │ + strd r8, [sp, #16] │ │ │ │ │ + strd sl, [sp, #24] │ │ │ │ │ + str lr, [sp, #32] │ │ │ │ │ sub sp, sp, #76 @ 0x4c │ │ │ │ │ cmp r0, #0 │ │ │ │ │ - mov r5, r1 │ │ │ │ │ - mov r6, r2 │ │ │ │ │ - moveq r0, r1 │ │ │ │ │ - beq 948 │ │ │ │ │ + moveq ip, r1 │ │ │ │ │ + beq 9dc │ │ │ │ │ ldr r3, [r0, #56] @ 0x38 │ │ │ │ │ blx r3 │ │ │ │ │ - mov r0, r6 │ │ │ │ │ + mov ip, r6 │ │ │ │ │ + ldr r8, [r4, #64] @ 0x40 │ │ │ │ │ + ldr r0, [r4, #108] @ 0x6c │ │ │ │ │ ldr r3, [r4, #88] @ 0x58 │ │ │ │ │ - ldr lr, [r4, #108] @ 0x6c │ │ │ │ │ ldr r2, [r4, #100] @ 0x64 │ │ │ │ │ - str lr, [sp, #20] │ │ │ │ │ - ldr lr, [r4, #96] @ 0x60 │ │ │ │ │ + str r0, [sp, #20] │ │ │ │ │ + ldr r1, [r4, #84] @ 0x54 │ │ │ │ │ cmp r3, #0 │ │ │ │ │ + ldr r0, [r4, #96] @ 0x60 │ │ │ │ │ movne r5, r6 │ │ │ │ │ ldr r3, [r4, #76] @ 0x4c │ │ │ │ │ - cmp r2, lr │ │ │ │ │ + ldr r7, [r4, #92] @ 0x5c │ │ │ │ │ + cmp r2, r0 │ │ │ │ │ + str r0, [sp, #16] │ │ │ │ │ + ldr lr, [r4, #104] @ 0x68 │ │ │ │ │ str r3, [sp, #40] @ 0x28 │ │ │ │ │ - ldr r1, [r4, #84] @ 0x54 │ │ │ │ │ ldr r3, [r4, #80] @ 0x50 │ │ │ │ │ - ldr ip, [r4, #104] @ 0x68 │ │ │ │ │ - ldr r8, [r4, #64] @ 0x40 │ │ │ │ │ - ldr r7, [r4, #92] @ 0x5c │ │ │ │ │ - str lr, [sp, #16] │ │ │ │ │ - blt ab8 │ │ │ │ │ + blt b50 │ │ │ │ │ sub r3, r3, r1 │ │ │ │ │ - add r0, r0, r1, lsl #2 │ │ │ │ │ + lsl r0, r1, #2 │ │ │ │ │ + add sl, sp, #64 @ 0x40 │ │ │ │ │ lsl r3, r3, #2 │ │ │ │ │ - lsl ip, ip, #2 │ │ │ │ │ - str r0, [sp, #28] │ │ │ │ │ + lsl lr, lr, #2 │ │ │ │ │ + add ip, ip, r0 │ │ │ │ │ + add r0, r5, r0 │ │ │ │ │ + str ip, [sp, #28] │ │ │ │ │ str r3, [sp, #44] @ 0x2c │ │ │ │ │ - add r0, r5, r1, lsl #2 │ │ │ │ │ lsl r3, r7, #3 │ │ │ │ │ - add sl, sp, #64 @ 0x40 │ │ │ │ │ - str ip, [sp, #36] @ 0x24 │ │ │ │ │ - str r0, [sp, #32] │ │ │ │ │ - str r3, [sp, #24] │ │ │ │ │ str r2, [sp, #48] @ 0x30 │ │ │ │ │ str r4, [sp, #52] @ 0x34 │ │ │ │ │ + str r3, [sp, #24] │ │ │ │ │ + str r0, [sp, #32] │ │ │ │ │ + str lr, [sp, #36] @ 0x24 │ │ │ │ │ str r5, [sp, #56] @ 0x38 │ │ │ │ │ str r6, [sp, #60] @ 0x3c │ │ │ │ │ + ldr r2, [sp, #28] │ │ │ │ │ ldr r3, [sp, #32] │ │ │ │ │ ldr r1, [sp, #44] @ 0x2c │ │ │ │ │ ldr r0, [sp, #40] @ 0x28 │ │ │ │ │ - ldr r2, [sp, #28] │ │ │ │ │ - add r5, r3, r1 │ │ │ │ │ - str r3, [sp] │ │ │ │ │ mov r6, r3 │ │ │ │ │ - ldr r4, [r0, #56] @ 0x38 │ │ │ │ │ - mov r3, r5 │ │ │ │ │ + str r3, [sp] │ │ │ │ │ + add r5, r3, r1 │ │ │ │ │ add r1, r2, r1 │ │ │ │ │ + mov r3, r5 │ │ │ │ │ + ldr r4, [r0, #56] @ 0x38 │ │ │ │ │ blx r4 │ │ │ │ │ ldr r3, [sp, #20] │ │ │ │ │ cmp r3, #0 │ │ │ │ │ - ble a7c │ │ │ │ │ + ble b14 │ │ │ │ │ cmp r7, #0 │ │ │ │ │ - ble a7c │ │ │ │ │ - mov fp, #0 │ │ │ │ │ + ble b14 │ │ │ │ │ ldr r9, [r8, #8] │ │ │ │ │ + mov fp, #0 │ │ │ │ │ mov r2, fp │ │ │ │ │ mov r4, #0 │ │ │ │ │ str r2, [sp, #12] │ │ │ │ │ ldr r3, [r6, r4, lsl #3] │ │ │ │ │ - ldr r2, [r5, r4, lsl #3] │ │ │ │ │ mov r1, fp │ │ │ │ │ mov r0, r8 │ │ │ │ │ + ldr r2, [r5, r4, lsl #3] │ │ │ │ │ str sl, [sp] │ │ │ │ │ blx r9 │ │ │ │ │ ldr r3, [sp, #64] @ 0x40 │ │ │ │ │ str r3, [r5, r4, lsl #3] │ │ │ │ │ ldr r3, [sp, #68] @ 0x44 │ │ │ │ │ str r3, [r6, r4, lsl #3] │ │ │ │ │ add r4, r4, #1 │ │ │ │ │ cmp r7, r4 │ │ │ │ │ - bne a20 │ │ │ │ │ - ldr r3, [sp, #24] │ │ │ │ │ + bne ab8 │ │ │ │ │ ldr r2, [sp, #12] │ │ │ │ │ + ldr r3, [sp, #24] │ │ │ │ │ + add r2, r2, #1 │ │ │ │ │ add r6, r6, r3 │ │ │ │ │ add r5, r5, r3 │ │ │ │ │ ldr r3, [sp, #16] │ │ │ │ │ - add r2, r2, #1 │ │ │ │ │ add fp, fp, r3 │ │ │ │ │ ldr r3, [sp, #20] │ │ │ │ │ cmp r3, r2 │ │ │ │ │ - bne a18 │ │ │ │ │ + bne ab0 │ │ │ │ │ + ldr r3, [sp, #16] │ │ │ │ │ ldr r1, [sp, #28] │ │ │ │ │ ldr r2, [sp, #36] @ 0x24 │ │ │ │ │ - ldr r3, [sp, #16] │ │ │ │ │ + add r3, r3, #1 │ │ │ │ │ + str r3, [sp, #16] │ │ │ │ │ add r1, r1, r2 │ │ │ │ │ str r1, [sp, #28] │ │ │ │ │ ldr r1, [sp, #32] │ │ │ │ │ - add r3, r3, #1 │ │ │ │ │ add r2, r1, r2 │ │ │ │ │ str r2, [sp, #32] │ │ │ │ │ ldr r2, [sp, #48] @ 0x30 │ │ │ │ │ - str r3, [sp, #16] │ │ │ │ │ cmp r2, r3 │ │ │ │ │ - bge 9cc │ │ │ │ │ + bge a64 │ │ │ │ │ add r4, sp, #52 @ 0x34 │ │ │ │ │ ldm r4, {r4, r5, r6} │ │ │ │ │ - ldr r0, [r4, #72] @ 0x48 │ │ │ │ │ mov r2, r6 │ │ │ │ │ mov r1, r5 │ │ │ │ │ + ldr r0, [r4, #72] @ 0x48 │ │ │ │ │ ldr r3, [r0, #56] @ 0x38 │ │ │ │ │ add sp, sp, #76 @ 0x4c │ │ │ │ │ - pop {r4, r5, r6, r7, r8, r9, sl, fp, lr} │ │ │ │ │ + ldrd r4, [sp] │ │ │ │ │ + ldrd r6, [sp, #8] │ │ │ │ │ + ldrd r8, [sp, #16] │ │ │ │ │ + ldrd sl, [sp, #24] │ │ │ │ │ + ldr lr, [sp, #32] │ │ │ │ │ + add sp, sp, #36 @ 0x24 │ │ │ │ │ bx r3 │ │ │ │ │ │ │ │ │ │ -00000ad4 : │ │ │ │ │ +00000b80 : │ │ │ │ │ fftwf_mpi_dft_rank1_register(): │ │ │ │ │ - ldr r3, [pc, #144] @ b6c │ │ │ │ │ - push {r4, r5, r6, r7, r8, r9, lr} │ │ │ │ │ - add r3, pc, r3 │ │ │ │ │ - sub sp, sp, #12 │ │ │ │ │ - ldr r6, [pc, #132] @ b70 │ │ │ │ │ - str r3, [sp] │ │ │ │ │ - ldr r3, [pc, #128] @ b74 │ │ │ │ │ + ldr r3, [pc, #172] @ c34 │ │ │ │ │ + strd r4, [sp, #-28]! @ 0xffffffe4 │ │ │ │ │ mov r4, r0 │ │ │ │ │ + strd r6, [sp, #8] │ │ │ │ │ + mov r7, #2 │ │ │ │ │ + strd r8, [sp, #16] │ │ │ │ │ + mov r8, #0 │ │ │ │ │ + str lr, [sp, #24] │ │ │ │ │ + sub sp, sp, #12 │ │ │ │ │ add r3, pc, r3 │ │ │ │ │ + ldr r6, [pc, #136] @ c38 │ │ │ │ │ mov r9, sp │ │ │ │ │ - mov r7, #2 │ │ │ │ │ + str r3, [sp] │ │ │ │ │ + ldr r3, [pc, #128] @ c3c │ │ │ │ │ add r6, pc, r6 │ │ │ │ │ - mov r8, #0 │ │ │ │ │ + add r3, pc, r3 │ │ │ │ │ str r3, [sp, #4] │ │ │ │ │ + ldr r5, [r9], #4 │ │ │ │ │ mov r1, r6 │ │ │ │ │ mov r0, #16 │ │ │ │ │ - ldr r5, [r9], #4 │ │ │ │ │ bl 0 │ │ │ │ │ R_ARM_CALL fftwf_mksolver │ │ │ │ │ mov r1, r0 │ │ │ │ │ str r5, [r0, #8] │ │ │ │ │ str r8, [r0, #12] │ │ │ │ │ mov r0, r4 │ │ │ │ │ bl 0 │ │ │ │ │ @@ -801,16 +847,20 @@ │ │ │ │ │ mov r5, #1 │ │ │ │ │ mov r1, r0 │ │ │ │ │ str r5, [r0, #12] │ │ │ │ │ mov r0, r4 │ │ │ │ │ bl 0 │ │ │ │ │ R_ARM_CALL fftwf_solver_register │ │ │ │ │ cmp r7, r5 │ │ │ │ │ - bne b64 │ │ │ │ │ + bne c2c │ │ │ │ │ add sp, sp, #12 │ │ │ │ │ - pop {r4, r5, r6, r7, r8, r9, pc} │ │ │ │ │ + ldrd r4, [sp] │ │ │ │ │ + ldrd r6, [sp, #8] │ │ │ │ │ + ldrd r8, [sp, #16] │ │ │ │ │ + add sp, sp, #24 │ │ │ │ │ + pop {pc} @ (ldr pc, [sp], #4) │ │ │ │ │ mov r7, r5 │ │ │ │ │ - b b0c │ │ │ │ │ - .word 0xfffff51c │ │ │ │ │ - .word 0x00000068 │ │ │ │ │ + b bc4 │ │ │ │ │ + .word 0xfffff454 │ │ │ │ │ + .word 0x00000078 │ │ │ │ │ R_ARM_REL32 .data.rel.ro.local │ │ │ │ │ - .word 0xfffffe1c │ │ │ │ │ + .word 0xfffffdd8 │ │ │ ├── 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: 3548 (bytes into file) │ │ │ │ │ + Start of section headers: 3696 (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 0xddc: │ │ │ │ │ +There are 16 section headers, starting at offset 0xe70: │ │ │ │ │ │ │ │ │ │ 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 000574 00 AX 0 0 4 │ │ │ │ │ - [ 2] .rel.text REL 00000000 000bbc 000168 08 I 13 1 4 │ │ │ │ │ - [ 3] .data PROGBITS 00000000 0005a8 000000 00 WA 0 0 1 │ │ │ │ │ - [ 4] .bss NOBITS 00000000 0005a8 000000 00 WA 0 0 1 │ │ │ │ │ - [ 5] .rodata.str1.4 PROGBITS 00000000 0005a8 000039 01 AMS 0 0 4 │ │ │ │ │ - [ 6] .rodata PROGBITS 00000000 0005e1 000050 00 A 0 0 4 │ │ │ │ │ - [ 7] .data.rel.ro PROGBITS 00000000 000631 000010 00 WA 0 0 4 │ │ │ │ │ - [ 8] .rel.data.rel.ro REL 00000000 000d24 000020 08 I 13 7 4 │ │ │ │ │ - [ 9] .data.rel.ro.local PROGBITS 00000000 000641 00000c 00 WA 0 0 4 │ │ │ │ │ - [10] .rel.data.rel.ro.local REL 00000000 000d44 000008 08 I 13 9 4 │ │ │ │ │ - [11] .note.GNU-stack PROGBITS 00000000 00064d 000000 00 0 0 1 │ │ │ │ │ - [12] .ARM.attributes ARM_ATTRIBUTES 00000000 00064d 00002b 00 0 0 1 │ │ │ │ │ - [13] .symtab SYMTAB 00000000 000678 000310 10 14 24 4 │ │ │ │ │ - [14] .strtab STRTAB 00000000 000988 000233 00 0 0 1 │ │ │ │ │ - [15] .shstrtab STRTAB 00000000 000d4c 00008f 00 0 0 1 │ │ │ │ │ + [ 1] .text PROGBITS 00000000 000034 000608 00 AX 0 0 4 │ │ │ │ │ + [ 2] .rel.text REL 00000000 000c50 000168 08 I 13 1 4 │ │ │ │ │ + [ 3] .data PROGBITS 00000000 00063c 000000 00 WA 0 0 1 │ │ │ │ │ + [ 4] .bss NOBITS 00000000 00063c 000000 00 WA 0 0 1 │ │ │ │ │ + [ 5] .rodata.str1.4 PROGBITS 00000000 00063c 000039 01 AMS 0 0 4 │ │ │ │ │ + [ 6] .rodata PROGBITS 00000000 000675 000050 00 A 0 0 4 │ │ │ │ │ + [ 7] .data.rel.ro PROGBITS 00000000 0006c5 000010 00 WA 0 0 4 │ │ │ │ │ + [ 8] .rel.data.rel.ro REL 00000000 000db8 000020 08 I 13 7 4 │ │ │ │ │ + [ 9] .data.rel.ro.local PROGBITS 00000000 0006d5 00000c 00 WA 0 0 4 │ │ │ │ │ + [10] .rel.data.rel.ro.local REL 00000000 000dd8 000008 08 I 13 9 4 │ │ │ │ │ + [11] .note.GNU-stack PROGBITS 00000000 0006e1 000000 00 0 0 1 │ │ │ │ │ + [12] .ARM.attributes ARM_ATTRIBUTES 00000000 0006e1 00002b 00 0 0 1 │ │ │ │ │ + [13] .symtab SYMTAB 00000000 00070c 000310 10 14 24 4 │ │ │ │ │ + [14] .strtab STRTAB 00000000 000a1c 000233 00 0 0 1 │ │ │ │ │ + [15] .shstrtab STRTAB 00000000 000de0 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: 00000000 0 NOTYPE LOCAL DEFAULT 1 $a │ │ │ │ │ - 2: 00000000 112 FUNC LOCAL DEFAULT 1 apply │ │ │ │ │ + 2: 00000000 148 FUNC LOCAL DEFAULT 1 apply │ │ │ │ │ 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: 00000070 148 FUNC LOCAL DEFAULT 1 print │ │ │ │ │ - 8: 000000f4 0 NOTYPE LOCAL DEFAULT 1 $d │ │ │ │ │ - 9: 00000104 0 NOTYPE LOCAL DEFAULT 1 $a │ │ │ │ │ - 10: 00000104 36 FUNC LOCAL DEFAULT 1 destroy │ │ │ │ │ - 11: 00000128 940 FUNC LOCAL DEFAULT 1 mkplan │ │ │ │ │ - 12: 000004cc 0 NOTYPE LOCAL DEFAULT 1 $d │ │ │ │ │ - 13: 000004d4 0 NOTYPE LOCAL DEFAULT 1 $a │ │ │ │ │ - 14: 000004d4 48 FUNC LOCAL DEFAULT 1 awake │ │ │ │ │ - 15: 00000570 0 NOTYPE LOCAL DEFAULT 1 $d │ │ │ │ │ + 7: 00000094 168 FUNC LOCAL DEFAULT 1 print │ │ │ │ │ + 8: 0000012c 0 NOTYPE LOCAL DEFAULT 1 $d │ │ │ │ │ + 9: 0000013c 0 NOTYPE LOCAL DEFAULT 1 $a │ │ │ │ │ + 10: 0000013c 48 FUNC LOCAL DEFAULT 1 destroy │ │ │ │ │ + 11: 0000016c 972 FUNC LOCAL DEFAULT 1 mkplan │ │ │ │ │ + 12: 00000530 0 NOTYPE LOCAL DEFAULT 1 $d │ │ │ │ │ + 13: 00000538 0 NOTYPE LOCAL DEFAULT 1 $a │ │ │ │ │ + 14: 00000538 68 FUNC LOCAL DEFAULT 1 awake │ │ │ │ │ + 15: 00000604 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: 00000504 112 FUNC GLOBAL DEFAULT 1 fftwf_mpi_dft_rank1_bigvec_register │ │ │ │ │ + 45: 0000057c 140 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,59 +1,59 @@ │ │ │ │ │ │ │ │ │ │ -Relocation section '.rel.text' at offset 0xbbc contains 45 entries: │ │ │ │ │ +Relocation section '.rel.text' at offset 0xc50 contains 45 entries: │ │ │ │ │ Offset Info Type Sym. Value Symbol's Name │ │ │ │ │ -00000094 0000181c R_ARM_CALL 00000000 memcpy │ │ │ │ │ -000000f4 00001003 R_ARM_REL32 00000000 .rodata │ │ │ │ │ -000000f8 00000503 R_ARM_REL32 00000004 .LC2 │ │ │ │ │ -000000fc 00000603 R_ARM_REL32 00000008 .LC3 │ │ │ │ │ -00000100 00000403 R_ARM_REL32 00000000 .LC1 │ │ │ │ │ -00000110 0000191c R_ARM_CALL 00000000 fftwf_plan_destroy_internal │ │ │ │ │ -00000118 0000191c R_ARM_CALL 00000000 fftwf_plan_destroy_internal │ │ │ │ │ -00000124 0000191d R_ARM_JUMP24 00000000 fftwf_plan_destroy_internal │ │ │ │ │ -00000148 00001a1c R_ARM_CALL 00000000 MPI_Comm_size │ │ │ │ │ -000001cc 00001b1c R_ARM_CALL 00000000 fftwf_mpi_rearrange_applicable │ │ │ │ │ -000001ec 00001c1c R_ARM_CALL 00000000 MPI_Comm_rank │ │ │ │ │ -000001f8 00001a1c R_ARM_CALL 00000000 MPI_Comm_size │ │ │ │ │ -0000021c 00001d1c R_ARM_CALL 00000000 fftwf_mpi_rearrange_ny │ │ │ │ │ -00000230 00001e1c R_ARM_CALL 00000000 __aeabi_idiv │ │ │ │ │ -00000240 00001f1c R_ARM_CALL 00000000 fftwf_mpi_default_block │ │ │ │ │ -00000288 0000201c R_ARM_CALL 00000000 fftwf_mpi_mkproblem_transpose │ │ │ │ │ -00000294 0000211c R_ARM_CALL 00000000 fftwf_mkplan_d │ │ │ │ │ -000002a8 0000221c R_ARM_CALL 00000000 fftwf_mpi_any_true │ │ │ │ │ -000002e0 0000231c R_ARM_CALL 00000000 fftwf_extract_reim │ │ │ │ │ -000002f4 0000231c R_ARM_CALL 00000000 fftwf_extract_reim │ │ │ │ │ -00000304 0000241c R_ARM_CALL 00000000 fftwf_mpi_block │ │ │ │ │ -00000318 0000251c R_ARM_CALL 00000000 fftwf_mktensor_1d │ │ │ │ │ -00000340 0000261c R_ARM_CALL 00000000 fftwf_mktensor_2d │ │ │ │ │ -00000360 0000271c R_ARM_CALL 00000000 fftwf_mkproblem_dft_d │ │ │ │ │ -0000036c 0000211c R_ARM_CALL 00000000 fftwf_mkplan_d │ │ │ │ │ -00000380 0000221c R_ARM_CALL 00000000 fftwf_mpi_any_true │ │ │ │ │ -000003c0 0000201c R_ARM_CALL 00000000 fftwf_mpi_mkproblem_transpose │ │ │ │ │ -000003cc 0000211c R_ARM_CALL 00000000 fftwf_mkplan_d │ │ │ │ │ -000003e0 0000221c R_ARM_CALL 00000000 fftwf_mpi_any_true │ │ │ │ │ -00000400 0000281c R_ARM_CALL 00000000 fftwf_mkplan_rdft │ │ │ │ │ -00000470 0000291c R_ARM_CALL 00000000 fftwf_ops_add │ │ │ │ │ -0000047c 00002a1c R_ARM_CALL 00000000 fftwf_ops_add2 │ │ │ │ │ -00000494 0000191c R_ARM_CALL 00000000 fftwf_plan_destroy_internal │ │ │ │ │ -0000049c 0000191c R_ARM_CALL 00000000 fftwf_plan_destroy_internal │ │ │ │ │ -000004a4 0000191c R_ARM_CALL 00000000 fftwf_plan_destroy_internal │ │ │ │ │ -000004bc 00002b1c R_ARM_CALL 00000000 fftwf_mpi_dft_serial_applicable │ │ │ │ │ -000004d0 00001203 R_ARM_REL32 00000000 .data.rel.ro │ │ │ │ │ -000004e4 00002c1c R_ARM_CALL 00000000 fftwf_plan_awake │ │ │ │ │ -000004f0 00002c1c R_ARM_CALL 00000000 fftwf_plan_awake │ │ │ │ │ -00000500 00002c1d R_ARM_JUMP24 00000000 fftwf_plan_awake │ │ │ │ │ -00000524 00002e1c R_ARM_CALL 00000000 fftwf_mksolver │ │ │ │ │ -00000538 00002f1c R_ARM_CALL 00000000 fftwf_solver_register │ │ │ │ │ -00000544 00002e1c R_ARM_CALL 00000000 fftwf_mksolver │ │ │ │ │ -00000560 00002f1c R_ARM_CALL 00000000 fftwf_solver_register │ │ │ │ │ -00000570 00001503 R_ARM_REL32 00000000 .data.rel.ro.local │ │ │ │ │ +000000c0 0000181c R_ARM_CALL 00000000 memcpy │ │ │ │ │ +0000012c 00001003 R_ARM_REL32 00000000 .rodata │ │ │ │ │ +00000130 00000503 R_ARM_REL32 00000004 .LC2 │ │ │ │ │ +00000134 00000603 R_ARM_REL32 00000008 .LC3 │ │ │ │ │ +00000138 00000403 R_ARM_REL32 00000000 .LC1 │ │ │ │ │ +0000014c 0000191c R_ARM_CALL 00000000 fftwf_plan_destroy_internal │ │ │ │ │ +00000154 0000191c R_ARM_CALL 00000000 fftwf_plan_destroy_internal │ │ │ │ │ +00000168 0000191d R_ARM_JUMP24 00000000 fftwf_plan_destroy_internal │ │ │ │ │ +0000019c 00001a1c R_ARM_CALL 00000000 MPI_Comm_size │ │ │ │ │ +00000234 00001b1c R_ARM_CALL 00000000 fftwf_mpi_rearrange_applicable │ │ │ │ │ +00000254 00001c1c R_ARM_CALL 00000000 MPI_Comm_rank │ │ │ │ │ +00000260 00001a1c R_ARM_CALL 00000000 MPI_Comm_size │ │ │ │ │ +00000284 00001d1c R_ARM_CALL 00000000 fftwf_mpi_rearrange_ny │ │ │ │ │ +00000298 00001e1c R_ARM_CALL 00000000 __aeabi_idiv │ │ │ │ │ +000002a8 00001f1c R_ARM_CALL 00000000 fftwf_mpi_default_block │ │ │ │ │ +000002f0 0000201c R_ARM_CALL 00000000 fftwf_mpi_mkproblem_transpose │ │ │ │ │ +000002fc 0000211c R_ARM_CALL 00000000 fftwf_mkplan_d │ │ │ │ │ +00000310 0000221c R_ARM_CALL 00000000 fftwf_mpi_any_true │ │ │ │ │ +00000348 0000231c R_ARM_CALL 00000000 fftwf_extract_reim │ │ │ │ │ +0000035c 0000231c R_ARM_CALL 00000000 fftwf_extract_reim │ │ │ │ │ +0000036c 0000241c R_ARM_CALL 00000000 fftwf_mpi_block │ │ │ │ │ +00000380 0000251c R_ARM_CALL 00000000 fftwf_mktensor_1d │ │ │ │ │ +000003a8 0000261c R_ARM_CALL 00000000 fftwf_mktensor_2d │ │ │ │ │ +000003c8 0000271c R_ARM_CALL 00000000 fftwf_mkproblem_dft_d │ │ │ │ │ +000003d4 0000211c R_ARM_CALL 00000000 fftwf_mkplan_d │ │ │ │ │ +000003e8 0000221c R_ARM_CALL 00000000 fftwf_mpi_any_true │ │ │ │ │ +00000428 0000201c R_ARM_CALL 00000000 fftwf_mpi_mkproblem_transpose │ │ │ │ │ +00000434 0000211c R_ARM_CALL 00000000 fftwf_mkplan_d │ │ │ │ │ +00000448 0000221c R_ARM_CALL 00000000 fftwf_mpi_any_true │ │ │ │ │ +00000468 0000281c R_ARM_CALL 00000000 fftwf_mkplan_rdft │ │ │ │ │ +000004d8 0000291c R_ARM_CALL 00000000 fftwf_ops_add │ │ │ │ │ +000004e4 00002a1c R_ARM_CALL 00000000 fftwf_ops_add2 │ │ │ │ │ +000004f8 0000191c R_ARM_CALL 00000000 fftwf_plan_destroy_internal │ │ │ │ │ +00000500 0000191c R_ARM_CALL 00000000 fftwf_plan_destroy_internal │ │ │ │ │ +00000508 0000191c R_ARM_CALL 00000000 fftwf_plan_destroy_internal │ │ │ │ │ +00000520 00002b1c R_ARM_CALL 00000000 fftwf_mpi_dft_serial_applicable │ │ │ │ │ +00000534 00001203 R_ARM_REL32 00000000 .data.rel.ro │ │ │ │ │ +00000550 00002c1c R_ARM_CALL 00000000 fftwf_plan_awake │ │ │ │ │ +0000055c 00002c1c R_ARM_CALL 00000000 fftwf_plan_awake │ │ │ │ │ +00000578 00002c1d R_ARM_JUMP24 00000000 fftwf_plan_awake │ │ │ │ │ +000005a8 00002e1c R_ARM_CALL 00000000 fftwf_mksolver │ │ │ │ │ +000005bc 00002f1c R_ARM_CALL 00000000 fftwf_solver_register │ │ │ │ │ +000005c8 00002e1c R_ARM_CALL 00000000 fftwf_mksolver │ │ │ │ │ +000005e4 00002f1c R_ARM_CALL 00000000 fftwf_solver_register │ │ │ │ │ +00000604 00001503 R_ARM_REL32 00000000 .data.rel.ro.local │ │ │ │ │ │ │ │ │ │ -Relocation section '.rel.data.rel.ro' at offset 0xd24 contains 4 entries: │ │ │ │ │ +Relocation section '.rel.data.rel.ro' at offset 0xdb8 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 000004d4 awake │ │ │ │ │ -00000008 00000702 R_ARM_ABS32 00000070 print │ │ │ │ │ -0000000c 00000a02 R_ARM_ABS32 00000104 destroy │ │ │ │ │ +00000004 00000e02 R_ARM_ABS32 00000538 awake │ │ │ │ │ +00000008 00000702 R_ARM_ABS32 00000094 print │ │ │ │ │ +0000000c 00000a02 R_ARM_ABS32 0000013c destroy │ │ │ │ │ │ │ │ │ │ -Relocation section '.rel.data.rel.ro.local' at offset 0xd44 contains 1 entry: │ │ │ │ │ +Relocation section '.rel.data.rel.ro.local' at offset 0xdd8 contains 1 entry: │ │ │ │ │ Offset Info Type Sym. Value Symbol's Name │ │ │ │ │ -00000004 00000b02 R_ARM_ABS32 00000128 mkplan │ │ │ │ │ +00000004 00000b02 R_ARM_ABS32 0000016c mkplan │ │ │ │ ├── objdump --line-numbers --disassemble --demangle --reloc --no-show-raw-insn --section=.text {} │ │ │ │ │ @@ -1,416 +1,453 @@ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ Disassembly of section .text: │ │ │ │ │ │ │ │ │ │ 00000000 : │ │ │ │ │ apply(): │ │ │ │ │ - push {r4, r5, r6, r7, r8, r9, lr} │ │ │ │ │ + strd r4, [sp, #-24]! @ 0xffffffe8 │ │ │ │ │ + mov r4, r0 │ │ │ │ │ + mov r5, r1 │ │ │ │ │ + strd r6, [sp, #8] │ │ │ │ │ + mov r6, r2 │ │ │ │ │ ldr r7, [r0, #76] @ 0x4c │ │ │ │ │ + str r8, [sp, #16] │ │ │ │ │ ldr r8, [r0, #80] @ 0x50 │ │ │ │ │ - mov r4, r0 │ │ │ │ │ + str lr, [sp, #20] │ │ │ │ │ + sub sp, sp, #8 │ │ │ │ │ ldr r0, [r0, #64] @ 0x40 │ │ │ │ │ - sub sp, sp, #12 │ │ │ │ │ ldr r3, [r0, #56] @ 0x38 │ │ │ │ │ - mov r5, r1 │ │ │ │ │ - mov r6, r2 │ │ │ │ │ blx r3 │ │ │ │ │ - ldr r3, [r4, #84] @ 0x54 │ │ │ │ │ ldr r0, [r4, #68] @ 0x44 │ │ │ │ │ + lsl r2, r8, #2 │ │ │ │ │ + lsl r1, r7, #2 │ │ │ │ │ + ldr r3, [r4, #84] @ 0x54 │ │ │ │ │ cmp r3, #0 │ │ │ │ │ movne r5, r6 │ │ │ │ │ - add r3, r5, r8, lsl #2 │ │ │ │ │ + add r3, r5, r2 │ │ │ │ │ + add r2, r6, r2 │ │ │ │ │ str r3, [sp] │ │ │ │ │ - add r2, r6, r8, lsl #2 │ │ │ │ │ - ldr r9, [r0, #56] @ 0x38 │ │ │ │ │ - add r3, r5, r7, lsl #2 │ │ │ │ │ - add r1, r6, r7, lsl #2 │ │ │ │ │ - blx r9 │ │ │ │ │ + add r3, r5, r1 │ │ │ │ │ + add r1, r6, r1 │ │ │ │ │ + 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, sp, #12 │ │ │ │ │ - pop {r4, r5, r6, r7, r8, r9, lr} │ │ │ │ │ + add sp, sp, #8 │ │ │ │ │ + ldrd r4, [sp] │ │ │ │ │ + ldrd r6, [sp, #8] │ │ │ │ │ + ldr r8, [sp, #16] │ │ │ │ │ + ldr lr, [sp, #20] │ │ │ │ │ + add sp, sp, #24 │ │ │ │ │ bx r3 │ │ │ │ │ │ │ │ │ │ -00000070 : │ │ │ │ │ +00000094 : │ │ │ │ │ print(): │ │ │ │ │ - push {r4, r5, r6, lr} │ │ │ │ │ + strd r4, [sp, #-16]! │ │ │ │ │ mov r5, r1 │ │ │ │ │ - sub sp, sp, #96 @ 0x60 │ │ │ │ │ - ldr r1, [pc, #112] @ f4 │ │ │ │ │ - add r3, sp, #16 │ │ │ │ │ mov r4, r0 │ │ │ │ │ + ldr r1, [pc, #132] @ 12c │ │ │ │ │ mov r2, #80 @ 0x50 │ │ │ │ │ + str r6, [sp, #8] │ │ │ │ │ + str lr, [sp, #12] │ │ │ │ │ + sub sp, sp, #96 @ 0x60 │ │ │ │ │ + add r3, sp, #16 │ │ │ │ │ mov r0, r3 │ │ │ │ │ add r1, pc, r1 │ │ │ │ │ bl 0 │ │ │ │ │ R_ARM_CALL memcpy │ │ │ │ │ ldr r3, [r4, #84] @ 0x54 │ │ │ │ │ ldr r2, [r4, #88] @ 0x58 │ │ │ │ │ - cmp r3, #2 │ │ │ │ │ ldr r6, [r5] │ │ │ │ │ + cmp r3, #2 │ │ │ │ │ add r2, r0, r2, lsl #4 │ │ │ │ │ - beq e8 │ │ │ │ │ - ldr r3, [pc, #64] @ f8 │ │ │ │ │ + beq 120 │ │ │ │ │ + ldr r3, [pc, #76] @ 130 │ │ │ │ │ add r3, pc, r3 │ │ │ │ │ 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] │ │ │ │ │ - ldr r1, [pc, #36] @ fc │ │ │ │ │ - mov r0, r5 │ │ │ │ │ + ldr r1, [pc, #44] @ 134 │ │ │ │ │ add r1, pc, r1 │ │ │ │ │ blx r6 │ │ │ │ │ add sp, sp, #96 @ 0x60 │ │ │ │ │ - pop {r4, r5, r6, pc} │ │ │ │ │ - ldr r3, [pc, #16] @ 100 │ │ │ │ │ + ldrd r4, [sp] │ │ │ │ │ + ldr r6, [sp, #8] │ │ │ │ │ + add sp, sp, #12 │ │ │ │ │ + pop {pc} @ (ldr pc, [sp], #4) │ │ │ │ │ + ldr r3, [pc, #16] @ 138 │ │ │ │ │ add r3, pc, r3 │ │ │ │ │ - b b8 │ │ │ │ │ - .word 0x0000005c │ │ │ │ │ + b e4 │ │ │ │ │ + .word 0x00000068 │ │ │ │ │ R_ARM_REL32 .rodata │ │ │ │ │ - .word 0x0000003c │ │ │ │ │ + .word 0x00000048 │ │ │ │ │ R_ARM_REL32 .LC2 │ │ │ │ │ - .word 0x0000001c │ │ │ │ │ + .word 0x00000028 │ │ │ │ │ R_ARM_REL32 .LC3 │ │ │ │ │ .word 0x0000000c │ │ │ │ │ R_ARM_REL32 .LC1 │ │ │ │ │ │ │ │ │ │ -00000104 : │ │ │ │ │ +0000013c : │ │ │ │ │ destroy(): │ │ │ │ │ - push {r4, lr} │ │ │ │ │ + str r4, [sp, #-8]! │ │ │ │ │ mov r4, r0 │ │ │ │ │ ldr r0, [r0, #72] @ 0x48 │ │ │ │ │ + str lr, [sp, #4] │ │ │ │ │ bl 0 │ │ │ │ │ R_ARM_CALL fftwf_plan_destroy_internal │ │ │ │ │ ldr r0, [r4, #68] @ 0x44 │ │ │ │ │ bl 0 │ │ │ │ │ R_ARM_CALL fftwf_plan_destroy_internal │ │ │ │ │ + ldr lr, [sp, #4] │ │ │ │ │ ldr r0, [r4, #64] @ 0x40 │ │ │ │ │ - pop {r4, lr} │ │ │ │ │ + ldr r4, [sp] │ │ │ │ │ + add sp, sp, #8 │ │ │ │ │ b 0 │ │ │ │ │ R_ARM_JUMP24 fftwf_plan_destroy_internal │ │ │ │ │ │ │ │ │ │ -00000128 : │ │ │ │ │ +0000016c : │ │ │ │ │ mkplan(): │ │ │ │ │ - push {r4, r5, r6, r7, r8, r9, sl, fp, lr} │ │ │ │ │ - sub sp, sp, #76 @ 0x4c │ │ │ │ │ + strd r4, [sp, #-36]! @ 0xffffffdc │ │ │ │ │ mov r4, r1 │ │ │ │ │ - add r5, sp, #68 @ 0x44 │ │ │ │ │ + strd r6, [sp, #8] │ │ │ │ │ mov r6, r0 │ │ │ │ │ - mov r1, r5 │ │ │ │ │ - ldr r0, [r4, #28] │ │ │ │ │ mov r7, r2 │ │ │ │ │ + strd r8, [sp, #16] │ │ │ │ │ + strd sl, [sp, #24] │ │ │ │ │ + str lr, [sp, #32] │ │ │ │ │ + sub sp, sp, #76 @ 0x4c │ │ │ │ │ + add r5, sp, #68 @ 0x44 │ │ │ │ │ + ldr r0, [r4, #28] │ │ │ │ │ + mov r1, r5 │ │ │ │ │ bl 0 │ │ │ │ │ R_ARM_CALL MPI_Comm_size │ │ │ │ │ ldr r3, [r4, #4] │ │ │ │ │ ldr r2, [r3] │ │ │ │ │ cmp r2, #1 │ │ │ │ │ - beq 168 │ │ │ │ │ + beq 1d0 │ │ │ │ │ mov r0, #0 │ │ │ │ │ add sp, sp, #76 @ 0x4c │ │ │ │ │ - pop {r4, r5, r6, r7, r8, r9, sl, fp, pc} │ │ │ │ │ + ldrd r4, [sp] │ │ │ │ │ + ldrd r6, [sp, #8] │ │ │ │ │ + ldrd r8, [sp, #16] │ │ │ │ │ + ldrd sl, [sp, #24] │ │ │ │ │ + add sp, sp, #32 │ │ │ │ │ + pop {pc} @ (ldr pc, [sp], #4) │ │ │ │ │ ldr r2, [r4, #24] │ │ │ │ │ bics r1, r2, #16 │ │ │ │ │ - bne 15c │ │ │ │ │ + bne 1b0 │ │ │ │ │ ldr r1, [r6, #8] │ │ │ │ │ cmp r1, #0 │ │ │ │ │ - beq 19c │ │ │ │ │ + beq 204 │ │ │ │ │ ldr r1, [r7, #164] @ 0xa4 │ │ │ │ │ tst r1, #4096 @ 0x1000 │ │ │ │ │ - bne 15c │ │ │ │ │ + bne 1b0 │ │ │ │ │ ldr r0, [r4, #12] │ │ │ │ │ ldr r1, [r4, #16] │ │ │ │ │ cmp r0, r1 │ │ │ │ │ - beq 15c │ │ │ │ │ - subs r2, r2, #0 │ │ │ │ │ + beq 1b0 │ │ │ │ │ ldr r1, [r4, #8] │ │ │ │ │ - ldr r0, [sp, #68] @ 0x44 │ │ │ │ │ + subs r2, r2, #0 │ │ │ │ │ movne r2, #1 │ │ │ │ │ + ldr r0, [sp, #68] @ 0x44 │ │ │ │ │ cmp r1, r0 │ │ │ │ │ orrge r2, r2, #1 │ │ │ │ │ cmp r2, #0 │ │ │ │ │ - beq 15c │ │ │ │ │ - str r0, [sp, #4] │ │ │ │ │ + beq 1b0 │ │ │ │ │ str r1, [sp] │ │ │ │ │ + str r0, [sp, #4] │ │ │ │ │ ldmib r3, {r1, r2, r3} │ │ │ │ │ ldr r0, [r6, #12] │ │ │ │ │ bl 0 │ │ │ │ │ R_ARM_CALL fftwf_mpi_rearrange_applicable │ │ │ │ │ cmp r0, #0 │ │ │ │ │ - beq 15c │ │ │ │ │ + beq 1b0 │ │ │ │ │ ldr r3, [r7, #164] @ 0xa4 │ │ │ │ │ tst r3, #8 │ │ │ │ │ - bne 4b8 │ │ │ │ │ - add r1, sp, #64 @ 0x40 │ │ │ │ │ + bne 51c │ │ │ │ │ ldr r0, [r4, #28] │ │ │ │ │ + add r1, sp, #64 @ 0x40 │ │ │ │ │ bl 0 │ │ │ │ │ R_ARM_CALL MPI_Comm_rank │ │ │ │ │ - mov r1, r5 │ │ │ │ │ ldr r0, [r4, #28] │ │ │ │ │ + mov r1, r5 │ │ │ │ │ bl 0 │ │ │ │ │ R_ARM_CALL MPI_Comm_size │ │ │ │ │ ldr r3, [r4, #4] │ │ │ │ │ ldr r2, [sp, #68] @ 0x44 │ │ │ │ │ ldr sl, [r3, #4]! │ │ │ │ │ str r2, [sp, #4] │ │ │ │ │ ldr r2, [r4, #8] │ │ │ │ │ str r2, [sp] │ │ │ │ │ ldm r3, {r1, r2, r3} │ │ │ │ │ ldr r0, [r6, #12] │ │ │ │ │ bl 0 │ │ │ │ │ R_ARM_CALL fftwf_mpi_rearrange_ny │ │ │ │ │ subs r5, r0, #0 │ │ │ │ │ - beq 15c │ │ │ │ │ + beq 1b0 │ │ │ │ │ ldr r0, [r4, #8] │ │ │ │ │ mov r1, r5 │ │ │ │ │ bl 0 <__aeabi_idiv> │ │ │ │ │ R_ARM_CALL __aeabi_idiv │ │ │ │ │ ldr r1, [sp, #68] @ 0x44 │ │ │ │ │ mov r8, r0 │ │ │ │ │ mov r0, r5 │ │ │ │ │ bl 0 │ │ │ │ │ R_ARM_CALL fftwf_mpi_default_block │ │ │ │ │ mov r3, #0 │ │ │ │ │ ldr fp, [r4, #12] │ │ │ │ │ + lsl r2, r8, #1 │ │ │ │ │ + mov r1, r5 │ │ │ │ │ ldr r9, [r4, #16] │ │ │ │ │ str r3, [sp, #16] │ │ │ │ │ ldr r3, [r4, #28] │ │ │ │ │ - str r3, [sp, #12] │ │ │ │ │ - lsl r2, r8, #1 │ │ │ │ │ - mov r1, r5 │ │ │ │ │ - str r2, [sp, #28] │ │ │ │ │ str r0, [sp, #8] │ │ │ │ │ - ldr r3, [r4, #4] │ │ │ │ │ str r0, [sp, #32] │ │ │ │ │ + mov r0, sl │ │ │ │ │ + str r3, [sp, #12] │ │ │ │ │ + ldr r3, [r4, #4] │ │ │ │ │ + str r2, [sp, #28] │ │ │ │ │ ldr r3, [r3, #8] │ │ │ │ │ + str r9, [sp] │ │ │ │ │ str r3, [sp, #4] │ │ │ │ │ - mov r0, sl │ │ │ │ │ mov r3, fp │ │ │ │ │ - str r9, [sp] │ │ │ │ │ bl 0 │ │ │ │ │ R_ARM_CALL fftwf_mpi_mkproblem_transpose │ │ │ │ │ mov r1, r0 │ │ │ │ │ mov r0, r7 │ │ │ │ │ bl 0 │ │ │ │ │ R_ARM_CALL fftwf_mkplan_d │ │ │ │ │ - ldr r1, [r4, #28] │ │ │ │ │ str r0, [sp, #36] @ 0x24 │ │ │ │ │ clz r0, r0 │ │ │ │ │ + ldr r1, [r4, #28] │ │ │ │ │ lsr r0, r0, #5 │ │ │ │ │ bl 0 │ │ │ │ │ R_ARM_CALL fftwf_mpi_any_true │ │ │ │ │ cmp r0, #0 │ │ │ │ │ - bne 4ac │ │ │ │ │ + bne 510 │ │ │ │ │ ldr r3, [r6, #8] │ │ │ │ │ cmp r3, #0 │ │ │ │ │ movne fp, r9 │ │ │ │ │ - bne 2d0 │ │ │ │ │ + bne 338 │ │ │ │ │ ldr r3, [r7, #164] @ 0xa4 │ │ │ │ │ tst r3, #4096 @ 0x1000 │ │ │ │ │ movne fp, r9 │ │ │ │ │ ldr r0, [r4, #20] │ │ │ │ │ add r3, sp, #52 @ 0x34 │ │ │ │ │ add r2, sp, #48 @ 0x30 │ │ │ │ │ mov r1, fp │ │ │ │ │ bl 0 │ │ │ │ │ R_ARM_CALL fftwf_extract_reim │ │ │ │ │ - add r3, sp, #60 @ 0x3c │ │ │ │ │ ldr r0, [r4, #20] │ │ │ │ │ + add r3, sp, #60 @ 0x3c │ │ │ │ │ add r2, sp, #56 @ 0x38 │ │ │ │ │ mov r1, r9 │ │ │ │ │ bl 0 │ │ │ │ │ R_ARM_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_CALL fftwf_mpi_block │ │ │ │ │ ldr r2, [sp, #28] │ │ │ │ │ - mov r1, r2 │ │ │ │ │ str r0, [sp, #44] @ 0x2c │ │ │ │ │ mov r0, sl │ │ │ │ │ + mov r1, r2 │ │ │ │ │ bl 0 │ │ │ │ │ R_ARM_CALL fftwf_mktensor_1d │ │ │ │ │ mul r2, r8, sl │ │ │ │ │ mov r3, #2 │ │ │ │ │ + str r3, [sp] │ │ │ │ │ lsl r2, r2, #1 │ │ │ │ │ - mov r1, r2 │ │ │ │ │ str r3, [sp, #4] │ │ │ │ │ - str r3, [sp] │ │ │ │ │ mov r3, r8 │ │ │ │ │ str r0, [sp, #40] @ 0x28 │ │ │ │ │ ldr r0, [sp, #44] @ 0x2c │ │ │ │ │ + mov r1, r2 │ │ │ │ │ bl 0 │ │ │ │ │ R_ARM_CALL fftwf_mktensor_2d │ │ │ │ │ ldr r3, [sp, #52] @ 0x34 │ │ │ │ │ + mov r1, r0 │ │ │ │ │ + ldr r0, [sp, #40] @ 0x28 │ │ │ │ │ str r3, [sp, #4] │ │ │ │ │ ldr r3, [sp, #48] @ 0x30 │ │ │ │ │ str r3, [sp] │ │ │ │ │ ldrd r2, [sp, #56] @ 0x38 │ │ │ │ │ - mov r1, r0 │ │ │ │ │ - ldr r0, [sp, #40] @ 0x28 │ │ │ │ │ bl 0 │ │ │ │ │ R_ARM_CALL fftwf_mkproblem_dft_d │ │ │ │ │ mov r1, r0 │ │ │ │ │ mov r0, r7 │ │ │ │ │ bl 0 │ │ │ │ │ R_ARM_CALL fftwf_mkplan_d │ │ │ │ │ - ldr r1, [r4, #28] │ │ │ │ │ mov r8, r0 │ │ │ │ │ clz r0, r0 │ │ │ │ │ + ldr r1, [r4, #28] │ │ │ │ │ lsr r0, r0, #5 │ │ │ │ │ bl 0 │ │ │ │ │ R_ARM_CALL fftwf_mpi_any_true │ │ │ │ │ cmp r0, #0 │ │ │ │ │ - bne 48c │ │ │ │ │ + bne 4f0 │ │ │ │ │ str r0, [sp, #16] │ │ │ │ │ + mov r1, sl │ │ │ │ │ + mov r0, r5 │ │ │ │ │ ldr r3, [r4, #28] │ │ │ │ │ + ldr r2, [sp, #28] │ │ │ │ │ str r3, [sp, #12] │ │ │ │ │ ldr r3, [r4, #4] │ │ │ │ │ - ldr r2, [sp, #28] │ │ │ │ │ ldr r3, [r3, #12] │ │ │ │ │ + str r9, [sp] │ │ │ │ │ str r3, [sp, #8] │ │ │ │ │ ldr r3, [sp, #32] │ │ │ │ │ - mov r1, sl │ │ │ │ │ str r3, [sp, #4] │ │ │ │ │ - str r9, [sp] │ │ │ │ │ mov r3, fp │ │ │ │ │ - mov r0, r5 │ │ │ │ │ bl 0 │ │ │ │ │ R_ARM_CALL fftwf_mpi_mkproblem_transpose │ │ │ │ │ mov r1, r0 │ │ │ │ │ mov r0, r7 │ │ │ │ │ bl 0 │ │ │ │ │ R_ARM_CALL fftwf_mkplan_d │ │ │ │ │ - ldr r1, [r4, #28] │ │ │ │ │ mov r9, r0 │ │ │ │ │ clz r0, r0 │ │ │ │ │ + ldr r1, [r4, #28] │ │ │ │ │ lsr r0, r0, #5 │ │ │ │ │ bl 0 │ │ │ │ │ R_ARM_CALL fftwf_mpi_any_true │ │ │ │ │ cmp r0, #0 │ │ │ │ │ - bne 490 │ │ │ │ │ - ldr r2, [pc, #216] @ 4cc │ │ │ │ │ - ldr r1, [pc, #216] @ 4d0 │ │ │ │ │ + bne 4f4 │ │ │ │ │ + ldr r2, [pc, #212] @ 530 │ │ │ │ │ + mov r0, #96 @ 0x60 │ │ │ │ │ + ldr r1, [pc, #208] @ 534 │ │ │ │ │ add r2, pc, r2 │ │ │ │ │ add r1, pc, r1 │ │ │ │ │ - mov r0, #96 @ 0x60 │ │ │ │ │ bl 0 │ │ │ │ │ R_ARM_CALL fftwf_mkplan_rdft │ │ │ │ │ ldr r3, [sp, #36] @ 0x24 │ │ │ │ │ - ldr r2, [r4, #16] │ │ │ │ │ + mov r5, r0 │ │ │ │ │ add r1, r8, #8 │ │ │ │ │ + ldr r2, [r4, #16] │ │ │ │ │ + add r4, r0, #8 │ │ │ │ │ str r3, [r0, #64] @ 0x40 │ │ │ │ │ ldr r3, [r6, #8] │ │ │ │ │ - add r4, r0, #8 │ │ │ │ │ + str r8, [r0, #68] @ 0x44 │ │ │ │ │ + str r9, [r0, #72] @ 0x48 │ │ │ │ │ cmp r3, #0 │ │ │ │ │ ldreq r3, [r7, #164] @ 0xa4 │ │ │ │ │ movne r3, #2 │ │ │ │ │ andeq r3, r3, #4096 @ 0x1000 │ │ │ │ │ str r3, [r0, #84] @ 0x54 │ │ │ │ │ ldr r3, [sp, #56] @ 0x38 │ │ │ │ │ - mov r5, r0 │ │ │ │ │ sub r3, r3, r2 │ │ │ │ │ asr r3, r3, #2 │ │ │ │ │ str r3, [r0, #76] @ 0x4c │ │ │ │ │ ldr r3, [sp, #60] @ 0x3c │ │ │ │ │ - str r8, [r0, #68] @ 0x44 │ │ │ │ │ sub r3, r3, r2 │ │ │ │ │ + mov r2, r4 │ │ │ │ │ asr r3, r3, #2 │ │ │ │ │ str r3, [r0, #80] @ 0x50 │ │ │ │ │ ldr r3, [r6, #12] │ │ │ │ │ str r3, [r0, #88] @ 0x58 │ │ │ │ │ ldr r3, [sp, #36] @ 0x24 │ │ │ │ │ - mov r2, r4 │ │ │ │ │ - str r9, [r0, #72] @ 0x48 │ │ │ │ │ add r0, r3, #8 │ │ │ │ │ bl 0 │ │ │ │ │ R_ARM_CALL fftwf_ops_add │ │ │ │ │ add r0, r9, #8 │ │ │ │ │ mov r1, r4 │ │ │ │ │ bl 0 │ │ │ │ │ R_ARM_CALL fftwf_ops_add2 │ │ │ │ │ mov r0, r5 │ │ │ │ │ - add sp, sp, #76 @ 0x4c │ │ │ │ │ - pop {r4, r5, r6, r7, r8, r9, sl, fp, pc} │ │ │ │ │ + b 1b4 │ │ │ │ │ mov r9, #0 │ │ │ │ │ mov r0, r9 │ │ │ │ │ bl 0 │ │ │ │ │ R_ARM_CALL fftwf_plan_destroy_internal │ │ │ │ │ mov r0, r8 │ │ │ │ │ bl 0 │ │ │ │ │ R_ARM_CALL fftwf_plan_destroy_internal │ │ │ │ │ ldr r0, [sp, #36] @ 0x24 │ │ │ │ │ bl 0 │ │ │ │ │ R_ARM_CALL fftwf_plan_destroy_internal │ │ │ │ │ - b 15c │ │ │ │ │ + b 1b0 │ │ │ │ │ mov r9, #0 │ │ │ │ │ mov r8, r9 │ │ │ │ │ - b 490 │ │ │ │ │ + b 4f4 │ │ │ │ │ mov r0, r4 │ │ │ │ │ bl 0 │ │ │ │ │ R_ARM_CALL fftwf_mpi_dft_serial_applicable │ │ │ │ │ cmp r0, #0 │ │ │ │ │ - bne 15c │ │ │ │ │ - b 1e4 │ │ │ │ │ - .word 0xfffffc04 │ │ │ │ │ - .word 0x000000d0 │ │ │ │ │ + bne 1b0 │ │ │ │ │ + b 24c │ │ │ │ │ + .word 0xfffffb98 │ │ │ │ │ + .word 0x000000c8 │ │ │ │ │ R_ARM_REL32 .data.rel.ro │ │ │ │ │ │ │ │ │ │ -000004d4 : │ │ │ │ │ +00000538 : │ │ │ │ │ awake(): │ │ │ │ │ - push {r4, r5, r6, lr} │ │ │ │ │ + strd r4, [sp, #-16]! │ │ │ │ │ mov r4, r0 │ │ │ │ │ mov r5, r1 │ │ │ │ │ ldr r0, [r0, #64] @ 0x40 │ │ │ │ │ + str r6, [sp, #8] │ │ │ │ │ + str lr, [sp, #12] │ │ │ │ │ bl 0 │ │ │ │ │ R_ARM_CALL fftwf_plan_awake │ │ │ │ │ ldr r0, [r4, #68] @ 0x44 │ │ │ │ │ mov r1, r5 │ │ │ │ │ bl 0 │ │ │ │ │ R_ARM_CALL fftwf_plan_awake │ │ │ │ │ - ldr r0, [r4, #72] @ 0x48 │ │ │ │ │ + ldr r6, [sp, #8] │ │ │ │ │ mov r1, r5 │ │ │ │ │ - pop {r4, r5, r6, lr} │ │ │ │ │ + ldr lr, [sp, #12] │ │ │ │ │ + ldr r0, [r4, #72] @ 0x48 │ │ │ │ │ + ldrd r4, [sp] │ │ │ │ │ + add sp, sp, #16 │ │ │ │ │ b 0 │ │ │ │ │ R_ARM_JUMP24 fftwf_plan_awake │ │ │ │ │ │ │ │ │ │ -00000504 : │ │ │ │ │ +0000057c : │ │ │ │ │ fftwf_mpi_dft_rank1_bigvec_register(): │ │ │ │ │ - push {r4, r5, r6, r7, r8, lr} │ │ │ │ │ - ldr r6, [pc, #96] @ 570 │ │ │ │ │ + strd r4, [sp, #-24]! @ 0xffffffe8 │ │ │ │ │ mov r4, #0 │ │ │ │ │ mov r5, r0 │ │ │ │ │ - add r6, pc, r6 │ │ │ │ │ + strd r6, [sp, #8] │ │ │ │ │ mov r7, r4 │ │ │ │ │ + ldr r6, [pc, #108] @ 604 │ │ │ │ │ + str r8, [sp, #16] │ │ │ │ │ + str lr, [sp, #20] │ │ │ │ │ + add r6, pc, r6 │ │ │ │ │ mov r1, r6 │ │ │ │ │ mov r0, #16 │ │ │ │ │ bl 0 │ │ │ │ │ R_ARM_CALL fftwf_mksolver │ │ │ │ │ mov r1, r0 │ │ │ │ │ - str r4, [r0, #12] │ │ │ │ │ str r7, [r0, #8] │ │ │ │ │ + str r4, [r0, #12] │ │ │ │ │ mov r0, r5 │ │ │ │ │ bl 0 │ │ │ │ │ R_ARM_CALL fftwf_solver_register │ │ │ │ │ mov r1, r6 │ │ │ │ │ mov r0, #16 │ │ │ │ │ bl 0 │ │ │ │ │ R_ARM_CALL fftwf_mksolver │ │ │ │ │ mov r3, #1 │ │ │ │ │ - str r4, [r0, #12] │ │ │ │ │ mov r1, r0 │ │ │ │ │ str r3, [r0, #8] │ │ │ │ │ - add r4, r4, #1 │ │ │ │ │ + str r4, [r0, #12] │ │ │ │ │ mov r0, r5 │ │ │ │ │ + add r4, r4, #1 │ │ │ │ │ bl 0 │ │ │ │ │ R_ARM_CALL fftwf_solver_register │ │ │ │ │ cmp r4, #4 │ │ │ │ │ - bne 51c │ │ │ │ │ - pop {r4, r5, r6, r7, r8, pc} │ │ │ │ │ - .word 0x00000054 │ │ │ │ │ + bne 5a0 │ │ │ │ │ + ldrd r4, [sp] │ │ │ │ │ + ldrd r6, [sp, #8] │ │ │ │ │ + ldr r8, [sp, #16] │ │ │ │ │ + add sp, sp, #20 │ │ │ │ │ + pop {pc} @ (ldr pc, [sp], #4) │ │ │ │ │ + .word 0x00000060 │ │ │ │ │ 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: 2412 (bytes into file) │ │ │ │ │ + Start of section headers: 2572 (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 0x96c: │ │ │ │ │ +There are 13 section headers, starting at offset 0xa0c: │ │ │ │ │ │ │ │ │ │ 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 00034c 00 AX 0 0 4 │ │ │ │ │ - [ 2] .rel.text REL 00000000 0007cc 000108 08 I 10 1 4 │ │ │ │ │ - [ 3] .data PROGBITS 00000000 000380 000000 00 WA 0 0 1 │ │ │ │ │ - [ 4] .bss NOBITS 00000000 000380 000000 00 WA 0 0 1 │ │ │ │ │ - [ 5] .rodata.str1.4 PROGBITS 00000000 000380 000030 01 AMS 0 0 4 │ │ │ │ │ - [ 6] .data.rel.ro.local PROGBITS 00000000 0003b0 000014 00 WA 0 0 4 │ │ │ │ │ - [ 7] .rel.data.rel.ro.local REL 00000000 0008d4 000020 08 I 10 6 4 │ │ │ │ │ - [ 8] .note.GNU-stack PROGBITS 00000000 0003c4 000000 00 0 0 1 │ │ │ │ │ - [ 9] .ARM.attributes ARM_ATTRIBUTES 00000000 0003c4 00002b 00 0 0 1 │ │ │ │ │ - [10] .symtab SYMTAB 00000000 0003f0 000270 10 11 21 4 │ │ │ │ │ - [11] .strtab STRTAB 00000000 000660 00016c 00 0 0 1 │ │ │ │ │ - [12] .shstrtab STRTAB 00000000 0008f4 000076 00 0 0 1 │ │ │ │ │ + [ 1] .text PROGBITS 00000000 000034 0003ec 00 AX 0 0 4 │ │ │ │ │ + [ 2] .rel.text REL 00000000 00086c 000108 08 I 10 1 4 │ │ │ │ │ + [ 3] .data PROGBITS 00000000 000420 000000 00 WA 0 0 1 │ │ │ │ │ + [ 4] .bss NOBITS 00000000 000420 000000 00 WA 0 0 1 │ │ │ │ │ + [ 5] .rodata.str1.4 PROGBITS 00000000 000420 000030 01 AMS 0 0 4 │ │ │ │ │ + [ 6] .data.rel.ro.local PROGBITS 00000000 000450 000014 00 WA 0 0 4 │ │ │ │ │ + [ 7] .rel.data.rel.ro.local REL 00000000 000974 000020 08 I 10 6 4 │ │ │ │ │ + [ 8] .note.GNU-stack PROGBITS 00000000 000464 000000 00 0 0 1 │ │ │ │ │ + [ 9] .ARM.attributes ARM_ATTRIBUTES 00000000 000464 00002b 00 0 0 1 │ │ │ │ │ + [10] .symtab SYMTAB 00000000 000490 000270 10 11 21 4 │ │ │ │ │ + [11] .strtab STRTAB 00000000 000700 00016c 00 0 0 1 │ │ │ │ │ + [12] .shstrtab STRTAB 00000000 000994 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: 00000000 0 NOTYPE LOCAL DEFAULT 1 $a │ │ │ │ │ - 2: 00000000 36 FUNC LOCAL DEFAULT 1 destroy │ │ │ │ │ + 2: 00000000 48 FUNC LOCAL DEFAULT 1 destroy │ │ │ │ │ 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: 00000024 188 FUNC LOCAL DEFAULT 1 print │ │ │ │ │ - 8: 000000d4 0 NOTYPE LOCAL DEFAULT 1 $d │ │ │ │ │ - 9: 000000e0 0 NOTYPE LOCAL DEFAULT 1 $a │ │ │ │ │ - 10: 000000e0 84 FUNC LOCAL DEFAULT 1 zero │ │ │ │ │ + 7: 00000030 216 FUNC LOCAL DEFAULT 1 print │ │ │ │ │ + 8: 000000fc 0 NOTYPE LOCAL DEFAULT 1 $d │ │ │ │ │ + 9: 00000108 0 NOTYPE LOCAL DEFAULT 1 $a │ │ │ │ │ + 10: 00000108 104 FUNC LOCAL DEFAULT 1 zero │ │ │ │ │ 11: 00000028 0 NOTYPE LOCAL DEFAULT 5 .LC3 │ │ │ │ │ - 12: 00000134 144 FUNC LOCAL DEFAULT 1 hash │ │ │ │ │ - 13: 000001c0 0 NOTYPE LOCAL DEFAULT 1 $d │ │ │ │ │ - 14: 000001c4 0 NOTYPE LOCAL DEFAULT 1 $a │ │ │ │ │ - 15: 00000280 0 NOTYPE LOCAL DEFAULT 1 $d │ │ │ │ │ - 16: 00000284 0 NOTYPE LOCAL DEFAULT 1 $a │ │ │ │ │ - 17: 00000348 0 NOTYPE LOCAL DEFAULT 1 $d │ │ │ │ │ + 12: 00000170 156 FUNC LOCAL DEFAULT 1 hash │ │ │ │ │ + 13: 00000208 0 NOTYPE LOCAL DEFAULT 1 $d │ │ │ │ │ + 14: 0000020c 0 NOTYPE LOCAL DEFAULT 1 $a │ │ │ │ │ + 15: 000002f0 0 NOTYPE LOCAL DEFAULT 1 $d │ │ │ │ │ + 16: 000002f4 0 NOTYPE LOCAL DEFAULT 1 $a │ │ │ │ │ + 17: 000003e8 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: 000001c4 192 FUNC GLOBAL DEFAULT 1 fftwf_mpi_mkproblem_dft │ │ │ │ │ + 34: 0000020c 232 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: 00000284 200 FUNC GLOBAL DEFAULT 1 fftwf_mpi_mkproblem_dft_d │ │ │ │ │ + 38: 000002f4 248 FUNC GLOBAL DEFAULT 1 fftwf_mpi_mkproblem_dft_d │ │ │ │ ├── readelf --wide --relocs {} │ │ │ │ │ @@ -1,43 +1,43 @@ │ │ │ │ │ │ │ │ │ │ -Relocation section '.rel.text' at offset 0x7cc contains 33 entries: │ │ │ │ │ +Relocation section '.rel.text' at offset 0x86c contains 33 entries: │ │ │ │ │ Offset Info Type Sym. Value Symbol's Name │ │ │ │ │ -0000000c 0000151c R_ARM_CALL 00000000 fftwf_mpi_dtensor_destroy │ │ │ │ │ -00000014 0000161c R_ARM_CALL 00000000 MPI_Comm_free │ │ │ │ │ -00000020 0000171d R_ARM_JUMP24 00000000 fftwf_ifree │ │ │ │ │ -00000044 0000181c R_ARM_CALL 00000000 fftwf_ialignment_of │ │ │ │ │ -00000058 0000181c R_ARM_CALL 00000000 fftwf_ialignment_of │ │ │ │ │ -00000080 0000191c R_ARM_CALL 00000000 fftwf_mpi_dtensor_print │ │ │ │ │ -000000b0 00001a1c R_ARM_CALL 00000000 MPI_Comm_size │ │ │ │ │ -000000d4 00000403 R_ARM_REL32 00000000 .LC0 │ │ │ │ │ -000000d8 00000503 R_ARM_REL32 00000014 .LC1 │ │ │ │ │ -000000dc 00000603 R_ARM_REL32 00000020 .LC2 │ │ │ │ │ -000000f8 00001b1c R_ARM_CALL 00000000 MPI_Comm_rank │ │ │ │ │ -0000010c 00001c1c R_ARM_CALL 00000000 fftwf_mpi_total_block │ │ │ │ │ -00000128 00001d1c R_ARM_CALL 00000000 memset │ │ │ │ │ -00000150 00001e1c R_ARM_CALL 00000000 fftwf_md5puts │ │ │ │ │ -0000016c 00001f1c R_ARM_CALL 00000000 fftwf_md5int │ │ │ │ │ -00000178 0000201c R_ARM_CALL 00000000 fftwf_mpi_dtensor_md5 │ │ │ │ │ -00000184 0000211c R_ARM_CALL 00000000 fftwf_md5INT │ │ │ │ │ -00000190 00001f1c R_ARM_CALL 00000000 fftwf_md5int │ │ │ │ │ -0000019c 00001f1c R_ARM_CALL 00000000 fftwf_md5int │ │ │ │ │ -000001a8 00001a1c R_ARM_CALL 00000000 MPI_Comm_size │ │ │ │ │ -000001b4 00001f1c R_ARM_CALL 00000000 fftwf_md5int │ │ │ │ │ -000001c0 00000b03 R_ARM_REL32 00000028 .LC3 │ │ │ │ │ -000001f0 0000231c R_ARM_CALL 00000000 fftwf_mkproblem │ │ │ │ │ -00000200 00001a1c R_ARM_CALL 00000000 MPI_Comm_size │ │ │ │ │ -0000020c 0000241c R_ARM_CALL 00000000 fftwf_mpi_dtensor_canonical │ │ │ │ │ -00000270 0000251c R_ARM_CALL 00000000 MPI_Comm_dup │ │ │ │ │ -00000280 00001203 R_ARM_REL32 00000000 .data.rel.ro.local │ │ │ │ │ -000002b0 0000231c R_ARM_CALL 00000000 fftwf_mkproblem │ │ │ │ │ -000002c0 00001a1c R_ARM_CALL 00000000 MPI_Comm_size │ │ │ │ │ -000002cc 0000241c R_ARM_CALL 00000000 fftwf_mpi_dtensor_canonical │ │ │ │ │ -00000330 0000251c R_ARM_CALL 00000000 MPI_Comm_dup │ │ │ │ │ -00000338 0000151c R_ARM_CALL 00000000 fftwf_mpi_dtensor_destroy │ │ │ │ │ -00000348 00001203 R_ARM_REL32 00000000 .data.rel.ro.local │ │ │ │ │ +00000010 0000151c R_ARM_CALL 00000000 fftwf_mpi_dtensor_destroy │ │ │ │ │ +00000018 0000161c R_ARM_CALL 00000000 MPI_Comm_free │ │ │ │ │ +0000002c 0000171d R_ARM_JUMP24 00000000 fftwf_ifree │ │ │ │ │ +0000005c 0000181c R_ARM_CALL 00000000 fftwf_ialignment_of │ │ │ │ │ +0000006c 0000181c R_ARM_CALL 00000000 fftwf_ialignment_of │ │ │ │ │ +00000098 0000191c R_ARM_CALL 00000000 fftwf_mpi_dtensor_print │ │ │ │ │ +000000c8 00001a1c R_ARM_CALL 00000000 MPI_Comm_size │ │ │ │ │ +000000fc 00000403 R_ARM_REL32 00000000 .LC0 │ │ │ │ │ +00000100 00000503 R_ARM_REL32 00000014 .LC1 │ │ │ │ │ +00000104 00000603 R_ARM_REL32 00000020 .LC2 │ │ │ │ │ +00000128 00001b1c R_ARM_CALL 00000000 MPI_Comm_rank │ │ │ │ │ +0000013c 00001c1c R_ARM_CALL 00000000 fftwf_mpi_total_block │ │ │ │ │ +00000158 00001d1c R_ARM_CALL 00000000 memset │ │ │ │ │ +00000190 00001e1c R_ARM_CALL 00000000 fftwf_md5puts │ │ │ │ │ +000001ac 00001f1c R_ARM_CALL 00000000 fftwf_md5int │ │ │ │ │ +000001b8 0000201c R_ARM_CALL 00000000 fftwf_mpi_dtensor_md5 │ │ │ │ │ +000001c4 0000211c R_ARM_CALL 00000000 fftwf_md5INT │ │ │ │ │ +000001d0 00001f1c R_ARM_CALL 00000000 fftwf_md5int │ │ │ │ │ +000001dc 00001f1c R_ARM_CALL 00000000 fftwf_md5int │ │ │ │ │ +000001e8 00001a1c R_ARM_CALL 00000000 MPI_Comm_size │ │ │ │ │ +000001f4 00001f1c R_ARM_CALL 00000000 fftwf_md5int │ │ │ │ │ +00000208 00000b03 R_ARM_REL32 00000028 .LC3 │ │ │ │ │ +00000248 0000231c R_ARM_CALL 00000000 fftwf_mkproblem │ │ │ │ │ +00000258 00001a1c R_ARM_CALL 00000000 MPI_Comm_size │ │ │ │ │ +00000264 0000241c R_ARM_CALL 00000000 fftwf_mpi_dtensor_canonical │ │ │ │ │ +000002cc 0000251c R_ARM_CALL 00000000 MPI_Comm_dup │ │ │ │ │ +000002f0 00001203 R_ARM_REL32 00000000 .data.rel.ro.local │ │ │ │ │ +00000330 0000231c R_ARM_CALL 00000000 fftwf_mkproblem │ │ │ │ │ +00000340 00001a1c R_ARM_CALL 00000000 MPI_Comm_size │ │ │ │ │ +0000034c 0000241c R_ARM_CALL 00000000 fftwf_mpi_dtensor_canonical │ │ │ │ │ +000003bc 0000251c R_ARM_CALL 00000000 MPI_Comm_dup │ │ │ │ │ +000003c4 0000151c R_ARM_CALL 00000000 fftwf_mpi_dtensor_destroy │ │ │ │ │ +000003e8 00001203 R_ARM_REL32 00000000 .data.rel.ro.local │ │ │ │ │ │ │ │ │ │ -Relocation section '.rel.data.rel.ro.local' at offset 0x8d4 contains 4 entries: │ │ │ │ │ +Relocation section '.rel.data.rel.ro.local' at offset 0x974 contains 4 entries: │ │ │ │ │ Offset Info Type Sym. Value Symbol's Name │ │ │ │ │ -00000004 00000c02 R_ARM_ABS32 00000134 hash │ │ │ │ │ -00000008 00000a02 R_ARM_ABS32 000000e0 zero │ │ │ │ │ -0000000c 00000702 R_ARM_ABS32 00000024 print │ │ │ │ │ +00000004 00000c02 R_ARM_ABS32 00000170 hash │ │ │ │ │ +00000008 00000a02 R_ARM_ABS32 00000108 zero │ │ │ │ │ +0000000c 00000702 R_ARM_ABS32 00000030 print │ │ │ │ │ 00000010 00000202 R_ARM_ABS32 00000000 destroy │ │ │ │ ├── objdump --line-numbers --disassemble --demangle --reloc --no-show-raw-insn --section=.text {} │ │ │ │ │ @@ -1,125 +1,141 @@ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ Disassembly of section .text: │ │ │ │ │ │ │ │ │ │ 00000000 : │ │ │ │ │ destroy(): │ │ │ │ │ - push {r4, lr} │ │ │ │ │ + str r4, [sp, #-8]! │ │ │ │ │ mov r4, r0 │ │ │ │ │ ldr r0, [r0, #4] │ │ │ │ │ + str lr, [sp, #4] │ │ │ │ │ bl 0 │ │ │ │ │ R_ARM_CALL fftwf_mpi_dtensor_destroy │ │ │ │ │ add r0, r4, #28 │ │ │ │ │ bl 0 │ │ │ │ │ R_ARM_CALL MPI_Comm_free │ │ │ │ │ + ldr lr, [sp, #4] │ │ │ │ │ mov r0, r4 │ │ │ │ │ - pop {r4, lr} │ │ │ │ │ + ldr r4, [sp] │ │ │ │ │ + add sp, sp, #8 │ │ │ │ │ b 0 │ │ │ │ │ R_ARM_JUMP24 fftwf_ifree │ │ │ │ │ │ │ │ │ │ -00000024 : │ │ │ │ │ +00000030 : │ │ │ │ │ print(): │ │ │ │ │ - push {r4, r5, r6, r7, r8, lr} │ │ │ │ │ + strd r4, [sp, #-24]! @ 0xffffffe8 │ │ │ │ │ mov r4, r0 │ │ │ │ │ - ldr r6, [r4, #16] │ │ │ │ │ + mov r5, r1 │ │ │ │ │ ldr r0, [r0, #12] │ │ │ │ │ + strd r6, [sp, #8] │ │ │ │ │ + ldr r6, [r4, #16] │ │ │ │ │ + str r8, [sp, #16] │ │ │ │ │ + str lr, [sp, #20] │ │ │ │ │ sub sp, sp, #16 │ │ │ │ │ - mov r5, r1 │ │ │ │ │ ldr r8, [r1] │ │ │ │ │ sub r6, r6, r0 │ │ │ │ │ bl 0 │ │ │ │ │ R_ARM_CALL fftwf_ialignment_of │ │ │ │ │ - clz r6, r6 │ │ │ │ │ - lsr r6, r6, #5 │ │ │ │ │ mov r7, r0 │ │ │ │ │ ldr r0, [r4, #16] │ │ │ │ │ + clz r6, r6 │ │ │ │ │ bl 0 │ │ │ │ │ R_ARM_CALL fftwf_ialignment_of │ │ │ │ │ - ldr r1, [pc, #112] @ d4 │ │ │ │ │ + ldr r1, [pc, #132] @ fc │ │ │ │ │ + lsr r6, r6, #5 │ │ │ │ │ mov r3, r7 │ │ │ │ │ - mov r2, r6 │ │ │ │ │ - add r1, pc, r1 │ │ │ │ │ str r0, [sp] │ │ │ │ │ mov r0, r5 │ │ │ │ │ + mov r2, r6 │ │ │ │ │ + add r1, pc, r1 │ │ │ │ │ blx r8 │ │ │ │ │ ldr r0, [r4, #4] │ │ │ │ │ mov r1, r5 │ │ │ │ │ bl 0 │ │ │ │ │ R_ARM_CALL fftwf_mpi_dtensor_print │ │ │ │ │ - ldr r1, [pc, #76] @ d8 │ │ │ │ │ ldr r3, [r4, #24] │ │ │ │ │ - str r3, [sp] │ │ │ │ │ mov r0, r5 │ │ │ │ │ - ldr r3, [r4, #20] │ │ │ │ │ - ldr r2, [r4, #8] │ │ │ │ │ + ldr r1, [pc, #84] @ 100 │ │ │ │ │ + str r3, [sp] │ │ │ │ │ ldr r6, [r5] │ │ │ │ │ add r1, pc, r1 │ │ │ │ │ + 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_CALL MPI_Comm_size │ │ │ │ │ - ldr r1, [pc, #32] @ dc │ │ │ │ │ + ldr r1, [pc, #48] @ 104 │ │ │ │ │ + mov r0, r5 │ │ │ │ │ ldr r3, [r5] │ │ │ │ │ ldr r2, [sp, #12] │ │ │ │ │ add r1, pc, r1 │ │ │ │ │ - mov r0, r5 │ │ │ │ │ blx r3 │ │ │ │ │ add sp, sp, #16 │ │ │ │ │ - pop {r4, r5, r6, r7, r8, pc} │ │ │ │ │ - .word 0x00000064 │ │ │ │ │ + ldrd r4, [sp] │ │ │ │ │ + ldrd r6, [sp, #8] │ │ │ │ │ + ldr r8, [sp, #16] │ │ │ │ │ + add sp, sp, #20 │ │ │ │ │ + pop {pc} @ (ldr pc, [sp], #4) │ │ │ │ │ + .word 0x0000006c │ │ │ │ │ R_ARM_REL32 .LC0 │ │ │ │ │ - .word 0x00000030 │ │ │ │ │ + .word 0x00000048 │ │ │ │ │ R_ARM_REL32 .LC1 │ │ │ │ │ - .word 0x00000014 │ │ │ │ │ + .word 0x00000020 │ │ │ │ │ R_ARM_REL32 .LC2 │ │ │ │ │ │ │ │ │ │ -000000e0 : │ │ │ │ │ +00000108 : │ │ │ │ │ zero(): │ │ │ │ │ - push {r4, r5, r6, lr} │ │ │ │ │ - sub sp, sp, #8 │ │ │ │ │ + strd r4, [sp, #-16]! │ │ │ │ │ mov r4, r0 │ │ │ │ │ + str r6, [sp, #8] │ │ │ │ │ + str lr, [sp, #12] │ │ │ │ │ + sub sp, sp, #8 │ │ │ │ │ ldr r6, [r0, #12] │ │ │ │ │ add r1, sp, #4 │ │ │ │ │ ldr r0, [r0, #28] │ │ │ │ │ bl 0 │ │ │ │ │ R_ARM_CALL MPI_Comm_rank │ │ │ │ │ ldr r2, [sp, #4] │ │ │ │ │ - ldr r0, [r4, #4] │ │ │ │ │ mov r1, #0 │ │ │ │ │ ldr r5, [r4, #8] │ │ │ │ │ + ldr r0, [r4, #4] │ │ │ │ │ bl 0 │ │ │ │ │ R_ARM_CALL fftwf_mpi_total_block │ │ │ │ │ mul r0, r5, r0 │ │ │ │ │ cmp r0, #0 │ │ │ │ │ - ble 12c │ │ │ │ │ + ble 15c │ │ │ │ │ lsl r2, r0, #3 │ │ │ │ │ mov r1, #0 │ │ │ │ │ mov r0, r6 │ │ │ │ │ bl 0 │ │ │ │ │ R_ARM_CALL memset │ │ │ │ │ add sp, sp, #8 │ │ │ │ │ - pop {r4, r5, r6, pc} │ │ │ │ │ + ldrd r4, [sp] │ │ │ │ │ + ldr r6, [sp, #8] │ │ │ │ │ + add sp, sp, #12 │ │ │ │ │ + pop {pc} @ (ldr pc, [sp], #4) │ │ │ │ │ │ │ │ │ │ -00000134 : │ │ │ │ │ +00000170 : │ │ │ │ │ hash(): │ │ │ │ │ - push {r4, r5, lr} │ │ │ │ │ + strd r4, [sp, #-12]! │ │ │ │ │ mov r4, r1 │ │ │ │ │ - ldr r1, [pc, #124] @ 1c0 │ │ │ │ │ - sub sp, sp, #12 │ │ │ │ │ mov r5, r0 │ │ │ │ │ - add r1, pc, r1 │ │ │ │ │ + ldr r1, [pc, #132] @ 208 │ │ │ │ │ mov r0, r4 │ │ │ │ │ + str lr, [sp, #8] │ │ │ │ │ + sub sp, sp, #12 │ │ │ │ │ + add r1, pc, r1 │ │ │ │ │ bl 0 │ │ │ │ │ R_ARM_CALL fftwf_md5puts │ │ │ │ │ - ldr r3, [r5, #16] │ │ │ │ │ ldr r1, [r5, #12] │ │ │ │ │ mov r0, r4 │ │ │ │ │ + ldr r3, [r5, #16] │ │ │ │ │ sub r1, r1, r3 │ │ │ │ │ clz r1, r1 │ │ │ │ │ lsr r1, r1, #5 │ │ │ │ │ bl 0 │ │ │ │ │ R_ARM_CALL fftwf_md5int │ │ │ │ │ ldr r1, [r5, #4] │ │ │ │ │ mov r0, r4 │ │ │ │ │ @@ -133,134 +149,158 @@ │ │ │ │ │ mov r0, r4 │ │ │ │ │ bl 0 │ │ │ │ │ R_ARM_CALL fftwf_md5int │ │ │ │ │ ldr r1, [r5, #24] │ │ │ │ │ mov r0, r4 │ │ │ │ │ bl 0 │ │ │ │ │ R_ARM_CALL fftwf_md5int │ │ │ │ │ - add r1, sp, #4 │ │ │ │ │ ldr r0, [r5, #28] │ │ │ │ │ + add r1, sp, #4 │ │ │ │ │ bl 0 │ │ │ │ │ R_ARM_CALL MPI_Comm_size │ │ │ │ │ ldr r1, [sp, #4] │ │ │ │ │ mov r0, r4 │ │ │ │ │ bl 0 │ │ │ │ │ R_ARM_CALL fftwf_md5int │ │ │ │ │ add sp, sp, #12 │ │ │ │ │ - pop {r4, r5, pc} │ │ │ │ │ - .word 0x00000070 │ │ │ │ │ + ldrd r4, [sp] │ │ │ │ │ + add sp, sp, #8 │ │ │ │ │ + pop {pc} @ (ldr pc, [sp], #4) │ │ │ │ │ + .word 0x00000074 │ │ │ │ │ R_ARM_REL32 .LC3 │ │ │ │ │ │ │ │ │ │ -000001c4 : │ │ │ │ │ +0000020c : │ │ │ │ │ fftwf_mpi_mkproblem_dft(): │ │ │ │ │ - push {r4, r5, r6, r7, r8, r9, sl, lr} │ │ │ │ │ + strd r4, [sp, #-36]! @ 0xffffffdc │ │ │ │ │ + mov r5, r3 │ │ │ │ │ + strd r6, [sp, #8] │ │ │ │ │ mov r7, r1 │ │ │ │ │ - ldr r1, [pc, #172] @ 280 │ │ │ │ │ - sub sp, sp, #16 │ │ │ │ │ + ldr r1, [pc, #204] @ 2f0 │ │ │ │ │ + strd r8, [sp, #16] │ │ │ │ │ + mov r9, r2 │ │ │ │ │ + strd sl, [sp, #24] │ │ │ │ │ mov sl, r0 │ │ │ │ │ - add r1, pc, r1 │ │ │ │ │ mov r0, #32 │ │ │ │ │ - mov r6, r3 │ │ │ │ │ - mov r9, r2 │ │ │ │ │ - ldr r8, [sp, #48] @ 0x30 │ │ │ │ │ - ldr r5, [sp, #56] @ 0x38 │ │ │ │ │ + str lr, [sp, #32] │ │ │ │ │ + sub sp, sp, #20 │ │ │ │ │ + ldr r8, [sp, #56] @ 0x38 │ │ │ │ │ + add r1, pc, r1 │ │ │ │ │ + ldr r6, [sp, #64] @ 0x40 │ │ │ │ │ bl 0 │ │ │ │ │ R_ARM_CALL fftwf_mkproblem │ │ │ │ │ - mov r1, sp │ │ │ │ │ mov r4, r0 │ │ │ │ │ + mov r1, sp │ │ │ │ │ mov r0, r8 │ │ │ │ │ bl 0 │ │ │ │ │ R_ARM_CALL MPI_Comm_size │ │ │ │ │ mov r1, #1 │ │ │ │ │ mov r0, sl │ │ │ │ │ bl 0 │ │ │ │ │ R_ARM_CALL fftwf_mpi_dtensor_canonical │ │ │ │ │ - ldr r3, [sp, #52] @ 0x34 │ │ │ │ │ - tst r5, #4 │ │ │ │ │ - str r6, [r4, #16] │ │ │ │ │ - str r3, [r4, #20] │ │ │ │ │ + ldr r3, [sp, #60] @ 0x3c │ │ │ │ │ + tst r6, #4 │ │ │ │ │ stmib r4, {r0, r7, r9} │ │ │ │ │ - beq 264 │ │ │ │ │ + str r5, [r4, #16] │ │ │ │ │ + str r3, [r4, #20] │ │ │ │ │ + beq 2c0 │ │ │ │ │ ldr r3, [r0] │ │ │ │ │ - mov ip, r0 │ │ │ │ │ cmp r3, #1 │ │ │ │ │ - ble 264 │ │ │ │ │ - add lr, r0, #4 │ │ │ │ │ - ldm lr, {r0, r1, r2} │ │ │ │ │ - add r3, sp, #4 │ │ │ │ │ - add ip, ip, #16 │ │ │ │ │ - stm r3, {r0, r1, r2} │ │ │ │ │ - ldm ip, {r0, r1, r2} │ │ │ │ │ - stm lr, {r0, r1, r2} │ │ │ │ │ - ldm r3, {r0, r1, r2} │ │ │ │ │ - bic r5, r5, #4 │ │ │ │ │ - eor r5, r5, #8 │ │ │ │ │ - stm ip, {r0, r1, r2} │ │ │ │ │ + ble 2c0 │ │ │ │ │ + ldrd r2, [r0, #4] │ │ │ │ │ + bic r6, r6, #4 │ │ │ │ │ + eor r6, r6, #8 │ │ │ │ │ + ldrd sl, [r0, #16] │ │ │ │ │ + ldr ip, [r0, #24] │ │ │ │ │ + strd r2, [sp, #4] │ │ │ │ │ + ldr r2, [r0, #12] │ │ │ │ │ + strd sl, [r0, #4] │ │ │ │ │ + ldrd sl, [sp, #4] │ │ │ │ │ + str ip, [r0, #12] │ │ │ │ │ + str r2, [sp, #12] │ │ │ │ │ + strd sl, [r0, #16] │ │ │ │ │ + str r2, [r0, #24] │ │ │ │ │ add r1, r4, #28 │ │ │ │ │ mov r0, r8 │ │ │ │ │ - str r5, [r4, #24] │ │ │ │ │ + str r6, [r4, #24] │ │ │ │ │ bl 0 │ │ │ │ │ R_ARM_CALL MPI_Comm_dup │ │ │ │ │ mov r0, r4 │ │ │ │ │ - add sp, sp, #16 │ │ │ │ │ - pop {r4, r5, r6, r7, r8, r9, sl, pc} │ │ │ │ │ - .word 0x000000a0 │ │ │ │ │ + add sp, sp, #20 │ │ │ │ │ + ldrd r4, [sp] │ │ │ │ │ + ldrd r6, [sp, #8] │ │ │ │ │ + ldrd r8, [sp, #16] │ │ │ │ │ + ldrd sl, [sp, #24] │ │ │ │ │ + add sp, sp, #32 │ │ │ │ │ + pop {pc} @ (ldr pc, [sp], #4) │ │ │ │ │ + .word 0x000000a8 │ │ │ │ │ R_ARM_REL32 .data.rel.ro.local │ │ │ │ │ │ │ │ │ │ -00000284 : │ │ │ │ │ +000002f4 : │ │ │ │ │ fftwf_mpi_mkproblem_dft_d(): │ │ │ │ │ - push {r4, r5, r6, r7, r8, r9, sl, lr} │ │ │ │ │ - mov r8, r1 │ │ │ │ │ - ldr r1, [pc, #180] @ 348 │ │ │ │ │ - sub sp, sp, #16 │ │ │ │ │ + strd r4, [sp, #-32]! @ 0xffffffe0 │ │ │ │ │ mov r5, r0 │ │ │ │ │ - add r1, pc, r1 │ │ │ │ │ mov r0, #32 │ │ │ │ │ + strd r6, [sp, #8] │ │ │ │ │ mov r7, r3 │ │ │ │ │ - mov sl, r2 │ │ │ │ │ - ldr r9, [sp, #48] @ 0x30 │ │ │ │ │ + strd r8, [sp, #16] │ │ │ │ │ + mov r9, r1 │ │ │ │ │ + mov r8, r2 │ │ │ │ │ + ldr r1, [pc, #204] @ 3e8 │ │ │ │ │ + str sl, [sp, #24] │ │ │ │ │ + str lr, [sp, #28] │ │ │ │ │ + sub sp, sp, #16 │ │ │ │ │ + ldr sl, [sp, #48] @ 0x30 │ │ │ │ │ + add r1, pc, r1 │ │ │ │ │ ldr r6, [sp, #56] @ 0x38 │ │ │ │ │ bl 0 │ │ │ │ │ R_ARM_CALL fftwf_mkproblem │ │ │ │ │ - mov r1, sp │ │ │ │ │ mov r4, r0 │ │ │ │ │ - mov r0, r9 │ │ │ │ │ + mov r1, sp │ │ │ │ │ + mov r0, sl │ │ │ │ │ bl 0 │ │ │ │ │ R_ARM_CALL MPI_Comm_size │ │ │ │ │ mov r1, #1 │ │ │ │ │ mov r0, r5 │ │ │ │ │ bl 0 │ │ │ │ │ R_ARM_CALL fftwf_mpi_dtensor_canonical │ │ │ │ │ ldr r3, [sp, #52] @ 0x34 │ │ │ │ │ tst r6, #4 │ │ │ │ │ + stmib r4, {r0, r9} │ │ │ │ │ + str r8, [r4, #12] │ │ │ │ │ str r7, [r4, #16] │ │ │ │ │ str r3, [r4, #20] │ │ │ │ │ - stmib r4, {r0, r8, sl} │ │ │ │ │ - beq 324 │ │ │ │ │ + beq 3b0 │ │ │ │ │ ldr r3, [r0] │ │ │ │ │ mov ip, r0 │ │ │ │ │ cmp r3, #1 │ │ │ │ │ - ble 324 │ │ │ │ │ - add lr, r0, #4 │ │ │ │ │ - ldm lr, {r0, r1, r2} │ │ │ │ │ - add r3, sp, #4 │ │ │ │ │ - add ip, ip, #16 │ │ │ │ │ - stm r3, {r0, r1, r2} │ │ │ │ │ - ldm ip, {r0, r1, r2} │ │ │ │ │ - stm lr, {r0, r1, r2} │ │ │ │ │ - ldm r3, {r0, r1, r2} │ │ │ │ │ + ble 3b0 │ │ │ │ │ + ldrd r2, [r0, #4] │ │ │ │ │ bic r6, r6, #4 │ │ │ │ │ eor r6, r6, #8 │ │ │ │ │ - stm ip, {r0, r1, r2} │ │ │ │ │ + ldr r0, [r0, #12] │ │ │ │ │ + strd r2, [sp, #4] │ │ │ │ │ + ldrd r2, [ip, #16] │ │ │ │ │ + str r0, [sp, #12] │ │ │ │ │ + strd r2, [ip, #4] │ │ │ │ │ + ldr r3, [ip, #24] │ │ │ │ │ + str r3, [ip, #12] │ │ │ │ │ + ldrd r2, [sp, #4] │ │ │ │ │ + str r0, [ip, #24] │ │ │ │ │ + strd r2, [ip, #16] │ │ │ │ │ add r1, r4, #28 │ │ │ │ │ - mov r0, r9 │ │ │ │ │ + mov r0, sl │ │ │ │ │ str r6, [r4, #24] │ │ │ │ │ bl 0 │ │ │ │ │ R_ARM_CALL MPI_Comm_dup │ │ │ │ │ mov r0, r5 │ │ │ │ │ bl 0 │ │ │ │ │ R_ARM_CALL fftwf_mpi_dtensor_destroy │ │ │ │ │ mov r0, r4 │ │ │ │ │ add sp, sp, #16 │ │ │ │ │ - pop {r4, r5, r6, r7, r8, r9, sl, pc} │ │ │ │ │ - .word 0x000000a8 │ │ │ │ │ + ldrd r4, [sp] │ │ │ │ │ + ldrd r6, [sp, #8] │ │ │ │ │ + ldrd r8, [sp, #16] │ │ │ │ │ + ldr sl, [sp, #24] │ │ │ │ │ + add sp, sp, #28 │ │ │ │ │ + pop {pc} @ (ldr pc, [sp], #4) │ │ │ │ │ + .word 0x000000b8 │ │ │ │ │ R_ARM_REL32 .data.rel.ro.local │ │ │ ├── dft-solve.o │ │ │ │ ├── objdump --line-numbers --disassemble --demangle --reloc --no-show-raw-insn --section=.text {} │ │ │ │ │ @@ -2,10 +2,10 @@ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ Disassembly of section .text: │ │ │ │ │ │ │ │ │ │ 00000000 : │ │ │ │ │ fftwf_mpi_dft_solve(): │ │ │ │ │ ldr r2, [r1, #16] │ │ │ │ │ - ldr r3, [r0, #56] @ 0x38 │ │ │ │ │ ldr r1, [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: 2372 (bytes into file) │ │ │ │ │ + Start of section headers: 2436 (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 0x944: │ │ │ │ │ +There are 15 section headers, starting at offset 0x984: │ │ │ │ │ │ │ │ │ │ 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 000320 00 AX 0 0 4 │ │ │ │ │ - [ 2] .rel.text REL 00000000 0007d4 0000c0 08 I 12 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 000019 01 AMS 0 0 4 │ │ │ │ │ - [ 6] .data.rel.ro PROGBITS 00000000 00036d 000010 00 WA 0 0 4 │ │ │ │ │ - [ 7] .rel.data.rel.ro REL 00000000 000894 000020 08 I 12 6 4 │ │ │ │ │ - [ 8] .data.rel.ro.local PROGBITS 00000000 00037d 00000c 00 WA 0 0 4 │ │ │ │ │ - [ 9] .rel.data.rel.ro.local REL 00000000 0008b4 000008 08 I 12 8 4 │ │ │ │ │ - [10] .note.GNU-stack PROGBITS 00000000 000389 000000 00 0 0 1 │ │ │ │ │ - [11] .ARM.attributes ARM_ATTRIBUTES 00000000 000389 00002b 00 0 0 1 │ │ │ │ │ - [12] .symtab SYMTAB 00000000 0003b4 000270 10 13 20 4 │ │ │ │ │ - [13] .strtab STRTAB 00000000 000624 0001b0 00 0 0 1 │ │ │ │ │ - [14] .shstrtab STRTAB 00000000 0008bc 000087 00 0 0 1 │ │ │ │ │ + [ 1] .text PROGBITS 00000000 000034 000360 00 AX 0 0 4 │ │ │ │ │ + [ 2] .rel.text REL 00000000 000814 0000c0 08 I 12 1 4 │ │ │ │ │ + [ 3] .data PROGBITS 00000000 000394 000000 00 WA 0 0 1 │ │ │ │ │ + [ 4] .bss NOBITS 00000000 000394 000000 00 WA 0 0 1 │ │ │ │ │ + [ 5] .rodata.str1.4 PROGBITS 00000000 000394 000019 01 AMS 0 0 4 │ │ │ │ │ + [ 6] .data.rel.ro PROGBITS 00000000 0003ad 000010 00 WA 0 0 4 │ │ │ │ │ + [ 7] .rel.data.rel.ro REL 00000000 0008d4 000020 08 I 12 6 4 │ │ │ │ │ + [ 8] .data.rel.ro.local PROGBITS 00000000 0003bd 00000c 00 WA 0 0 4 │ │ │ │ │ + [ 9] .rel.data.rel.ro.local REL 00000000 0008f4 000008 08 I 12 8 4 │ │ │ │ │ + [10] .note.GNU-stack PROGBITS 00000000 0003c9 000000 00 0 0 1 │ │ │ │ │ + [11] .ARM.attributes ARM_ATTRIBUTES 00000000 0003c9 00002b 00 0 0 1 │ │ │ │ │ + [12] .symtab SYMTAB 00000000 0003f4 000270 10 13 20 4 │ │ │ │ │ + [13] .strtab STRTAB 00000000 000664 0001b0 00 0 0 1 │ │ │ │ │ + [14] .shstrtab STRTAB 00000000 0008fc 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: 0000000c 32 FUNC LOCAL DEFAULT 1 print │ │ │ │ │ 6: 00000028 0 NOTYPE LOCAL DEFAULT 1 $d │ │ │ │ │ 7: 0000002c 0 NOTYPE LOCAL DEFAULT 1 $a │ │ │ │ │ 8: 0000002c 8 FUNC LOCAL DEFAULT 1 destroy │ │ │ │ │ 9: 00000034 8 FUNC LOCAL DEFAULT 1 awake │ │ │ │ │ - 10: 0000003c 608 FUNC LOCAL DEFAULT 1 mkplan │ │ │ │ │ - 11: 00000294 0 NOTYPE LOCAL DEFAULT 1 $d │ │ │ │ │ - 12: 0000029c 0 NOTYPE LOCAL DEFAULT 1 $a │ │ │ │ │ - 13: 0000031c 0 NOTYPE LOCAL DEFAULT 1 $d │ │ │ │ │ + 10: 0000003c 648 FUNC LOCAL DEFAULT 1 mkplan │ │ │ │ │ + 11: 000002bc 0 NOTYPE LOCAL DEFAULT 1 $d │ │ │ │ │ + 12: 000002c4 0 NOTYPE LOCAL DEFAULT 1 $a │ │ │ │ │ + 13: 0000035c 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: 0000029c 88 FUNC GLOBAL DEFAULT 1 fftwf_mpi_rdft_serial_applicable │ │ │ │ │ - 35: 000002f4 44 FUNC GLOBAL DEFAULT 1 fftwf_mpi_rdft_serial_register │ │ │ │ │ + 34: 000002c4 100 FUNC GLOBAL DEFAULT 1 fftwf_mpi_rdft_serial_applicable │ │ │ │ │ + 35: 00000328 56 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,38 +1,38 @@ │ │ │ │ │ │ │ │ │ │ -Relocation section '.rel.text' at offset 0x7d4 contains 24 entries: │ │ │ │ │ +Relocation section '.rel.text' at offset 0x814 contains 24 entries: │ │ │ │ │ Offset Info Type Sym. Value Symbol's Name │ │ │ │ │ 00000028 00000403 R_ARM_REL32 00000000 .LC0 │ │ │ │ │ 00000030 0000141d R_ARM_JUMP24 00000000 fftwf_plan_destroy_internal │ │ │ │ │ 00000038 0000151d R_ARM_JUMP24 00000000 fftwf_plan_awake │ │ │ │ │ -00000068 0000161c R_ARM_CALL 00000000 fftwf_mpi_is_local │ │ │ │ │ -00000088 0000171c R_ARM_CALL 00000000 MPI_Comm_rank │ │ │ │ │ -000000b0 0000181c R_ARM_CALL 00000000 fftwf_mktensor_1d │ │ │ │ │ -000000bc 0000191c R_ARM_CALL 00000000 fftwf_mkproblem_rdft_0_d │ │ │ │ │ -000000c8 00001a1c R_ARM_CALL 00000000 fftwf_mkplan_d │ │ │ │ │ -000000dc 00001b1c R_ARM_CALL 00000000 fftwf_mpi_any_true │ │ │ │ │ -000000fc 00001c1c R_ARM_CALL 00000000 fftwf_mkplan_rdft │ │ │ │ │ -00000110 00001d1c R_ARM_CALL 00000000 fftwf_ops_cpy │ │ │ │ │ -0000012c 00001e1c R_ARM_CALL 00000000 fftwf_mktensor │ │ │ │ │ -0000013c 00001f1c R_ARM_CALL 00000000 fftwf_malloc_plain │ │ │ │ │ -0000021c 0000181c R_ARM_CALL 00000000 fftwf_mktensor_1d │ │ │ │ │ -00000234 0000201c R_ARM_CALL 00000000 fftwf_mkproblem_rdft_d │ │ │ │ │ -00000240 00001a1c R_ARM_CALL 00000000 fftwf_mkplan_d │ │ │ │ │ -0000024c 0000211c R_ARM_CALL 00000000 fftwf_ifree0 │ │ │ │ │ -0000025c 0000161c R_ARM_CALL 00000000 fftwf_mpi_is_local │ │ │ │ │ -00000298 00000e03 R_ARM_REL32 00000000 .data.rel.ro │ │ │ │ │ -000002bc 0000161c R_ARM_CALL 00000000 fftwf_mpi_is_local │ │ │ │ │ -000002e0 0000161c R_ARM_CALL 00000000 fftwf_mpi_is_local │ │ │ │ │ -00000308 0000241c R_ARM_CALL 00000000 fftwf_mksolver │ │ │ │ │ -00000318 0000251d R_ARM_JUMP24 00000000 fftwf_solver_register │ │ │ │ │ -0000031c 00001103 R_ARM_REL32 00000000 .data.rel.ro.local │ │ │ │ │ +0000008c 0000161c R_ARM_CALL 00000000 fftwf_mpi_is_local │ │ │ │ │ +000000ac 0000171c R_ARM_CALL 00000000 MPI_Comm_rank │ │ │ │ │ +000000d4 0000181c R_ARM_CALL 00000000 fftwf_mktensor_1d │ │ │ │ │ +000000e0 0000191c R_ARM_CALL 00000000 fftwf_mkproblem_rdft_0_d │ │ │ │ │ +000000ec 00001a1c R_ARM_CALL 00000000 fftwf_mkplan_d │ │ │ │ │ +00000100 00001b1c R_ARM_CALL 00000000 fftwf_mpi_any_true │ │ │ │ │ +00000120 00001c1c R_ARM_CALL 00000000 fftwf_mkplan_rdft │ │ │ │ │ +00000134 00001d1c R_ARM_CALL 00000000 fftwf_ops_cpy │ │ │ │ │ +00000150 00001e1c R_ARM_CALL 00000000 fftwf_mktensor │ │ │ │ │ +00000160 00001f1c R_ARM_CALL 00000000 fftwf_malloc_plain │ │ │ │ │ +00000244 0000181c R_ARM_CALL 00000000 fftwf_mktensor_1d │ │ │ │ │ +0000025c 0000201c R_ARM_CALL 00000000 fftwf_mkproblem_rdft_d │ │ │ │ │ +00000268 00001a1c R_ARM_CALL 00000000 fftwf_mkplan_d │ │ │ │ │ +00000274 0000211c R_ARM_CALL 00000000 fftwf_ifree0 │ │ │ │ │ +00000284 0000161c R_ARM_CALL 00000000 fftwf_mpi_is_local │ │ │ │ │ +000002c0 00000e03 R_ARM_REL32 00000000 .data.rel.ro │ │ │ │ │ +000002e8 0000161c R_ARM_CALL 00000000 fftwf_mpi_is_local │ │ │ │ │ +00000314 0000161c R_ARM_CALL 00000000 fftwf_mpi_is_local │ │ │ │ │ +00000340 0000241c R_ARM_CALL 00000000 fftwf_mksolver │ │ │ │ │ +00000358 0000251d R_ARM_JUMP24 00000000 fftwf_solver_register │ │ │ │ │ +0000035c 00001103 R_ARM_REL32 00000000 .data.rel.ro.local │ │ │ │ │ │ │ │ │ │ -Relocation section '.rel.data.rel.ro' at offset 0x894 contains 4 entries: │ │ │ │ │ +Relocation section '.rel.data.rel.ro' at offset 0x8d4 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 00000034 awake │ │ │ │ │ 00000008 00000502 R_ARM_ABS32 0000000c print │ │ │ │ │ 0000000c 00000802 R_ARM_ABS32 0000002c destroy │ │ │ │ │ │ │ │ │ │ -Relocation section '.rel.data.rel.ro.local' at offset 0x8b4 contains 1 entry: │ │ │ │ │ +Relocation section '.rel.data.rel.ro.local' at offset 0x8f4 contains 1 entry: │ │ │ │ │ Offset Info Type Sym. Value Symbol's Name │ │ │ │ │ 00000004 00000a02 R_ARM_ABS32 0000003c mkplan │ │ │ │ ├── objdump --line-numbers --disassemble --demangle --reloc --no-show-raw-insn --section=.text {} │ │ │ │ │ @@ -7,16 +7,16 @@ │ │ │ │ │ apply(): │ │ │ │ │ ldr r0, [r0, #64] @ 0x40 │ │ │ │ │ ldr r3, [r0, #56] @ 0x38 │ │ │ │ │ bx r3 │ │ │ │ │ │ │ │ │ │ 0000000c : │ │ │ │ │ print(): │ │ │ │ │ - mov r2, r0 │ │ │ │ │ ldr r3, [r1] │ │ │ │ │ + mov r2, r0 │ │ │ │ │ mov r0, r1 │ │ │ │ │ ldr r1, [pc, #8] @ 28 │ │ │ │ │ ldr r2, [r2, #64] @ 0x40 │ │ │ │ │ add r1, pc, r1 │ │ │ │ │ bx r3 │ │ │ │ │ .word 0x00000000 │ │ │ │ │ R_ARM_REL32 .LC0 │ │ │ │ │ @@ -31,219 +31,235 @@ │ │ │ │ │ awake(): │ │ │ │ │ ldr r0, [r0, #64] @ 0x40 │ │ │ │ │ b 0 │ │ │ │ │ R_ARM_JUMP24 fftwf_plan_awake │ │ │ │ │ │ │ │ │ │ 0000003c : │ │ │ │ │ mkplan(): │ │ │ │ │ - push {r4, r5, r6, r7, r8, r9, sl, lr} │ │ │ │ │ + strd r4, [sp, #-32]! @ 0xffffffe0 │ │ │ │ │ mov r4, r1 │ │ │ │ │ ldr r1, [r1, #20] │ │ │ │ │ + strd r6, [sp, #8] │ │ │ │ │ + strd r8, [sp, #16] │ │ │ │ │ + str sl, [sp, #24] │ │ │ │ │ + str lr, [sp, #28] │ │ │ │ │ sub sp, sp, #16 │ │ │ │ │ cmp r1, #0 │ │ │ │ │ - beq 60 │ │ │ │ │ + beq 84 │ │ │ │ │ mov r0, #0 │ │ │ │ │ add sp, sp, #16 │ │ │ │ │ - pop {r4, r5, r6, r7, r8, r9, sl, pc} │ │ │ │ │ + ldrd r4, [sp] │ │ │ │ │ + ldrd r6, [sp, #8] │ │ │ │ │ + ldrd r8, [sp, #16] │ │ │ │ │ + ldr sl, [sp, #24] │ │ │ │ │ + add sp, sp, #28 │ │ │ │ │ + pop {pc} @ (ldr pc, [sp], #4) │ │ │ │ │ ldr r0, [r4, #4] │ │ │ │ │ mov r5, r2 │ │ │ │ │ bl 0 │ │ │ │ │ R_ARM_CALL fftwf_mpi_is_local │ │ │ │ │ cmp r0, #0 │ │ │ │ │ - bne 254 │ │ │ │ │ + bne 27c │ │ │ │ │ ldr r3, [r4, #8] │ │ │ │ │ cmp r3, #0 │ │ │ │ │ - bne 54 │ │ │ │ │ + bne 64 │ │ │ │ │ ldr r0, [r4, #24] │ │ │ │ │ add r1, sp, #12 │ │ │ │ │ bl 0 │ │ │ │ │ R_ARM_CALL MPI_Comm_rank │ │ │ │ │ ldr r3, [sp, #12] │ │ │ │ │ cmp r3, #0 │ │ │ │ │ - bne a4 │ │ │ │ │ + bne c8 │ │ │ │ │ ldr r3, [r4, #8] │ │ │ │ │ cmp r3, #0 │ │ │ │ │ - bgt 120 │ │ │ │ │ + bgt 140 │ │ │ │ │ mov r2, #0 │ │ │ │ │ mov r1, r2 │ │ │ │ │ mov r0, r2 │ │ │ │ │ bl 0 │ │ │ │ │ R_ARM_CALL fftwf_mktensor_1d │ │ │ │ │ - ldr r2, [r4, #16] │ │ │ │ │ ldr r1, [r4, #12] │ │ │ │ │ + ldr r2, [r4, #16] │ │ │ │ │ bl 0 │ │ │ │ │ R_ARM_CALL fftwf_mkproblem_rdft_0_d │ │ │ │ │ mov r1, r0 │ │ │ │ │ mov r0, r5 │ │ │ │ │ bl 0 │ │ │ │ │ R_ARM_CALL fftwf_mkplan_d │ │ │ │ │ mov r5, r0 │ │ │ │ │ - ldr r1, [r4, #24] │ │ │ │ │ clz r0, r5 │ │ │ │ │ + ldr r1, [r4, #24] │ │ │ │ │ lsr r0, r0, #5 │ │ │ │ │ bl 0 │ │ │ │ │ R_ARM_CALL fftwf_mpi_any_true │ │ │ │ │ cmp r0, #0 │ │ │ │ │ - bne 54 │ │ │ │ │ - ldr r2, [pc, #420] @ 294 │ │ │ │ │ - ldr r1, [pc, #420] @ 298 │ │ │ │ │ + bne 64 │ │ │ │ │ + ldr r2, [pc, #424] @ 2bc │ │ │ │ │ + mov r0, #72 @ 0x48 │ │ │ │ │ + ldr r1, [pc, #420] @ 2c0 │ │ │ │ │ add r2, pc, r2 │ │ │ │ │ add r1, pc, r1 │ │ │ │ │ - mov r0, #72 @ 0x48 │ │ │ │ │ bl 0 │ │ │ │ │ R_ARM_CALL fftwf_mkplan_rdft │ │ │ │ │ mov r4, r0 │ │ │ │ │ add r1, r0, #8 │ │ │ │ │ str r5, [r0, #64] @ 0x40 │ │ │ │ │ add r0, r5, #8 │ │ │ │ │ bl 0 │ │ │ │ │ R_ARM_CALL fftwf_ops_cpy │ │ │ │ │ mov r0, r4 │ │ │ │ │ - add sp, sp, #16 │ │ │ │ │ - pop {r4, r5, r6, r7, r8, r9, sl, pc} │ │ │ │ │ + b 68 │ │ │ │ │ ldr r3, [r4, #4] │ │ │ │ │ ldr r9, [r3] │ │ │ │ │ + lsl r8, r9, #2 │ │ │ │ │ mov r0, r9 │ │ │ │ │ bl 0 │ │ │ │ │ R_ARM_CALL fftwf_mktensor │ │ │ │ │ - lsl r8, r9, #2 │ │ │ │ │ mov r7, r0 │ │ │ │ │ mov r0, r8 │ │ │ │ │ + add sl, r9, r9, lsl #1 │ │ │ │ │ bl 0 │ │ │ │ │ R_ARM_CALL fftwf_malloc_plain │ │ │ │ │ - sub lr, r9, #1 │ │ │ │ │ ldr r2, [r4, #4] │ │ │ │ │ + sub lr, r9, #1 │ │ │ │ │ + mov r6, r0 │ │ │ │ │ add r1, lr, lr, lsl #1 │ │ │ │ │ - add r3, r7, r1, lsl #2 │ │ │ │ │ - add r1, r2, r1, lsl #2 │ │ │ │ │ - ldr r1, [r1, #4] │ │ │ │ │ cmp lr, #0 │ │ │ │ │ mov ip, lr │ │ │ │ │ - mov r6, r0 │ │ │ │ │ ldr r0, [r4, #8] │ │ │ │ │ - str r0, [r3, #12] │ │ │ │ │ - add r3, r9, r9, lsl #1 │ │ │ │ │ - lsl sl, r3, #2 │ │ │ │ │ - add r3, r7, r3, lsl #2 │ │ │ │ │ + lsl sl, sl, #2 │ │ │ │ │ + lsl r1, r1, #2 │ │ │ │ │ + add r3, r7, r1 │ │ │ │ │ + add r1, r2, r1 │ │ │ │ │ + ldr r1, [r1, #4] │ │ │ │ │ addgt r2, r2, sl │ │ │ │ │ - str r0, [r3, #-4] │ │ │ │ │ + str r0, [r3, #12] │ │ │ │ │ + add r3, r7, sl │ │ │ │ │ str r1, [r3, #-8] │ │ │ │ │ - ble 26c │ │ │ │ │ + str r0, [r3, #-4] │ │ │ │ │ + ble 294 │ │ │ │ │ mul r0, r1, r0 │ │ │ │ │ subs ip, ip, #1 │ │ │ │ │ - str r0, [r3, #-12] │ │ │ │ │ - str r0, [r3, #-16] │ │ │ │ │ - ldr r1, [r2, #-20] @ 0xffffffec │ │ │ │ │ - str r1, [r3, #-20] @ 0xffffffec │ │ │ │ │ - sub r2, r2, #12 │ │ │ │ │ sub r3, r3, #12 │ │ │ │ │ - bne 188 │ │ │ │ │ + sub r2, r2, #12 │ │ │ │ │ + str r0, [r3, #-4] │ │ │ │ │ + str r0, [r3] │ │ │ │ │ + ldr r1, [r2, #-8] │ │ │ │ │ + str r1, [r3, #-8] │ │ │ │ │ + bne 1ac │ │ │ │ │ cmp lr, #8 │ │ │ │ │ - bls 274 │ │ │ │ │ + bls 29c │ │ │ │ │ add r3, r4, #28 │ │ │ │ │ - orr r3, r6, r3 │ │ │ │ │ add r2, r4, #32 │ │ │ │ │ + orr r3, r6, r3 │ │ │ │ │ subs r2, r6, r2 │ │ │ │ │ and r3, r3, #7 │ │ │ │ │ movne r2, #1 │ │ │ │ │ cmp r3, #0 │ │ │ │ │ movne r2, #0 │ │ │ │ │ cmp r2, #0 │ │ │ │ │ - beq 274 │ │ │ │ │ + beq 29c │ │ │ │ │ lsr ip, r9, #1 │ │ │ │ │ add r0, r4, #20 │ │ │ │ │ - add ip, r6, ip, lsl #3 │ │ │ │ │ mov r1, r6 │ │ │ │ │ + add ip, r6, ip, lsl #3 │ │ │ │ │ ldrd r2, [r0, #8]! │ │ │ │ │ strd r2, [r1], #8 │ │ │ │ │ cmp r1, ip │ │ │ │ │ - bne 1ec │ │ │ │ │ + bne 210 │ │ │ │ │ bic r3, r9, #1 │ │ │ │ │ cmp r9, r3 │ │ │ │ │ - addne r2, r4, r3, lsl #2 │ │ │ │ │ - ldrne r2, [r2, #28] │ │ │ │ │ - strne r2, [r6, r3, lsl #2] │ │ │ │ │ + beq 238 │ │ │ │ │ + add r2, r4, r3, lsl #2 │ │ │ │ │ + ldr r2, [r2, #28] │ │ │ │ │ + str r2, [r6, r3, lsl #2] │ │ │ │ │ ldr r0, [r4, #8] │ │ │ │ │ mov r2, #1 │ │ │ │ │ mov r1, r2 │ │ │ │ │ bl 0 │ │ │ │ │ R_ARM_CALL fftwf_mktensor_1d │ │ │ │ │ - str r6, [sp] │ │ │ │ │ - ldr r3, [r4, #16] │ │ │ │ │ - ldr r2, [r4, #12] │ │ │ │ │ mov r1, r0 │ │ │ │ │ mov r0, r7 │ │ │ │ │ + str r6, [sp] │ │ │ │ │ + ldr r2, [r4, #12] │ │ │ │ │ + ldr r3, [r4, #16] │ │ │ │ │ bl 0 │ │ │ │ │ R_ARM_CALL fftwf_mkproblem_rdft_d │ │ │ │ │ mov r1, r0 │ │ │ │ │ mov r0, r5 │ │ │ │ │ bl 0 │ │ │ │ │ R_ARM_CALL fftwf_mkplan_d │ │ │ │ │ mov r5, r0 │ │ │ │ │ mov r0, r6 │ │ │ │ │ bl 0 │ │ │ │ │ R_ARM_CALL fftwf_ifree0 │ │ │ │ │ - b d0 │ │ │ │ │ + b f4 │ │ │ │ │ ldr r0, [r4, #4] │ │ │ │ │ mov r1, #1 │ │ │ │ │ bl 0 │ │ │ │ │ R_ARM_CALL fftwf_mpi_is_local │ │ │ │ │ cmp r0, #0 │ │ │ │ │ - beq 74 │ │ │ │ │ - b 80 │ │ │ │ │ + beq 98 │ │ │ │ │ + b a4 │ │ │ │ │ cmp r9, #1 │ │ │ │ │ - bne 214 │ │ │ │ │ - add r3, r4, #24 │ │ │ │ │ - sub r2, r6, #4 │ │ │ │ │ - add r8, r3, r8 │ │ │ │ │ - ldr r1, [r3, #4]! │ │ │ │ │ - str r1, [r2, #4]! │ │ │ │ │ - cmp r3, r8 │ │ │ │ │ - bne 280 │ │ │ │ │ - b 210 │ │ │ │ │ - .word 0xffffff08 │ │ │ │ │ + bne 23c │ │ │ │ │ + add r2, r4, #24 │ │ │ │ │ + mov r3, r6 │ │ │ │ │ + add r8, r8, r6 │ │ │ │ │ + ldr r1, [r2, #4]! │ │ │ │ │ + str r1, [r3], #4 │ │ │ │ │ + cmp r8, r3 │ │ │ │ │ + bne 2a8 │ │ │ │ │ + b 238 │ │ │ │ │ + .word 0xfffffee0 │ │ │ │ │ .word 0x0000019c │ │ │ │ │ R_ARM_REL32 .data.rel.ro │ │ │ │ │ │ │ │ │ │ -0000029c : │ │ │ │ │ +000002c4 : │ │ │ │ │ fftwf_mpi_rdft_serial_applicable(): │ │ │ │ │ ldr r1, [r0, #20] │ │ │ │ │ cmp r1, #0 │ │ │ │ │ - beq 2b0 │ │ │ │ │ + beq 2d8 │ │ │ │ │ mov r0, #0 │ │ │ │ │ bx lr │ │ │ │ │ - push {r4, lr} │ │ │ │ │ + str r4, [sp, #-8]! │ │ │ │ │ mov r4, r0 │ │ │ │ │ ldr r0, [r0, #4] │ │ │ │ │ + str lr, [sp, #4] │ │ │ │ │ bl 0 │ │ │ │ │ R_ARM_CALL fftwf_mpi_is_local │ │ │ │ │ cmp r0, #0 │ │ │ │ │ - bne 2d8 │ │ │ │ │ + bne 30c │ │ │ │ │ ldr r0, [r4, #8] │ │ │ │ │ clz r0, r0 │ │ │ │ │ lsr r0, r0, #5 │ │ │ │ │ - pop {r4, pc} │ │ │ │ │ + ldr r4, [sp] │ │ │ │ │ + add sp, sp, #4 │ │ │ │ │ + pop {pc} @ (ldr pc, [sp], #4) │ │ │ │ │ ldr r0, [r4, #4] │ │ │ │ │ mov r1, #1 │ │ │ │ │ bl 0 │ │ │ │ │ R_ARM_CALL fftwf_mpi_is_local │ │ │ │ │ cmp r0, #0 │ │ │ │ │ - beq 2c8 │ │ │ │ │ - mov r0, #1 │ │ │ │ │ - pop {r4, pc} │ │ │ │ │ + movne r0, #1 │ │ │ │ │ + bne 300 │ │ │ │ │ + b 2f4 │ │ │ │ │ │ │ │ │ │ -000002f4 : │ │ │ │ │ +00000328 : │ │ │ │ │ fftwf_mpi_rdft_serial_register(): │ │ │ │ │ - ldr r1, [pc, #32] @ 31c │ │ │ │ │ - push {r4, lr} │ │ │ │ │ - add r1, pc, r1 │ │ │ │ │ + ldr r1, [pc, #44] @ 35c │ │ │ │ │ + str r4, [sp, #-8]! │ │ │ │ │ mov r4, r0 │ │ │ │ │ mov r0, #8 │ │ │ │ │ + str lr, [sp, #4] │ │ │ │ │ + add r1, pc, r1 │ │ │ │ │ bl 0 │ │ │ │ │ R_ARM_CALL fftwf_mksolver │ │ │ │ │ + ldr lr, [sp, #4] │ │ │ │ │ mov r1, r0 │ │ │ │ │ mov r0, r4 │ │ │ │ │ - pop {r4, lr} │ │ │ │ │ + ldr r4, [sp] │ │ │ │ │ + add sp, sp, #8 │ │ │ │ │ b 0 │ │ │ │ │ R_ARM_JUMP24 fftwf_solver_register │ │ │ │ │ .word 0x00000018 │ │ │ │ │ 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: 3000 (bytes into file) │ │ │ │ │ + Start of section headers: 3128 (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 0xbb8: │ │ │ │ │ +There are 15 section headers, starting at offset 0xc38: │ │ │ │ │ │ │ │ │ │ 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 0004c0 00 AX 0 0 4 │ │ │ │ │ - [ 2] .rel.text REL 00000000 000a00 000108 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 00002b 01 AMS 0 0 4 │ │ │ │ │ - [ 6] .data.rel.ro PROGBITS 00000000 00051f 000010 00 WA 0 0 4 │ │ │ │ │ - [ 7] .rel.data.rel.ro REL 00000000 000b08 000020 08 I 12 6 4 │ │ │ │ │ - [ 8] .data.rel.ro.local PROGBITS 00000000 00052f 00000c 00 WA 0 0 4 │ │ │ │ │ - [ 9] .rel.data.rel.ro.local REL 00000000 000b28 000008 08 I 12 8 4 │ │ │ │ │ - [10] .note.GNU-stack PROGBITS 00000000 00053b 000000 00 0 0 1 │ │ │ │ │ - [11] .ARM.attributes ARM_ATTRIBUTES 00000000 00053b 00002b 00 0 0 1 │ │ │ │ │ - [12] .symtab SYMTAB 00000000 000568 0002b0 10 13 22 4 │ │ │ │ │ - [13] .strtab STRTAB 00000000 000818 0001e7 00 0 0 1 │ │ │ │ │ - [14] .shstrtab STRTAB 00000000 000b30 000087 00 0 0 1 │ │ │ │ │ + [ 1] .text PROGBITS 00000000 000034 000540 00 AX 0 0 4 │ │ │ │ │ + [ 2] .rel.text REL 00000000 000a80 000108 08 I 12 1 4 │ │ │ │ │ + [ 3] .data PROGBITS 00000000 000574 000000 00 WA 0 0 1 │ │ │ │ │ + [ 4] .bss NOBITS 00000000 000574 000000 00 WA 0 0 1 │ │ │ │ │ + [ 5] .rodata.str1.4 PROGBITS 00000000 000574 00002b 01 AMS 0 0 4 │ │ │ │ │ + [ 6] .data.rel.ro PROGBITS 00000000 00059f 000010 00 WA 0 0 4 │ │ │ │ │ + [ 7] .rel.data.rel.ro REL 00000000 000b88 000020 08 I 12 6 4 │ │ │ │ │ + [ 8] .data.rel.ro.local PROGBITS 00000000 0005af 00000c 00 WA 0 0 4 │ │ │ │ │ + [ 9] .rel.data.rel.ro.local REL 00000000 000ba8 000008 08 I 12 8 4 │ │ │ │ │ + [10] .note.GNU-stack PROGBITS 00000000 0005bb 000000 00 0 0 1 │ │ │ │ │ + [11] .ARM.attributes ARM_ATTRIBUTES 00000000 0005bb 00002b 00 0 0 1 │ │ │ │ │ + [12] .symtab SYMTAB 00000000 0005e8 0002b0 10 13 22 4 │ │ │ │ │ + [13] .strtab STRTAB 00000000 000898 0001e7 00 0 0 1 │ │ │ │ │ + [14] .shstrtab STRTAB 00000000 000bb0 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: 00000000 0 NOTYPE LOCAL DEFAULT 1 $a │ │ │ │ │ - 2: 00000000 80 FUNC LOCAL DEFAULT 1 apply │ │ │ │ │ + 2: 00000000 100 FUNC LOCAL DEFAULT 1 apply │ │ │ │ │ 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: 00000050 96 FUNC LOCAL DEFAULT 1 print │ │ │ │ │ - 8: 000000a4 0 NOTYPE LOCAL DEFAULT 1 $d │ │ │ │ │ - 9: 000000b0 0 NOTYPE LOCAL DEFAULT 1 $a │ │ │ │ │ - 10: 000000b0 28 FUNC LOCAL DEFAULT 1 destroy │ │ │ │ │ - 11: 000000cc 888 FUNC LOCAL DEFAULT 1 mkplan │ │ │ │ │ - 12: 0000043c 0 NOTYPE LOCAL DEFAULT 1 $d │ │ │ │ │ - 13: 00000444 0 NOTYPE LOCAL DEFAULT 1 $a │ │ │ │ │ - 14: 00000444 36 FUNC LOCAL DEFAULT 1 awake │ │ │ │ │ - 15: 000004bc 0 NOTYPE LOCAL DEFAULT 1 $d │ │ │ │ │ + 7: 00000064 108 FUNC LOCAL DEFAULT 1 print │ │ │ │ │ + 8: 000000c4 0 NOTYPE LOCAL DEFAULT 1 $d │ │ │ │ │ + 9: 000000d0 0 NOTYPE LOCAL DEFAULT 1 $a │ │ │ │ │ + 10: 000000d0 40 FUNC LOCAL DEFAULT 1 destroy │ │ │ │ │ + 11: 000000f8 932 FUNC LOCAL DEFAULT 1 mkplan │ │ │ │ │ + 12: 00000494 0 NOTYPE LOCAL DEFAULT 1 $d │ │ │ │ │ + 13: 0000049c 0 NOTYPE LOCAL DEFAULT 1 $a │ │ │ │ │ + 14: 0000049c 56 FUNC LOCAL DEFAULT 1 awake │ │ │ │ │ + 15: 0000053c 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: 00000468 88 FUNC GLOBAL DEFAULT 1 fftwf_mpi_rdft_rank_geq2_register │ │ │ │ │ + 39: 000004d4 108 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,47 +1,47 @@ │ │ │ │ │ │ │ │ │ │ -Relocation section '.rel.text' at offset 0xa00 contains 33 entries: │ │ │ │ │ +Relocation section '.rel.text' at offset 0xa80 contains 33 entries: │ │ │ │ │ Offset Info Type Sym. Value Symbol's Name │ │ │ │ │ -000000a4 00000503 R_ARM_REL32 00000004 .LC1 │ │ │ │ │ -000000a8 00000603 R_ARM_REL32 00000008 .LC2 │ │ │ │ │ -000000ac 00000403 R_ARM_REL32 00000000 .LC0 │ │ │ │ │ -000000bc 0000161c R_ARM_CALL 00000000 fftwf_plan_destroy_internal │ │ │ │ │ -000000c8 0000161d R_ARM_JUMP24 00000000 fftwf_plan_destroy_internal │ │ │ │ │ -00000138 0000171c R_ARM_CALL 00000000 fftwf_mpi_is_local_after │ │ │ │ │ -00000150 0000171c R_ARM_CALL 00000000 fftwf_mpi_is_local_after │ │ │ │ │ -000001a0 0000181c R_ARM_CALL 00000000 MPI_Comm_rank │ │ │ │ │ -000001ac 0000191c R_ARM_CALL 00000000 MPI_Comm_size │ │ │ │ │ -000001bc 00001a1c R_ARM_CALL 00000000 fftwf_mktensor │ │ │ │ │ -000002b8 00001b1c R_ARM_CALL 00000000 fftwf_tensor_sz │ │ │ │ │ -000002d8 00001c1c R_ARM_CALL 00000000 fftwf_mpi_block │ │ │ │ │ -000002f0 00001d1c R_ARM_CALL 00000000 fftwf_mktensor_2d │ │ │ │ │ -0000030c 00001e1c R_ARM_CALL 00000000 fftwf_mkproblem_rdft_d │ │ │ │ │ -00000318 00001f1c R_ARM_CALL 00000000 fftwf_mkplan_d │ │ │ │ │ -0000032c 0000201c R_ARM_CALL 00000000 fftwf_mpi_any_true │ │ │ │ │ -0000033c 0000211c R_ARM_CALL 00000000 fftwf_mpi_mkdtensor │ │ │ │ │ -00000384 0000221c R_ARM_CALL 00000000 fftwf_mpi_mkproblem_rdft_d │ │ │ │ │ -00000390 00001f1c R_ARM_CALL 00000000 fftwf_mkplan_d │ │ │ │ │ -000003a4 0000201c R_ARM_CALL 00000000 fftwf_mpi_any_true │ │ │ │ │ -000003c4 0000231c R_ARM_CALL 00000000 fftwf_mkplan_rdft │ │ │ │ │ -000003f8 0000241c R_ARM_CALL 00000000 fftwf_ops_add │ │ │ │ │ -00000410 0000161c R_ARM_CALL 00000000 fftwf_plan_destroy_internal │ │ │ │ │ -00000418 0000161c R_ARM_CALL 00000000 fftwf_plan_destroy_internal │ │ │ │ │ -0000042c 0000251c R_ARM_CALL 00000000 fftwf_mpi_rdft_serial_applicable │ │ │ │ │ -00000440 00001003 R_ARM_REL32 00000000 .data.rel.ro │ │ │ │ │ -00000454 0000261c R_ARM_CALL 00000000 fftwf_plan_awake │ │ │ │ │ -00000464 0000261d R_ARM_JUMP24 00000000 fftwf_plan_awake │ │ │ │ │ -00000480 0000281c R_ARM_CALL 00000000 fftwf_mksolver │ │ │ │ │ -00000494 0000291c R_ARM_CALL 00000000 fftwf_solver_register │ │ │ │ │ -000004a0 0000281c R_ARM_CALL 00000000 fftwf_mksolver │ │ │ │ │ -000004b8 0000291d R_ARM_JUMP24 00000000 fftwf_solver_register │ │ │ │ │ -000004bc 00001303 R_ARM_REL32 00000000 .data.rel.ro.local │ │ │ │ │ +000000c4 00000503 R_ARM_REL32 00000004 .LC1 │ │ │ │ │ +000000c8 00000603 R_ARM_REL32 00000008 .LC2 │ │ │ │ │ +000000cc 00000403 R_ARM_REL32 00000000 .LC0 │ │ │ │ │ +000000e0 0000161c R_ARM_CALL 00000000 fftwf_plan_destroy_internal │ │ │ │ │ +000000f4 0000161d R_ARM_JUMP24 00000000 fftwf_plan_destroy_internal │ │ │ │ │ +00000188 0000171c R_ARM_CALL 00000000 fftwf_mpi_is_local_after │ │ │ │ │ +000001a0 0000171c R_ARM_CALL 00000000 fftwf_mpi_is_local_after │ │ │ │ │ +000001f0 0000181c R_ARM_CALL 00000000 MPI_Comm_rank │ │ │ │ │ +000001fc 0000191c R_ARM_CALL 00000000 MPI_Comm_size │ │ │ │ │ +0000020c 00001a1c R_ARM_CALL 00000000 fftwf_mktensor │ │ │ │ │ +00000318 00001b1c R_ARM_CALL 00000000 fftwf_tensor_sz │ │ │ │ │ +00000334 00001c1c R_ARM_CALL 00000000 fftwf_mpi_block │ │ │ │ │ +0000034c 00001d1c R_ARM_CALL 00000000 fftwf_mktensor_2d │ │ │ │ │ +00000368 00001e1c R_ARM_CALL 00000000 fftwf_mkproblem_rdft_d │ │ │ │ │ +00000374 00001f1c R_ARM_CALL 00000000 fftwf_mkplan_d │ │ │ │ │ +00000388 0000201c R_ARM_CALL 00000000 fftwf_mpi_any_true │ │ │ │ │ +00000398 0000211c R_ARM_CALL 00000000 fftwf_mpi_mkdtensor │ │ │ │ │ +000003e0 0000221c R_ARM_CALL 00000000 fftwf_mpi_mkproblem_rdft_d │ │ │ │ │ +000003ec 00001f1c R_ARM_CALL 00000000 fftwf_mkplan_d │ │ │ │ │ +00000400 0000201c R_ARM_CALL 00000000 fftwf_mpi_any_true │ │ │ │ │ +00000420 0000231c R_ARM_CALL 00000000 fftwf_mkplan_rdft │ │ │ │ │ +00000454 0000241c R_ARM_CALL 00000000 fftwf_ops_add │ │ │ │ │ +00000468 0000161c R_ARM_CALL 00000000 fftwf_plan_destroy_internal │ │ │ │ │ +00000470 0000161c R_ARM_CALL 00000000 fftwf_plan_destroy_internal │ │ │ │ │ +00000484 0000251c R_ARM_CALL 00000000 fftwf_mpi_rdft_serial_applicable │ │ │ │ │ +00000498 00001003 R_ARM_REL32 00000000 .data.rel.ro │ │ │ │ │ +000004b4 0000261c R_ARM_CALL 00000000 fftwf_plan_awake │ │ │ │ │ +000004d0 0000261d R_ARM_JUMP24 00000000 fftwf_plan_awake │ │ │ │ │ +000004f4 0000281c R_ARM_CALL 00000000 fftwf_mksolver │ │ │ │ │ +00000508 0000291c R_ARM_CALL 00000000 fftwf_solver_register │ │ │ │ │ +00000514 0000281c R_ARM_CALL 00000000 fftwf_mksolver │ │ │ │ │ +00000538 0000291d R_ARM_JUMP24 00000000 fftwf_solver_register │ │ │ │ │ +0000053c 00001303 R_ARM_REL32 00000000 .data.rel.ro.local │ │ │ │ │ │ │ │ │ │ -Relocation section '.rel.data.rel.ro' at offset 0xb08 contains 4 entries: │ │ │ │ │ +Relocation section '.rel.data.rel.ro' at offset 0xb88 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 00000444 awake │ │ │ │ │ -00000008 00000702 R_ARM_ABS32 00000050 print │ │ │ │ │ -0000000c 00000a02 R_ARM_ABS32 000000b0 destroy │ │ │ │ │ +00000004 00000e02 R_ARM_ABS32 0000049c awake │ │ │ │ │ +00000008 00000702 R_ARM_ABS32 00000064 print │ │ │ │ │ +0000000c 00000a02 R_ARM_ABS32 000000d0 destroy │ │ │ │ │ │ │ │ │ │ -Relocation section '.rel.data.rel.ro.local' at offset 0xb28 contains 1 entry: │ │ │ │ │ +Relocation section '.rel.data.rel.ro.local' at offset 0xba8 contains 1 entry: │ │ │ │ │ Offset Info Type Sym. Value Symbol's Name │ │ │ │ │ -00000004 00000b02 R_ARM_ABS32 000000cc mkplan │ │ │ │ │ +00000004 00000b02 R_ARM_ABS32 000000f8 mkplan │ │ │ │ ├── objdump --line-numbers --disassemble --demangle --reloc --no-show-raw-insn --section=.text {} │ │ │ │ │ @@ -1,359 +1,391 @@ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ Disassembly of section .text: │ │ │ │ │ │ │ │ │ │ 00000000 : │ │ │ │ │ apply(): │ │ │ │ │ - push {r4, r5, r6, lr} │ │ │ │ │ + strd r4, [sp, #-16]! │ │ │ │ │ mov r4, r0 │ │ │ │ │ ldr ip, [r4, #72] @ 0x48 │ │ │ │ │ + str r6, [sp, #8] │ │ │ │ │ + mov r6, r2 │ │ │ │ │ ldr r0, [r0, #64] @ 0x40 │ │ │ │ │ + str lr, [sp, #12] │ │ │ │ │ cmp ip, #0 │ │ │ │ │ ldr r3, [r0, #56] @ 0x38 │ │ │ │ │ - mov r6, r2 │ │ │ │ │ - beq 40 │ │ │ │ │ - blx r3 │ │ │ │ │ + beq 54 │ │ │ │ │ mov r5, r6 │ │ │ │ │ + blx r3 │ │ │ │ │ ldr r0, [r4, #68] @ 0x44 │ │ │ │ │ mov r2, r6 │ │ │ │ │ mov r1, r5 │ │ │ │ │ + ldrd r4, [sp] │ │ │ │ │ + ldr r6, [sp, #8] │ │ │ │ │ + ldr lr, [sp, #12] │ │ │ │ │ + add sp, sp, #16 │ │ │ │ │ ldr r3, [r0, #56] @ 0x38 │ │ │ │ │ - pop {r4, r5, r6, lr} │ │ │ │ │ bx r3 │ │ │ │ │ mov r2, r1 │ │ │ │ │ mov r5, r1 │ │ │ │ │ blx r3 │ │ │ │ │ - b 28 │ │ │ │ │ + b 30 │ │ │ │ │ │ │ │ │ │ -00000050 : │ │ │ │ │ +00000064 : │ │ │ │ │ print(): │ │ │ │ │ mov r3, r0 │ │ │ │ │ + mov r0, r1 │ │ │ │ │ + str r4, [sp, #-8]! │ │ │ │ │ ldr r2, [r3, #72] @ 0x48 │ │ │ │ │ - push {r4, lr} │ │ │ │ │ - cmp r2, #2 │ │ │ │ │ - ldr r4, [r1] │ │ │ │ │ + str lr, [sp, #4] │ │ │ │ │ sub sp, sp, #8 │ │ │ │ │ - mov r0, r1 │ │ │ │ │ - beq 98 │ │ │ │ │ - ldr r2, [pc, #44] @ a4 │ │ │ │ │ + ldr r4, [r1] │ │ │ │ │ + cmp r2, #2 │ │ │ │ │ + beq b8 │ │ │ │ │ + ldr r2, [pc, #52] @ c4 │ │ │ │ │ add r2, pc, r2 │ │ │ │ │ ldr r1, [r3, #68] @ 0x44 │ │ │ │ │ str r1, [sp] │ │ │ │ │ - ldr r1, [pc, #32] @ a8 │ │ │ │ │ + ldr r1, [pc, #40] @ c8 │ │ │ │ │ ldr r3, [r3, #64] @ 0x40 │ │ │ │ │ add r1, pc, r1 │ │ │ │ │ blx r4 │ │ │ │ │ add sp, sp, #8 │ │ │ │ │ - pop {r4, pc} │ │ │ │ │ - ldr r2, [pc, #12] @ ac │ │ │ │ │ + ldr r4, [sp] │ │ │ │ │ + add sp, sp, #4 │ │ │ │ │ + pop {pc} @ (ldr pc, [sp], #4) │ │ │ │ │ + ldr r2, [pc, #12] @ cc │ │ │ │ │ add r2, pc, r2 │ │ │ │ │ - b 78 │ │ │ │ │ - .word 0x00000028 │ │ │ │ │ + b 90 │ │ │ │ │ + .word 0x00000030 │ │ │ │ │ R_ARM_REL32 .LC1 │ │ │ │ │ - .word 0x00000018 │ │ │ │ │ + .word 0x00000020 │ │ │ │ │ R_ARM_REL32 .LC2 │ │ │ │ │ .word 0x00000008 │ │ │ │ │ R_ARM_REL32 .LC0 │ │ │ │ │ │ │ │ │ │ -000000b0 : │ │ │ │ │ +000000d0 : │ │ │ │ │ destroy(): │ │ │ │ │ - push {r4, lr} │ │ │ │ │ + str r4, [sp, #-8]! │ │ │ │ │ mov r4, r0 │ │ │ │ │ ldr r0, [r0, #68] @ 0x44 │ │ │ │ │ + str lr, [sp, #4] │ │ │ │ │ bl 0 │ │ │ │ │ R_ARM_CALL fftwf_plan_destroy_internal │ │ │ │ │ + ldr lr, [sp, #4] │ │ │ │ │ ldr r0, [r4, #64] @ 0x40 │ │ │ │ │ - pop {r4, lr} │ │ │ │ │ + ldr r4, [sp] │ │ │ │ │ + add sp, sp, #8 │ │ │ │ │ b 0 │ │ │ │ │ R_ARM_JUMP24 fftwf_plan_destroy_internal │ │ │ │ │ │ │ │ │ │ -000000cc : │ │ │ │ │ +000000f8 : │ │ │ │ │ mkplan(): │ │ │ │ │ - push {r4, r5, r6, r7, r8, r9, sl, fp, lr} │ │ │ │ │ + strd r4, [sp, #-36]! @ 0xffffffdc │ │ │ │ │ mov r4, r1 │ │ │ │ │ ldr r1, [r1, #4] │ │ │ │ │ - sub sp, sp, #36 @ 0x24 │ │ │ │ │ + strd r6, [sp, #8] │ │ │ │ │ + strd r8, [sp, #16] │ │ │ │ │ + strd sl, [sp, #24] │ │ │ │ │ + str lr, [sp, #32] │ │ │ │ │ + sub sp, sp, #44 @ 0x2c │ │ │ │ │ ldr r3, [r1] │ │ │ │ │ cmp r3, #1 │ │ │ │ │ - ble f4 │ │ │ │ │ + ble 130 │ │ │ │ │ ldr r3, [r4, #20] │ │ │ │ │ cmp r3, #0 │ │ │ │ │ - beq 100 │ │ │ │ │ + beq 150 │ │ │ │ │ mov r0, #0 │ │ │ │ │ - add sp, sp, #36 @ 0x24 │ │ │ │ │ - pop {r4, r5, r6, r7, r8, r9, sl, fp, pc} │ │ │ │ │ + add sp, sp, #44 @ 0x2c │ │ │ │ │ + ldrd r4, [sp] │ │ │ │ │ + ldrd r6, [sp, #8] │ │ │ │ │ + ldrd r8, [sp, #16] │ │ │ │ │ + ldrd sl, [sp, #24] │ │ │ │ │ + add sp, sp, #32 │ │ │ │ │ + pop {pc} @ (ldr pc, [sp], #4) │ │ │ │ │ ldr r3, [r0, #8] │ │ │ │ │ mov r7, r0 │ │ │ │ │ - cmp r3, #0 │ │ │ │ │ mov r6, r2 │ │ │ │ │ - beq 130 │ │ │ │ │ + cmp r3, #0 │ │ │ │ │ + beq 180 │ │ │ │ │ ldr r3, [r2, #164] @ 0xa4 │ │ │ │ │ tst r3, #4096 @ 0x1000 │ │ │ │ │ - bne f4 │ │ │ │ │ + bne 130 │ │ │ │ │ ldr r2, [r4, #12] │ │ │ │ │ ldr r3, [r4, #16] │ │ │ │ │ cmp r2, r3 │ │ │ │ │ - beq f4 │ │ │ │ │ + beq 130 │ │ │ │ │ mov r2, #0 │ │ │ │ │ mov r0, #1 │ │ │ │ │ bl 0 │ │ │ │ │ R_ARM_CALL fftwf_mpi_is_local_after │ │ │ │ │ cmp r0, #0 │ │ │ │ │ - beq f4 │ │ │ │ │ + beq 130 │ │ │ │ │ mov r2, #1 │ │ │ │ │ ldr r1, [r4, #4] │ │ │ │ │ mov r0, r2 │ │ │ │ │ bl 0 │ │ │ │ │ R_ARM_CALL fftwf_mpi_is_local_after │ │ │ │ │ cmp r0, #0 │ │ │ │ │ - beq f4 │ │ │ │ │ + beq 130 │ │ │ │ │ ldr r3, [r6, #164] @ 0xa4 │ │ │ │ │ tst r3, #8 │ │ │ │ │ - bne 428 │ │ │ │ │ + bne 480 │ │ │ │ │ ldr r3, [r4, #12] │ │ │ │ │ - str r3, [sp, #16] │ │ │ │ │ - ldr r3, [r7, #8] │ │ │ │ │ ldr fp, [r4, #16] │ │ │ │ │ + str r3, [sp, #24] │ │ │ │ │ + ldr r3, [r7, #8] │ │ │ │ │ cmp r3, #0 │ │ │ │ │ - movne r8, fp │ │ │ │ │ - bne 198 │ │ │ │ │ + strne fp, [sp, #20] │ │ │ │ │ + bne 1e8 │ │ │ │ │ ldr r3, [r6, #164] @ 0xa4 │ │ │ │ │ tst r3, #4096 @ 0x1000 │ │ │ │ │ - ldr r3, [sp, #16] │ │ │ │ │ - movne r8, fp │ │ │ │ │ - moveq r8, r3 │ │ │ │ │ - add r1, sp, #24 │ │ │ │ │ + ldr r3, [sp, #24] │ │ │ │ │ + movne r3, fp │ │ │ │ │ + str r3, [sp, #20] │ │ │ │ │ ldr r0, [r4, #24] │ │ │ │ │ + add r1, sp, #32 │ │ │ │ │ bl 0 │ │ │ │ │ R_ARM_CALL MPI_Comm_rank │ │ │ │ │ - add r1, sp, #28 │ │ │ │ │ ldr r0, [r4, #24] │ │ │ │ │ + add r1, sp, #36 @ 0x24 │ │ │ │ │ bl 0 │ │ │ │ │ R_ARM_CALL MPI_Comm_size │ │ │ │ │ ldr r3, [r4, #4] │ │ │ │ │ ldr r0, [r3] │ │ │ │ │ sub r0, r0, #1 │ │ │ │ │ bl 0 │ │ │ │ │ R_ARM_CALL fftwf_mktensor │ │ │ │ │ ldr r9, [r4, #4] │ │ │ │ │ + mov r5, r0 │ │ │ │ │ ldr lr, [r9] │ │ │ │ │ add r2, lr, lr, lsl #1 │ │ │ │ │ - add r3, lr, lr, lsl #1 │ │ │ │ │ + add r1, lr, lr, lsl #1 │ │ │ │ │ add r2, r9, r2, lsl #2 │ │ │ │ │ + lsl r1, r1, #2 │ │ │ │ │ ldr r2, [r2, #-8] │ │ │ │ │ - lsl r1, r3, #2 │ │ │ │ │ - add r3, r0, r3, lsl #2 │ │ │ │ │ - mov r5, r0 │ │ │ │ │ + add r3, r0, r1 │ │ │ │ │ + ldr r0, [r4, #8] │ │ │ │ │ str r2, [r3, #-20] @ 0xffffffec │ │ │ │ │ add r2, lr, lr, lsl #1 │ │ │ │ │ - ldr r0, [r4, #8] │ │ │ │ │ add r2, r5, r2, lsl #2 │ │ │ │ │ str r0, [r2, #-12] │ │ │ │ │ str r0, [r3, #-16] │ │ │ │ │ subs r0, lr, #3 │ │ │ │ │ - bmi 2b4 │ │ │ │ │ + bmi 310 │ │ │ │ │ cmp lr, #4 │ │ │ │ │ sub r2, r1, #16 │ │ │ │ │ sub ip, r1, #20 │ │ │ │ │ - ble 420 │ │ │ │ │ - sub lr, lr, #5 │ │ │ │ │ + ble 478 │ │ │ │ │ ldr r2, [r5, r2] │ │ │ │ │ - ldr ip, [r5, ip] │ │ │ │ │ + sub lr, lr, #5 │ │ │ │ │ add r1, r9, r1 │ │ │ │ │ and lr, lr, #1 │ │ │ │ │ + ldr ip, [r5, ip] │ │ │ │ │ + ldr r8, [sp, #20] │ │ │ │ │ mul r2, ip, r2 │ │ │ │ │ - ldr sl, [r1, #-20] @ 0xffffffec │ │ │ │ │ - str r2, [r3, #-24] @ 0xffffffe8 │ │ │ │ │ - str r2, [r3, #-28] @ 0xffffffe4 │ │ │ │ │ - mul r2, sl, r2 │ │ │ │ │ sub r0, r0, #2 │ │ │ │ │ - str sl, [r3, #-32] @ 0xffffffe0 │ │ │ │ │ - cmp r0, lr │ │ │ │ │ - ldr ip, [r1, #-32] @ 0xffffffe0 │ │ │ │ │ - str ip, [r3, #-44] @ 0xffffffd4 │ │ │ │ │ - str r2, [r3, #-36] @ 0xffffffdc │ │ │ │ │ - str r2, [r3, #-40] @ 0xffffffd8 │ │ │ │ │ sub r1, r1, #24 │ │ │ │ │ + ldr sl, [r1, #4] │ │ │ │ │ + cmp r0, lr │ │ │ │ │ sub r3, r3, #24 │ │ │ │ │ - bne 228 │ │ │ │ │ + str sl, [r3, #-8] │ │ │ │ │ + str r2, [r3, #-4] │ │ │ │ │ + str r2, [r3] │ │ │ │ │ + mul r2, sl, r2 │ │ │ │ │ + ldr ip, [r1, #-8] │ │ │ │ │ + str ip, [r3, #-20] @ 0xffffffec │ │ │ │ │ + str r2, [r3, #-16] │ │ │ │ │ + str r2, [r3, #-12] │ │ │ │ │ + bne 27c │ │ │ │ │ + str r8, [sp, #20] │ │ │ │ │ add r3, lr, lr, lsl #1 │ │ │ │ │ - add r9, r9, r3, lsl #2 │ │ │ │ │ - add r3, r5, r3, lsl #2 │ │ │ │ │ - ldr r1, [r3, #20] │ │ │ │ │ + cmp lr, #0 │ │ │ │ │ + lsl r3, r3, #2 │ │ │ │ │ + add r9, r9, r3 │ │ │ │ │ + add r3, r5, r3 │ │ │ │ │ ldr r2, [r3, #16] │ │ │ │ │ + ldr r1, [r3, #20] │ │ │ │ │ ldr r0, [r9, #16] │ │ │ │ │ mul r2, r1, r2 │ │ │ │ │ - cmp lr, #0 │ │ │ │ │ sub r1, lr, #1 │ │ │ │ │ str r0, [r3, #4] │ │ │ │ │ - str r2, [r3, #12] │ │ │ │ │ str r2, [r3, #8] │ │ │ │ │ - beq 2b4 │ │ │ │ │ - mul r2, r0, r2 │ │ │ │ │ - add r1, r1, r1, lsl #1 │ │ │ │ │ + str r2, [r3, #12] │ │ │ │ │ + beq 310 │ │ │ │ │ ldr ip, [r9, #4] │ │ │ │ │ + add r1, r1, r1, lsl #1 │ │ │ │ │ + mul r2, r0, r2 │ │ │ │ │ add r1, r5, r1, lsl #2 │ │ │ │ │ str ip, [r3, #-8] │ │ │ │ │ str r2, [r1, #12] │ │ │ │ │ str r2, [r3, #-4] │ │ │ │ │ mov r0, r5 │ │ │ │ │ + mov sl, #1 │ │ │ │ │ bl 0 │ │ │ │ │ R_ARM_CALL fftwf_tensor_sz │ │ │ │ │ ldmib r5, {r2, r3} │ │ │ │ │ - mov sl, #1 │ │ │ │ │ + str r0, [sp, #28] │ │ │ │ │ mul r9, r3, r2 │ │ │ │ │ ldr r3, [r4, #4] │ │ │ │ │ - ldr r2, [sp, #24] │ │ │ │ │ - str r0, [sp, #20] │ │ │ │ │ + ldr r2, [sp, #32] │ │ │ │ │ ldmib r3, {r0, r1} │ │ │ │ │ bl 0 │ │ │ │ │ R_ARM_CALL fftwf_mpi_block │ │ │ │ │ mov r2, r9 │ │ │ │ │ mov r1, r9 │ │ │ │ │ - str sl, [sp, #4] │ │ │ │ │ str sl, [sp] │ │ │ │ │ + str sl, [sp, #4] │ │ │ │ │ ldr r3, [r4, #8] │ │ │ │ │ bl 0 │ │ │ │ │ R_ARM_CALL fftwf_mktensor_2d │ │ │ │ │ add r3, r4, #32 │ │ │ │ │ - ldr r2, [sp, #16] │ │ │ │ │ - str r3, [sp] │ │ │ │ │ - mov r3, r8 │ │ │ │ │ + ldr r2, [sp, #24] │ │ │ │ │ mov r1, r0 │ │ │ │ │ mov r0, r5 │ │ │ │ │ + str r3, [sp] │ │ │ │ │ + ldr r3, [sp, #20] │ │ │ │ │ bl 0 │ │ │ │ │ R_ARM_CALL fftwf_mkproblem_rdft_d │ │ │ │ │ mov r1, r0 │ │ │ │ │ mov r0, r6 │ │ │ │ │ bl 0 │ │ │ │ │ R_ARM_CALL fftwf_mkplan_d │ │ │ │ │ - ldr r1, [r4, #24] │ │ │ │ │ mov r5, r0 │ │ │ │ │ clz r0, r0 │ │ │ │ │ + ldr r1, [r4, #24] │ │ │ │ │ lsr r0, r0, #5 │ │ │ │ │ bl 0 │ │ │ │ │ R_ARM_CALL fftwf_mpi_any_true │ │ │ │ │ cmp r0, #0 │ │ │ │ │ - bne 408 │ │ │ │ │ + bne 460 │ │ │ │ │ mov r0, sl │ │ │ │ │ bl 0 │ │ │ │ │ R_ARM_CALL fftwf_mpi_mkdtensor │ │ │ │ │ - ldr r3, [r4, #4] │ │ │ │ │ - mov ip, r0 │ │ │ │ │ - ldmib r3, {r0, r1, r2} │ │ │ │ │ - stmib ip, {r0, r1, r2} │ │ │ │ │ - ldr r1, [r4, #8] │ │ │ │ │ - ldr r0, [sp, #20] │ │ │ │ │ + ldr r2, [r4, #4] │ │ │ │ │ mov r3, #16 │ │ │ │ │ - mul r0, r1, r0 │ │ │ │ │ + ldr r1, [r4, #8] │ │ │ │ │ + ldr ip, [sp, #28] │ │ │ │ │ + ldrd r8, [r2, #4] │ │ │ │ │ + mul ip, r1, ip │ │ │ │ │ + strd r8, [r0, #4] │ │ │ │ │ + ldr r2, [r2, #12] │ │ │ │ │ + mov r1, ip │ │ │ │ │ + str r2, [r0, #12] │ │ │ │ │ str r3, [sp, #8] │ │ │ │ │ add r3, r4, #28 │ │ │ │ │ + ldr r2, [sp, #20] │ │ │ │ │ str r3, [sp, #4] │ │ │ │ │ ldr r3, [r4, #24] │ │ │ │ │ - mov r2, r8 │ │ │ │ │ - mov r1, r0 │ │ │ │ │ str r3, [sp] │ │ │ │ │ - mov r0, ip │ │ │ │ │ mov r3, fp │ │ │ │ │ bl 0 │ │ │ │ │ R_ARM_CALL fftwf_mpi_mkproblem_rdft_d │ │ │ │ │ mov r1, r0 │ │ │ │ │ mov r0, r6 │ │ │ │ │ bl 0 │ │ │ │ │ R_ARM_CALL fftwf_mkplan_d │ │ │ │ │ - ldr r1, [r4, #24] │ │ │ │ │ mov r8, r0 │ │ │ │ │ clz r0, r0 │ │ │ │ │ + ldr r1, [r4, #24] │ │ │ │ │ lsr r0, r0, #5 │ │ │ │ │ bl 0 │ │ │ │ │ R_ARM_CALL fftwf_mpi_any_true │ │ │ │ │ cmp r0, #0 │ │ │ │ │ - bne 40c │ │ │ │ │ - ldr r2, [pc, #132] @ 43c │ │ │ │ │ - ldr r1, [pc, #132] @ 440 │ │ │ │ │ + bne 464 │ │ │ │ │ + ldr r2, [pc, #128] @ 494 │ │ │ │ │ + mov r0, #80 @ 0x50 │ │ │ │ │ + ldr r1, [pc, #124] @ 498 │ │ │ │ │ add r2, pc, r2 │ │ │ │ │ add r1, pc, r1 │ │ │ │ │ - mov r0, #80 @ 0x50 │ │ │ │ │ bl 0 │ │ │ │ │ R_ARM_CALL fftwf_mkplan_rdft │ │ │ │ │ ldr r3, [r7, #8] │ │ │ │ │ + mov r4, r0 │ │ │ │ │ + add r2, r0, #8 │ │ │ │ │ add r1, r8, #8 │ │ │ │ │ + str r5, [r0, #64] @ 0x40 │ │ │ │ │ + str r8, [r0, #68] @ 0x44 │ │ │ │ │ cmp r3, #0 │ │ │ │ │ ldreq r3, [r6, #164] @ 0xa4 │ │ │ │ │ movne r3, #2 │ │ │ │ │ andeq r3, r3, #4096 @ 0x1000 │ │ │ │ │ - mov r4, r0 │ │ │ │ │ - add r2, r0, #8 │ │ │ │ │ - str r5, [r0, #64] @ 0x40 │ │ │ │ │ - str r8, [r0, #68] @ 0x44 │ │ │ │ │ str r3, [r0, #72] @ 0x48 │ │ │ │ │ add r0, r5, #8 │ │ │ │ │ bl 0 │ │ │ │ │ R_ARM_CALL fftwf_ops_add │ │ │ │ │ mov r0, r4 │ │ │ │ │ - add sp, sp, #36 @ 0x24 │ │ │ │ │ - pop {r4, r5, r6, r7, r8, r9, sl, fp, pc} │ │ │ │ │ + b 134 │ │ │ │ │ mov r8, #0 │ │ │ │ │ mov r0, r8 │ │ │ │ │ bl 0 │ │ │ │ │ R_ARM_CALL fftwf_plan_destroy_internal │ │ │ │ │ mov r0, r5 │ │ │ │ │ bl 0 │ │ │ │ │ R_ARM_CALL fftwf_plan_destroy_internal │ │ │ │ │ - b f4 │ │ │ │ │ + b 130 │ │ │ │ │ mov lr, r0 │ │ │ │ │ - b 264 │ │ │ │ │ + b 2bc │ │ │ │ │ mov r0, r4 │ │ │ │ │ bl 0 │ │ │ │ │ R_ARM_CALL fftwf_mpi_rdft_serial_applicable │ │ │ │ │ cmp r0, #0 │ │ │ │ │ - beq 168 │ │ │ │ │ - b f4 │ │ │ │ │ - .word 0xfffffc40 │ │ │ │ │ - .word 0x0000007c │ │ │ │ │ + beq 1b8 │ │ │ │ │ + b 130 │ │ │ │ │ + .word 0xfffffbe0 │ │ │ │ │ + .word 0x00000074 │ │ │ │ │ R_ARM_REL32 .data.rel.ro │ │ │ │ │ │ │ │ │ │ -00000444 : │ │ │ │ │ +0000049c : │ │ │ │ │ awake(): │ │ │ │ │ - push {r4, r5, r6, lr} │ │ │ │ │ + strd r4, [sp, #-16]! │ │ │ │ │ mov r4, r0 │ │ │ │ │ mov r5, r1 │ │ │ │ │ ldr r0, [r0, #64] @ 0x40 │ │ │ │ │ + str r6, [sp, #8] │ │ │ │ │ + str lr, [sp, #12] │ │ │ │ │ bl 0 │ │ │ │ │ R_ARM_CALL fftwf_plan_awake │ │ │ │ │ - ldr r0, [r4, #68] @ 0x44 │ │ │ │ │ + ldr r6, [sp, #8] │ │ │ │ │ mov r1, r5 │ │ │ │ │ - pop {r4, r5, r6, lr} │ │ │ │ │ + ldr lr, [sp, #12] │ │ │ │ │ + ldr r0, [r4, #68] @ 0x44 │ │ │ │ │ + ldrd r4, [sp] │ │ │ │ │ + add sp, sp, #16 │ │ │ │ │ b 0 │ │ │ │ │ R_ARM_JUMP24 fftwf_plan_awake │ │ │ │ │ │ │ │ │ │ -00000468 : │ │ │ │ │ +000004d4 : │ │ │ │ │ fftwf_mpi_rdft_rank_geq2_register(): │ │ │ │ │ - push {r4, r5, r6, lr} │ │ │ │ │ - ldr r5, [pc, #72] @ 4bc │ │ │ │ │ + strd r4, [sp, #-16]! │ │ │ │ │ mov r4, r0 │ │ │ │ │ + mov r0, #12 │ │ │ │ │ + ldr r5, [pc, #84] @ 53c │ │ │ │ │ + str r6, [sp, #8] │ │ │ │ │ + str lr, [sp, #12] │ │ │ │ │ add r5, pc, r5 │ │ │ │ │ mov r1, r5 │ │ │ │ │ - mov r0, #12 │ │ │ │ │ bl 0 │ │ │ │ │ R_ARM_CALL fftwf_mksolver │ │ │ │ │ mov r3, #0 │ │ │ │ │ - str r3, [r0, #8] │ │ │ │ │ mov r1, r0 │ │ │ │ │ + str r3, [r0, #8] │ │ │ │ │ mov r0, r4 │ │ │ │ │ bl 0 │ │ │ │ │ R_ARM_CALL fftwf_solver_register │ │ │ │ │ mov r1, r5 │ │ │ │ │ mov r0, #12 │ │ │ │ │ bl 0 │ │ │ │ │ R_ARM_CALL fftwf_mksolver │ │ │ │ │ mov r3, #1 │ │ │ │ │ + ldr r6, [sp, #8] │ │ │ │ │ mov r1, r0 │ │ │ │ │ + ldr lr, [sp, #12] │ │ │ │ │ str r3, [r0, #8] │ │ │ │ │ mov r0, r4 │ │ │ │ │ - pop {r4, r5, r6, lr} │ │ │ │ │ + ldrd r4, [sp] │ │ │ │ │ + add sp, sp, #16 │ │ │ │ │ b 0 │ │ │ │ │ R_ARM_JUMP24 fftwf_solver_register │ │ │ │ │ - .word 0x00000040 │ │ │ │ │ + .word 0x00000048 │ │ │ │ │ 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: 3476 (bytes into file) │ │ │ │ │ + Start of section headers: 3596 (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 0xd94: │ │ │ │ │ +There are 15 section headers, starting at offset 0xe0c: │ │ │ │ │ │ │ │ │ │ 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 0005ec 00 AX 0 0 4 │ │ │ │ │ - [ 2] .rel.text REL 00000000 000b94 000150 08 I 12 1 4 │ │ │ │ │ - [ 3] .data PROGBITS 00000000 000620 000000 00 WA 0 0 1 │ │ │ │ │ - [ 4] .bss NOBITS 00000000 000620 000000 00 WA 0 0 1 │ │ │ │ │ - [ 5] .rodata.str1.4 PROGBITS 00000000 000620 00003c 01 AMS 0 0 4 │ │ │ │ │ - [ 6] .data.rel.ro PROGBITS 00000000 00065c 000010 00 WA 0 0 4 │ │ │ │ │ - [ 7] .rel.data.rel.ro REL 00000000 000ce4 000020 08 I 12 6 4 │ │ │ │ │ - [ 8] .data.rel.ro.local PROGBITS 00000000 00066c 00000c 00 WA 0 0 4 │ │ │ │ │ - [ 9] .rel.data.rel.ro.local REL 00000000 000d04 000008 08 I 12 8 4 │ │ │ │ │ - [10] .note.GNU-stack PROGBITS 00000000 000678 000000 00 0 0 1 │ │ │ │ │ - [11] .ARM.attributes ARM_ATTRIBUTES 00000000 000678 00002b 00 0 0 1 │ │ │ │ │ - [12] .symtab SYMTAB 00000000 0006a4 0002d0 10 13 22 4 │ │ │ │ │ - [13] .strtab STRTAB 00000000 000974 000220 00 0 0 1 │ │ │ │ │ - [14] .shstrtab STRTAB 00000000 000d0c 000087 00 0 0 1 │ │ │ │ │ + [ 1] .text PROGBITS 00000000 000034 000664 00 AX 0 0 4 │ │ │ │ │ + [ 2] .rel.text REL 00000000 000c0c 000150 08 I 12 1 4 │ │ │ │ │ + [ 3] .data PROGBITS 00000000 000698 000000 00 WA 0 0 1 │ │ │ │ │ + [ 4] .bss NOBITS 00000000 000698 000000 00 WA 0 0 1 │ │ │ │ │ + [ 5] .rodata.str1.4 PROGBITS 00000000 000698 00003c 01 AMS 0 0 4 │ │ │ │ │ + [ 6] .data.rel.ro PROGBITS 00000000 0006d4 000010 00 WA 0 0 4 │ │ │ │ │ + [ 7] .rel.data.rel.ro REL 00000000 000d5c 000020 08 I 12 6 4 │ │ │ │ │ + [ 8] .data.rel.ro.local PROGBITS 00000000 0006e4 00000c 00 WA 0 0 4 │ │ │ │ │ + [ 9] .rel.data.rel.ro.local REL 00000000 000d7c 000008 08 I 12 8 4 │ │ │ │ │ + [10] .note.GNU-stack PROGBITS 00000000 0006f0 000000 00 0 0 1 │ │ │ │ │ + [11] .ARM.attributes ARM_ATTRIBUTES 00000000 0006f0 00002b 00 0 0 1 │ │ │ │ │ + [12] .symtab SYMTAB 00000000 00071c 0002d0 10 13 22 4 │ │ │ │ │ + [13] .strtab STRTAB 00000000 0009ec 000220 00 0 0 1 │ │ │ │ │ + [14] .shstrtab STRTAB 00000000 000d84 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: 00000000 0 NOTYPE LOCAL DEFAULT 1 $a │ │ │ │ │ - 2: 00000000 100 FUNC LOCAL DEFAULT 1 apply │ │ │ │ │ + 2: 00000000 120 FUNC LOCAL DEFAULT 1 apply │ │ │ │ │ 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: 00000064 104 FUNC LOCAL DEFAULT 1 print │ │ │ │ │ - 8: 000000c0 0 NOTYPE LOCAL DEFAULT 1 $d │ │ │ │ │ - 9: 000000cc 0 NOTYPE LOCAL DEFAULT 1 $a │ │ │ │ │ - 10: 000000cc 36 FUNC LOCAL DEFAULT 1 destroy │ │ │ │ │ - 11: 000000f0 1140 FUNC LOCAL DEFAULT 1 mkplan │ │ │ │ │ - 12: 0000055c 0 NOTYPE LOCAL DEFAULT 1 $d │ │ │ │ │ - 13: 00000564 0 NOTYPE LOCAL DEFAULT 1 $a │ │ │ │ │ - 14: 00000564 48 FUNC LOCAL DEFAULT 1 awake │ │ │ │ │ - 15: 000005e8 0 NOTYPE LOCAL DEFAULT 1 $d │ │ │ │ │ + 7: 00000078 116 FUNC LOCAL DEFAULT 1 print │ │ │ │ │ + 8: 000000e0 0 NOTYPE LOCAL DEFAULT 1 $d │ │ │ │ │ + 9: 000000ec 0 NOTYPE LOCAL DEFAULT 1 $a │ │ │ │ │ + 10: 000000ec 48 FUNC LOCAL DEFAULT 1 destroy │ │ │ │ │ + 11: 0000011c 1176 FUNC LOCAL DEFAULT 1 mkplan │ │ │ │ │ + 12: 000005ac 0 NOTYPE LOCAL DEFAULT 1 $d │ │ │ │ │ + 13: 000005b4 0 NOTYPE LOCAL DEFAULT 1 $a │ │ │ │ │ + 14: 000005b4 68 FUNC LOCAL DEFAULT 1 awake │ │ │ │ │ + 15: 00000660 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: 00000594 88 FUNC GLOBAL DEFAULT 1 fftwf_mpi_rdft_rank_geq2_transposed_register │ │ │ │ │ + 41: 000005f8 108 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,56 +1,56 @@ │ │ │ │ │ │ │ │ │ │ -Relocation section '.rel.text' at offset 0xb94 contains 42 entries: │ │ │ │ │ +Relocation section '.rel.text' at offset 0xc0c contains 42 entries: │ │ │ │ │ Offset Info Type Sym. Value Symbol's Name │ │ │ │ │ -000000c0 00000503 R_ARM_REL32 00000004 .LC1 │ │ │ │ │ -000000c4 00000603 R_ARM_REL32 00000008 .LC2 │ │ │ │ │ -000000c8 00000403 R_ARM_REL32 00000000 .LC0 │ │ │ │ │ -000000d8 0000161c R_ARM_CALL 00000000 fftwf_plan_destroy_internal │ │ │ │ │ -000000e0 0000161c R_ARM_CALL 00000000 fftwf_plan_destroy_internal │ │ │ │ │ -000000ec 0000161d R_ARM_JUMP24 00000000 fftwf_plan_destroy_internal │ │ │ │ │ -0000015c 0000171c R_ARM_CALL 00000000 fftwf_mpi_is_local_after │ │ │ │ │ -00000174 0000171c R_ARM_CALL 00000000 fftwf_mpi_is_local_after │ │ │ │ │ -0000018c 0000181c R_ARM_CALL 00000000 fftwf_mpi_num_blocks │ │ │ │ │ -000001cc 0000191c R_ARM_CALL 00000000 MPI_Comm_rank │ │ │ │ │ -000001d8 00001a1c R_ARM_CALL 00000000 MPI_Comm_size │ │ │ │ │ -000001e8 00001b1c R_ARM_CALL 00000000 fftwf_mktensor │ │ │ │ │ -00000330 00001c1c R_ARM_CALL 00000000 fftwf_mpi_block │ │ │ │ │ -00000348 00001d1c R_ARM_CALL 00000000 fftwf_mktensor_2d │ │ │ │ │ -00000364 00001e1c R_ARM_CALL 00000000 fftwf_mkproblem_rdft_d │ │ │ │ │ -00000370 00001f1c R_ARM_CALL 00000000 fftwf_mkplan_d │ │ │ │ │ -00000384 0000201c R_ARM_CALL 00000000 fftwf_mpi_any_true │ │ │ │ │ -000003d0 0000211c R_ARM_CALL 00000000 fftwf_mpi_mkproblem_transpose │ │ │ │ │ -000003dc 00001f1c R_ARM_CALL 00000000 fftwf_mkplan_d │ │ │ │ │ -000003f0 0000201c R_ARM_CALL 00000000 fftwf_mpi_any_true │ │ │ │ │ -00000418 00001c1c R_ARM_CALL 00000000 fftwf_mpi_block │ │ │ │ │ -00000430 0000221c R_ARM_CALL 00000000 fftwf_mktensor_1d │ │ │ │ │ -00000450 00001d1c R_ARM_CALL 00000000 fftwf_mktensor_2d │ │ │ │ │ -0000046c 0000231c R_ARM_CALL 00000000 fftwf_mkproblem_rdft_1_d │ │ │ │ │ -00000478 00001f1c R_ARM_CALL 00000000 fftwf_mkplan_d │ │ │ │ │ -0000048c 0000201c R_ARM_CALL 00000000 fftwf_mpi_any_true │ │ │ │ │ -000004ac 0000241c R_ARM_CALL 00000000 fftwf_mkplan_rdft │ │ │ │ │ -000004e8 0000251c R_ARM_CALL 00000000 fftwf_ops_add │ │ │ │ │ -000004f4 0000261c R_ARM_CALL 00000000 fftwf_ops_add2 │ │ │ │ │ -00000510 0000161c R_ARM_CALL 00000000 fftwf_plan_destroy_internal │ │ │ │ │ -00000518 0000161c R_ARM_CALL 00000000 fftwf_plan_destroy_internal │ │ │ │ │ -00000520 0000161c R_ARM_CALL 00000000 fftwf_plan_destroy_internal │ │ │ │ │ -0000054c 0000271c R_ARM_CALL 00000000 fftwf_mpi_rdft_serial_applicable │ │ │ │ │ -00000560 00001003 R_ARM_REL32 00000000 .data.rel.ro │ │ │ │ │ -00000574 0000281c R_ARM_CALL 00000000 fftwf_plan_awake │ │ │ │ │ -00000580 0000281c R_ARM_CALL 00000000 fftwf_plan_awake │ │ │ │ │ -00000590 0000281d R_ARM_JUMP24 00000000 fftwf_plan_awake │ │ │ │ │ -000005ac 00002a1c R_ARM_CALL 00000000 fftwf_mksolver │ │ │ │ │ -000005c0 00002b1c R_ARM_CALL 00000000 fftwf_solver_register │ │ │ │ │ -000005cc 00002a1c R_ARM_CALL 00000000 fftwf_mksolver │ │ │ │ │ -000005e4 00002b1d R_ARM_JUMP24 00000000 fftwf_solver_register │ │ │ │ │ -000005e8 00001303 R_ARM_REL32 00000000 .data.rel.ro.local │ │ │ │ │ +000000e0 00000503 R_ARM_REL32 00000004 .LC1 │ │ │ │ │ +000000e4 00000603 R_ARM_REL32 00000008 .LC2 │ │ │ │ │ +000000e8 00000403 R_ARM_REL32 00000000 .LC0 │ │ │ │ │ +000000fc 0000161c R_ARM_CALL 00000000 fftwf_plan_destroy_internal │ │ │ │ │ +00000104 0000161c R_ARM_CALL 00000000 fftwf_plan_destroy_internal │ │ │ │ │ +00000118 0000161d R_ARM_JUMP24 00000000 fftwf_plan_destroy_internal │ │ │ │ │ +000001ac 0000171c R_ARM_CALL 00000000 fftwf_mpi_is_local_after │ │ │ │ │ +000001c4 0000171c R_ARM_CALL 00000000 fftwf_mpi_is_local_after │ │ │ │ │ +000001dc 0000181c R_ARM_CALL 00000000 fftwf_mpi_num_blocks │ │ │ │ │ +0000021c 0000191c R_ARM_CALL 00000000 MPI_Comm_rank │ │ │ │ │ +00000228 00001a1c R_ARM_CALL 00000000 MPI_Comm_size │ │ │ │ │ +00000238 00001b1c R_ARM_CALL 00000000 fftwf_mktensor │ │ │ │ │ +00000384 00001c1c R_ARM_CALL 00000000 fftwf_mpi_block │ │ │ │ │ +0000039c 00001d1c R_ARM_CALL 00000000 fftwf_mktensor_2d │ │ │ │ │ +000003b8 00001e1c R_ARM_CALL 00000000 fftwf_mkproblem_rdft_d │ │ │ │ │ +000003c4 00001f1c R_ARM_CALL 00000000 fftwf_mkplan_d │ │ │ │ │ +000003d8 0000201c R_ARM_CALL 00000000 fftwf_mpi_any_true │ │ │ │ │ +00000424 0000211c R_ARM_CALL 00000000 fftwf_mpi_mkproblem_transpose │ │ │ │ │ +00000430 00001f1c R_ARM_CALL 00000000 fftwf_mkplan_d │ │ │ │ │ +00000444 0000201c R_ARM_CALL 00000000 fftwf_mpi_any_true │ │ │ │ │ +0000046c 00001c1c R_ARM_CALL 00000000 fftwf_mpi_block │ │ │ │ │ +00000484 0000221c R_ARM_CALL 00000000 fftwf_mktensor_1d │ │ │ │ │ +000004a4 00001d1c R_ARM_CALL 00000000 fftwf_mktensor_2d │ │ │ │ │ +000004c0 0000231c R_ARM_CALL 00000000 fftwf_mkproblem_rdft_1_d │ │ │ │ │ +000004cc 00001f1c R_ARM_CALL 00000000 fftwf_mkplan_d │ │ │ │ │ +000004e0 0000201c R_ARM_CALL 00000000 fftwf_mpi_any_true │ │ │ │ │ +00000500 0000241c R_ARM_CALL 00000000 fftwf_mkplan_rdft │ │ │ │ │ +0000053c 0000251c R_ARM_CALL 00000000 fftwf_ops_add │ │ │ │ │ +00000548 0000261c R_ARM_CALL 00000000 fftwf_ops_add2 │ │ │ │ │ +00000560 0000161c R_ARM_CALL 00000000 fftwf_plan_destroy_internal │ │ │ │ │ +00000568 0000161c R_ARM_CALL 00000000 fftwf_plan_destroy_internal │ │ │ │ │ +00000570 0000161c R_ARM_CALL 00000000 fftwf_plan_destroy_internal │ │ │ │ │ +0000059c 0000271c R_ARM_CALL 00000000 fftwf_mpi_rdft_serial_applicable │ │ │ │ │ +000005b0 00001003 R_ARM_REL32 00000000 .data.rel.ro │ │ │ │ │ +000005cc 0000281c R_ARM_CALL 00000000 fftwf_plan_awake │ │ │ │ │ +000005d8 0000281c R_ARM_CALL 00000000 fftwf_plan_awake │ │ │ │ │ +000005f4 0000281d R_ARM_JUMP24 00000000 fftwf_plan_awake │ │ │ │ │ +00000618 00002a1c R_ARM_CALL 00000000 fftwf_mksolver │ │ │ │ │ +0000062c 00002b1c R_ARM_CALL 00000000 fftwf_solver_register │ │ │ │ │ +00000638 00002a1c R_ARM_CALL 00000000 fftwf_mksolver │ │ │ │ │ +0000065c 00002b1d R_ARM_JUMP24 00000000 fftwf_solver_register │ │ │ │ │ +00000660 00001303 R_ARM_REL32 00000000 .data.rel.ro.local │ │ │ │ │ │ │ │ │ │ -Relocation section '.rel.data.rel.ro' at offset 0xce4 contains 4 entries: │ │ │ │ │ +Relocation section '.rel.data.rel.ro' at offset 0xd5c 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 00000564 awake │ │ │ │ │ -00000008 00000702 R_ARM_ABS32 00000064 print │ │ │ │ │ -0000000c 00000a02 R_ARM_ABS32 000000cc destroy │ │ │ │ │ +00000004 00000e02 R_ARM_ABS32 000005b4 awake │ │ │ │ │ +00000008 00000702 R_ARM_ABS32 00000078 print │ │ │ │ │ +0000000c 00000a02 R_ARM_ABS32 000000ec destroy │ │ │ │ │ │ │ │ │ │ -Relocation section '.rel.data.rel.ro.local' at offset 0xd04 contains 1 entry: │ │ │ │ │ +Relocation section '.rel.data.rel.ro.local' at offset 0xd7c contains 1 entry: │ │ │ │ │ Offset Info Type Sym. Value Symbol's Name │ │ │ │ │ -00000004 00000b02 R_ARM_ABS32 000000f0 mkplan │ │ │ │ │ +00000004 00000b02 R_ARM_ABS32 0000011c mkplan │ │ │ │ ├── objdump --line-numbers --disassemble --demangle --reloc --no-show-raw-insn --section=.text {} │ │ │ │ │ @@ -1,298 +1,319 @@ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ Disassembly of section .text: │ │ │ │ │ │ │ │ │ │ 00000000 : │ │ │ │ │ apply(): │ │ │ │ │ - push {r4, r5, r6, lr} │ │ │ │ │ + strd r4, [sp, #-16]! │ │ │ │ │ mov r4, r0 │ │ │ │ │ + mov r5, r2 │ │ │ │ │ ldr ip, [r4, #84] @ 0x54 │ │ │ │ │ + str r6, [sp, #8] │ │ │ │ │ ldr r0, [r0, #64] @ 0x40 │ │ │ │ │ + str lr, [sp, #12] │ │ │ │ │ cmp ip, #0 │ │ │ │ │ ldr r3, [r0, #56] @ 0x38 │ │ │ │ │ - mov r5, r2 │ │ │ │ │ - beq 54 │ │ │ │ │ - blx r3 │ │ │ │ │ + beq 68 │ │ │ │ │ mov r6, r5 │ │ │ │ │ + blx r3 │ │ │ │ │ ldr r0, [r4, #68] @ 0x44 │ │ │ │ │ mov r2, r5 │ │ │ │ │ - ldr r3, [r0, #56] @ 0x38 │ │ │ │ │ mov r1, r6 │ │ │ │ │ + ldr r3, [r0, #56] @ 0x38 │ │ │ │ │ blx r3 │ │ │ │ │ ldr r0, [r4, #72] @ 0x48 │ │ │ │ │ mov r2, r5 │ │ │ │ │ mov r1, r5 │ │ │ │ │ + ldrd r4, [sp] │ │ │ │ │ + ldr r6, [sp, #8] │ │ │ │ │ + ldr lr, [sp, #12] │ │ │ │ │ + add sp, sp, #16 │ │ │ │ │ ldr r3, [r0, #56] @ 0x38 │ │ │ │ │ - pop {r4, r5, r6, lr} │ │ │ │ │ bx r3 │ │ │ │ │ mov r2, r1 │ │ │ │ │ mov r6, r1 │ │ │ │ │ blx r3 │ │ │ │ │ - b 28 │ │ │ │ │ + b 30 │ │ │ │ │ │ │ │ │ │ -00000064 : │ │ │ │ │ +00000078 : │ │ │ │ │ print(): │ │ │ │ │ mov r3, r0 │ │ │ │ │ + mov r0, r1 │ │ │ │ │ + str r4, [sp, #-8]! │ │ │ │ │ ldr r2, [r3, #84] @ 0x54 │ │ │ │ │ - push {r4, lr} │ │ │ │ │ - cmp r2, #2 │ │ │ │ │ - ldr r4, [r1] │ │ │ │ │ + str lr, [sp, #4] │ │ │ │ │ sub sp, sp, #8 │ │ │ │ │ - mov r0, r1 │ │ │ │ │ - beq b4 │ │ │ │ │ - ldr r2, [pc, #52] @ c0 │ │ │ │ │ + ldr r4, [r1] │ │ │ │ │ + cmp r2, #2 │ │ │ │ │ + beq d4 │ │ │ │ │ + ldr r2, [pc, #60] @ e0 │ │ │ │ │ add r2, pc, r2 │ │ │ │ │ ldr r1, [r3, #72] @ 0x48 │ │ │ │ │ str r1, [sp, #4] │ │ │ │ │ ldr r1, [r3, #68] @ 0x44 │ │ │ │ │ str r1, [sp] │ │ │ │ │ - ldr r1, [pc, #32] @ c4 │ │ │ │ │ + ldr r1, [pc, #40] @ e4 │ │ │ │ │ ldr r3, [r3, #64] @ 0x40 │ │ │ │ │ add r1, pc, r1 │ │ │ │ │ blx r4 │ │ │ │ │ add sp, sp, #8 │ │ │ │ │ - pop {r4, pc} │ │ │ │ │ - ldr r2, [pc, #12] @ c8 │ │ │ │ │ + ldr r4, [sp] │ │ │ │ │ + add sp, sp, #4 │ │ │ │ │ + pop {pc} @ (ldr pc, [sp], #4) │ │ │ │ │ + ldr r2, [pc, #12] @ e8 │ │ │ │ │ add r2, pc, r2 │ │ │ │ │ - b 8c │ │ │ │ │ - .word 0x00000030 │ │ │ │ │ + b a4 │ │ │ │ │ + .word 0x00000038 │ │ │ │ │ R_ARM_REL32 .LC1 │ │ │ │ │ - .word 0x00000018 │ │ │ │ │ + .word 0x00000020 │ │ │ │ │ R_ARM_REL32 .LC2 │ │ │ │ │ .word 0x00000008 │ │ │ │ │ R_ARM_REL32 .LC0 │ │ │ │ │ │ │ │ │ │ -000000cc : │ │ │ │ │ +000000ec : │ │ │ │ │ destroy(): │ │ │ │ │ - push {r4, lr} │ │ │ │ │ + str r4, [sp, #-8]! │ │ │ │ │ mov r4, r0 │ │ │ │ │ ldr r0, [r0, #72] @ 0x48 │ │ │ │ │ + str lr, [sp, #4] │ │ │ │ │ bl 0 │ │ │ │ │ R_ARM_CALL fftwf_plan_destroy_internal │ │ │ │ │ ldr r0, [r4, #68] @ 0x44 │ │ │ │ │ bl 0 │ │ │ │ │ R_ARM_CALL fftwf_plan_destroy_internal │ │ │ │ │ + ldr lr, [sp, #4] │ │ │ │ │ ldr r0, [r4, #64] @ 0x40 │ │ │ │ │ - pop {r4, lr} │ │ │ │ │ + ldr r4, [sp] │ │ │ │ │ + add sp, sp, #8 │ │ │ │ │ b 0 │ │ │ │ │ R_ARM_JUMP24 fftwf_plan_destroy_internal │ │ │ │ │ │ │ │ │ │ -000000f0 : │ │ │ │ │ +0000011c : │ │ │ │ │ mkplan(): │ │ │ │ │ - push {r4, r5, r6, r7, r8, r9, sl, fp, lr} │ │ │ │ │ + strd r4, [sp, #-36]! @ 0xffffffdc │ │ │ │ │ mov r4, r1 │ │ │ │ │ ldr r1, [r1, #4] │ │ │ │ │ + strd r6, [sp, #8] │ │ │ │ │ + strd r8, [sp, #16] │ │ │ │ │ + strd sl, [sp, #24] │ │ │ │ │ + str lr, [sp, #32] │ │ │ │ │ sub sp, sp, #52 @ 0x34 │ │ │ │ │ ldr r3, [r1] │ │ │ │ │ cmp r3, #1 │ │ │ │ │ - ble 118 │ │ │ │ │ + ble 154 │ │ │ │ │ ldr r3, [r4, #20] │ │ │ │ │ cmp r3, #8 │ │ │ │ │ - beq 124 │ │ │ │ │ + beq 174 │ │ │ │ │ mov r0, #0 │ │ │ │ │ add sp, sp, #52 @ 0x34 │ │ │ │ │ - pop {r4, r5, r6, r7, r8, r9, sl, fp, pc} │ │ │ │ │ + ldrd r4, [sp] │ │ │ │ │ + ldrd r6, [sp, #8] │ │ │ │ │ + ldrd r8, [sp, #16] │ │ │ │ │ + ldrd sl, [sp, #24] │ │ │ │ │ + add sp, sp, #32 │ │ │ │ │ + pop {pc} @ (ldr pc, [sp], #4) │ │ │ │ │ ldr r3, [r0, #8] │ │ │ │ │ mov sl, r0 │ │ │ │ │ - cmp r3, #0 │ │ │ │ │ mov fp, r2 │ │ │ │ │ - beq 154 │ │ │ │ │ + cmp r3, #0 │ │ │ │ │ + beq 1a4 │ │ │ │ │ ldr r3, [r2, #164] @ 0xa4 │ │ │ │ │ tst r3, #4096 @ 0x1000 │ │ │ │ │ - bne 118 │ │ │ │ │ + bne 154 │ │ │ │ │ ldr r2, [r4, #12] │ │ │ │ │ ldr r3, [r4, #16] │ │ │ │ │ cmp r2, r3 │ │ │ │ │ - beq 118 │ │ │ │ │ + beq 154 │ │ │ │ │ mov r2, #0 │ │ │ │ │ mov r0, #1 │ │ │ │ │ bl 0 │ │ │ │ │ R_ARM_CALL fftwf_mpi_is_local_after │ │ │ │ │ cmp r0, #0 │ │ │ │ │ - beq 118 │ │ │ │ │ + beq 154 │ │ │ │ │ ldr r1, [r4, #4] │ │ │ │ │ mov r2, #1 │ │ │ │ │ mov r0, #2 │ │ │ │ │ bl 0 │ │ │ │ │ R_ARM_CALL fftwf_mpi_is_local_after │ │ │ │ │ cmp r0, #0 │ │ │ │ │ - beq 118 │ │ │ │ │ + beq 154 │ │ │ │ │ ldr r3, [r4, #4] │ │ │ │ │ - ldr r1, [r3, #12] │ │ │ │ │ ldr r0, [r3, #4] │ │ │ │ │ + ldr r1, [r3, #12] │ │ │ │ │ bl 0 │ │ │ │ │ R_ARM_CALL fftwf_mpi_num_blocks │ │ │ │ │ cmp r0, #1 │ │ │ │ │ mov r5, r0 │ │ │ │ │ - bne 118 │ │ │ │ │ + bne 154 │ │ │ │ │ ldr r3, [fp, #164] @ 0xa4 │ │ │ │ │ tst r3, #8 │ │ │ │ │ - bne 548 │ │ │ │ │ + bne 598 │ │ │ │ │ + ldr r9, [r4, #12] │ │ │ │ │ ldr r3, [r4, #16] │ │ │ │ │ str r3, [sp, #28] │ │ │ │ │ ldr r3, [sl, #8] │ │ │ │ │ - ldr r9, [r4, #12] │ │ │ │ │ cmp r3, #0 │ │ │ │ │ - beq 528 │ │ │ │ │ + beq 578 │ │ │ │ │ ldr r8, [sp, #28] │ │ │ │ │ add r1, sp, #40 @ 0x28 │ │ │ │ │ ldr r0, [r4, #24] │ │ │ │ │ bl 0 │ │ │ │ │ R_ARM_CALL MPI_Comm_rank │ │ │ │ │ - add r1, sp, #44 @ 0x2c │ │ │ │ │ ldr r0, [r4, #24] │ │ │ │ │ + add r1, sp, #44 @ 0x2c │ │ │ │ │ bl 0 │ │ │ │ │ R_ARM_CALL MPI_Comm_size │ │ │ │ │ ldr r3, [r4, #4] │ │ │ │ │ ldr r0, [r3] │ │ │ │ │ sub r0, r0, #1 │ │ │ │ │ bl 0 │ │ │ │ │ R_ARM_CALL fftwf_mktensor │ │ │ │ │ ldr ip, [r4, #4] │ │ │ │ │ + mov r7, r0 │ │ │ │ │ ldr r6, [ip] │ │ │ │ │ add r2, r6, r6, lsl #1 │ │ │ │ │ - add r3, r6, r6, lsl #1 │ │ │ │ │ + add r1, r6, r6, lsl #1 │ │ │ │ │ add r2, ip, r2, lsl #2 │ │ │ │ │ + lsl r1, r1, #2 │ │ │ │ │ ldr r2, [r2, #-8] │ │ │ │ │ - lsl r1, r3, #2 │ │ │ │ │ - add r3, r0, r3, lsl #2 │ │ │ │ │ - mov r7, r0 │ │ │ │ │ + add r3, r0, r1 │ │ │ │ │ + ldr r0, [r4, #8] │ │ │ │ │ str r2, [r3, #-20] @ 0xffffffec │ │ │ │ │ add r2, r6, r6, lsl #1 │ │ │ │ │ - ldr r0, [r4, #8] │ │ │ │ │ add r2, r7, r2, lsl #2 │ │ │ │ │ str r0, [r2, #-12] │ │ │ │ │ str r0, [r3, #-16] │ │ │ │ │ subs r0, r6, #3 │ │ │ │ │ - bmi 2e8 │ │ │ │ │ + bmi 33c │ │ │ │ │ cmp r6, #4 │ │ │ │ │ sub r2, r1, #16 │ │ │ │ │ sub lr, r1, #20 │ │ │ │ │ - ble 540 │ │ │ │ │ - sub r6, r6, #5 │ │ │ │ │ + ble 590 │ │ │ │ │ ldr r2, [r7, r2] │ │ │ │ │ - ldr lr, [r7, lr] │ │ │ │ │ + sub r6, r6, #5 │ │ │ │ │ add r1, ip, r1 │ │ │ │ │ and r6, r6, #1 │ │ │ │ │ str ip, [sp, #32] │ │ │ │ │ + ldr lr, [r7, lr] │ │ │ │ │ mul r2, lr, r2 │ │ │ │ │ - ldr ip, [r1, #-20] @ 0xffffffec │ │ │ │ │ - str r2, [r3, #-24] @ 0xffffffe8 │ │ │ │ │ - str r2, [r3, #-28] @ 0xffffffe4 │ │ │ │ │ - mul r2, ip, r2 │ │ │ │ │ sub r0, r0, #2 │ │ │ │ │ - str ip, [r3, #-32] @ 0xffffffe0 │ │ │ │ │ - cmp r0, r6 │ │ │ │ │ - ldr lr, [r1, #-32] @ 0xffffffe0 │ │ │ │ │ - str lr, [r3, #-44] @ 0xffffffd4 │ │ │ │ │ - str r2, [r3, #-36] @ 0xffffffdc │ │ │ │ │ - str r2, [r3, #-40] @ 0xffffffd8 │ │ │ │ │ sub r1, r1, #24 │ │ │ │ │ + ldr ip, [r1, #4] │ │ │ │ │ + cmp r0, r6 │ │ │ │ │ sub r3, r3, #24 │ │ │ │ │ - bne 258 │ │ │ │ │ + str ip, [r3, #-8] │ │ │ │ │ + str r2, [r3, #-4] │ │ │ │ │ + str r2, [r3] │ │ │ │ │ + mul r2, ip, r2 │ │ │ │ │ + ldr lr, [r1, #-8] │ │ │ │ │ + str lr, [r3, #-20] @ 0xffffffec │ │ │ │ │ + str r2, [r3, #-16] │ │ │ │ │ + str r2, [r3, #-12] │ │ │ │ │ + bne 2a8 │ │ │ │ │ ldr ip, [sp, #32] │ │ │ │ │ add r3, r6, r6, lsl #1 │ │ │ │ │ - add r0, ip, r3, lsl #2 │ │ │ │ │ - add r3, r7, r3, lsl #2 │ │ │ │ │ - ldr lr, [r3, #20] │ │ │ │ │ + cmp r6, #0 │ │ │ │ │ + lsl r3, r3, #2 │ │ │ │ │ + add r0, ip, r3 │ │ │ │ │ + add r3, r7, r3 │ │ │ │ │ ldr r2, [r3, #16] │ │ │ │ │ + ldr lr, [r3, #20] │ │ │ │ │ ldr r1, [r0, #16] │ │ │ │ │ mul r2, lr, r2 │ │ │ │ │ - cmp r6, #0 │ │ │ │ │ sub lr, r6, #1 │ │ │ │ │ str r1, [r3, #4] │ │ │ │ │ - str r2, [r3, #12] │ │ │ │ │ str r2, [r3, #8] │ │ │ │ │ - beq 2e8 │ │ │ │ │ - mul r2, r1, r2 │ │ │ │ │ - add lr, lr, lr, lsl #1 │ │ │ │ │ + str r2, [r3, #12] │ │ │ │ │ + beq 33c │ │ │ │ │ ldr r0, [r0, #4] │ │ │ │ │ + add lr, lr, lr, lsl #1 │ │ │ │ │ + mul r2, r1, r2 │ │ │ │ │ add lr, r7, lr, lsl #2 │ │ │ │ │ str r0, [r3, #-8] │ │ │ │ │ str r2, [lr, #12] │ │ │ │ │ str r2, [r3, #-4] │ │ │ │ │ ldr r1, [r7] │ │ │ │ │ cmp r1, #1 │ │ │ │ │ - ble 318 │ │ │ │ │ + ble 36c │ │ │ │ │ add r1, r1, r1, lsl #1 │ │ │ │ │ - sub r1, r1, #3 │ │ │ │ │ mov r3, #0 │ │ │ │ │ add r0, r7, #16 │ │ │ │ │ + sub r1, r1, #3 │ │ │ │ │ ldr r2, [r0, r3, lsl #2] │ │ │ │ │ add r3, r3, #3 │ │ │ │ │ cmp r1, r3 │ │ │ │ │ mul r5, r2, r5 │ │ │ │ │ - bne 304 │ │ │ │ │ + bne 358 │ │ │ │ │ ldmib r7, {r2, r3} │ │ │ │ │ mov r6, #1 │ │ │ │ │ mul r1, r3, r2 │ │ │ │ │ ldr r2, [sp, #40] @ 0x28 │ │ │ │ │ str r1, [sp, #32] │ │ │ │ │ ldmib ip, {r0, r1} │ │ │ │ │ bl 0 │ │ │ │ │ R_ARM_CALL fftwf_mpi_block │ │ │ │ │ ldr r2, [sp, #32] │ │ │ │ │ - str r6, [sp, #4] │ │ │ │ │ - mov r1, r2 │ │ │ │ │ str r6, [sp] │ │ │ │ │ + str r6, [sp, #4] │ │ │ │ │ ldr r3, [r4, #8] │ │ │ │ │ + mov r1, r2 │ │ │ │ │ bl 0 │ │ │ │ │ R_ARM_CALL fftwf_mktensor_2d │ │ │ │ │ add r3, r4, #32 │ │ │ │ │ mov r2, r9 │ │ │ │ │ - str r3, [sp] │ │ │ │ │ - mov r3, r8 │ │ │ │ │ mov r1, r0 │ │ │ │ │ mov r0, r7 │ │ │ │ │ + str r3, [sp] │ │ │ │ │ + mov r3, r8 │ │ │ │ │ bl 0 │ │ │ │ │ R_ARM_CALL fftwf_mkproblem_rdft_d │ │ │ │ │ mov r1, r0 │ │ │ │ │ mov r0, fp │ │ │ │ │ bl 0 │ │ │ │ │ R_ARM_CALL fftwf_mkplan_d │ │ │ │ │ - ldr r1, [r4, #24] │ │ │ │ │ mov r7, r0 │ │ │ │ │ clz r0, r0 │ │ │ │ │ + ldr r1, [r4, #24] │ │ │ │ │ lsr r0, r0, #5 │ │ │ │ │ bl 0 │ │ │ │ │ R_ARM_CALL fftwf_mpi_any_true │ │ │ │ │ subs r9, r0, #0 │ │ │ │ │ - bne 504 │ │ │ │ │ + bne 554 │ │ │ │ │ ldr r3, [r4, #8] │ │ │ │ │ mul r5, r3, r5 │ │ │ │ │ ldr r3, [r4, #4] │ │ │ │ │ - ldr r1, [r3, #16] │ │ │ │ │ ldr r0, [r3, #4] │ │ │ │ │ + ldr r1, [r3, #16] │ │ │ │ │ str r9, [sp, #16] │ │ │ │ │ ldr r2, [r4, #24] │ │ │ │ │ str r2, [sp, #12] │ │ │ │ │ ldr r2, [r3, #24] │ │ │ │ │ str r2, [sp, #8] │ │ │ │ │ + mov r2, r5 │ │ │ │ │ ldr r3, [r3, #8] │ │ │ │ │ str r3, [sp, #4] │ │ │ │ │ ldr r3, [sp, #28] │ │ │ │ │ - mov r2, r5 │ │ │ │ │ str r3, [sp] │ │ │ │ │ mov r3, r8 │ │ │ │ │ bl 0 │ │ │ │ │ R_ARM_CALL fftwf_mpi_mkproblem_transpose │ │ │ │ │ mov r1, r0 │ │ │ │ │ mov r0, fp │ │ │ │ │ bl 0 │ │ │ │ │ R_ARM_CALL fftwf_mkplan_d │ │ │ │ │ - ldr r1, [r4, #24] │ │ │ │ │ mov r8, r0 │ │ │ │ │ clz r0, r0 │ │ │ │ │ + ldr r1, [r4, #24] │ │ │ │ │ lsr r0, r0, #5 │ │ │ │ │ bl 0 │ │ │ │ │ R_ARM_CALL fftwf_mpi_any_true │ │ │ │ │ cmp r0, #0 │ │ │ │ │ - bne 50c │ │ │ │ │ + bne 55c │ │ │ │ │ ldr r3, [r4, #4] │ │ │ │ │ ldr r2, [r3, #4] │ │ │ │ │ ldr r0, [r3, #16] │ │ │ │ │ mul r1, r2, r5 │ │ │ │ │ ldr r2, [sp, #40] @ 0x28 │ │ │ │ │ str r1, [sp, #32] │ │ │ │ │ ldr r1, [r3, #24] │ │ │ │ │ @@ -302,142 +323,151 @@ │ │ │ │ │ mov r2, r5 │ │ │ │ │ mov r1, r5 │ │ │ │ │ str r0, [sp, #36] @ 0x24 │ │ │ │ │ ldr r0, [r3, #4] │ │ │ │ │ bl 0 │ │ │ │ │ R_ARM_CALL fftwf_mktensor_1d │ │ │ │ │ ldr r2, [sp, #32] │ │ │ │ │ + mov r9, r0 │ │ │ │ │ mov r3, r5 │ │ │ │ │ - mov r1, r2 │ │ │ │ │ - str r6, [sp, #4] │ │ │ │ │ str r6, [sp] │ │ │ │ │ - mov r9, r0 │ │ │ │ │ ldr r0, [sp, #36] @ 0x24 │ │ │ │ │ + str r6, [sp, #4] │ │ │ │ │ + mov r1, r2 │ │ │ │ │ bl 0 │ │ │ │ │ R_ARM_CALL fftwf_mktensor_2d │ │ │ │ │ ldr r3, [r4, #28] │ │ │ │ │ + mov r1, r0 │ │ │ │ │ + mov r0, r9 │ │ │ │ │ str r3, [sp] │ │ │ │ │ ldr r3, [sp, #28] │ │ │ │ │ mov r2, r3 │ │ │ │ │ - mov r1, r0 │ │ │ │ │ - mov r0, r9 │ │ │ │ │ bl 0 │ │ │ │ │ R_ARM_CALL fftwf_mkproblem_rdft_1_d │ │ │ │ │ mov r1, r0 │ │ │ │ │ mov r0, fp │ │ │ │ │ bl 0 │ │ │ │ │ R_ARM_CALL fftwf_mkplan_d │ │ │ │ │ - ldr r1, [r4, #24] │ │ │ │ │ mov r9, r0 │ │ │ │ │ clz r0, r0 │ │ │ │ │ + ldr r1, [r4, #24] │ │ │ │ │ lsr r0, r0, #5 │ │ │ │ │ bl 0 │ │ │ │ │ R_ARM_CALL fftwf_mpi_any_true │ │ │ │ │ cmp r0, #0 │ │ │ │ │ - bne 50c │ │ │ │ │ - ldr r2, [pc, #188] @ 55c │ │ │ │ │ - ldr r1, [pc, #188] @ 560 │ │ │ │ │ + bne 55c │ │ │ │ │ + ldr r2, [pc, #184] @ 5ac │ │ │ │ │ + mov r0, #88 @ 0x58 │ │ │ │ │ + ldr r1, [pc, #180] @ 5b0 │ │ │ │ │ add r2, pc, r2 │ │ │ │ │ add r1, pc, r1 │ │ │ │ │ - mov r0, #88 @ 0x58 │ │ │ │ │ bl 0 │ │ │ │ │ R_ARM_CALL fftwf_mkplan_rdft │ │ │ │ │ ldr r3, [sl, #8] │ │ │ │ │ - add r1, r9, #8 │ │ │ │ │ - cmp r3, #0 │ │ │ │ │ - ldreq r3, [fp, #164] @ 0xa4 │ │ │ │ │ - movne r3, #2 │ │ │ │ │ - andeq r3, r3, #4096 @ 0x1000 │ │ │ │ │ add r5, r0, #8 │ │ │ │ │ - str r3, [r0, #84] @ 0x54 │ │ │ │ │ mov r4, r0 │ │ │ │ │ mov r2, r5 │ │ │ │ │ + add r1, r9, #8 │ │ │ │ │ str r7, [r0, #64] @ 0x40 │ │ │ │ │ str r8, [r0, #68] @ 0x44 │ │ │ │ │ str r9, [r0, #72] @ 0x48 │ │ │ │ │ + cmp r3, #0 │ │ │ │ │ + ldreq r3, [fp, #164] @ 0xa4 │ │ │ │ │ + movne r3, #2 │ │ │ │ │ + andeq r3, r3, #4096 @ 0x1000 │ │ │ │ │ + str r3, [r0, #84] @ 0x54 │ │ │ │ │ add r0, r7, #8 │ │ │ │ │ bl 0 │ │ │ │ │ R_ARM_CALL fftwf_ops_add │ │ │ │ │ add r0, r8, #8 │ │ │ │ │ mov r1, r5 │ │ │ │ │ bl 0 │ │ │ │ │ R_ARM_CALL fftwf_ops_add2 │ │ │ │ │ mov r0, r4 │ │ │ │ │ - add sp, sp, #52 @ 0x34 │ │ │ │ │ - pop {r4, r5, r6, r7, r8, r9, sl, fp, pc} │ │ │ │ │ + b 158 │ │ │ │ │ mov r9, #0 │ │ │ │ │ mov r8, r9 │ │ │ │ │ mov r0, r9 │ │ │ │ │ bl 0 │ │ │ │ │ R_ARM_CALL fftwf_plan_destroy_internal │ │ │ │ │ mov r0, r8 │ │ │ │ │ bl 0 │ │ │ │ │ R_ARM_CALL fftwf_plan_destroy_internal │ │ │ │ │ mov r0, r7 │ │ │ │ │ bl 0 │ │ │ │ │ R_ARM_CALL fftwf_plan_destroy_internal │ │ │ │ │ - b 118 │ │ │ │ │ + b 154 │ │ │ │ │ ldr r3, [fp, #164] @ 0xa4 │ │ │ │ │ tst r3, #4096 @ 0x1000 │ │ │ │ │ ldr r3, [sp, #28] │ │ │ │ │ moveq r8, r9 │ │ │ │ │ movne r8, r3 │ │ │ │ │ - b 1c4 │ │ │ │ │ + b 214 │ │ │ │ │ mov r6, r0 │ │ │ │ │ - b 298 │ │ │ │ │ + b 2e8 │ │ │ │ │ mov r0, r4 │ │ │ │ │ bl 0 │ │ │ │ │ R_ARM_CALL fftwf_mpi_rdft_serial_applicable │ │ │ │ │ cmp r0, #0 │ │ │ │ │ - beq 1a8 │ │ │ │ │ - b 118 │ │ │ │ │ - .word 0xfffffb58 │ │ │ │ │ - .word 0x000000b4 │ │ │ │ │ + beq 1f8 │ │ │ │ │ + b 154 │ │ │ │ │ + .word 0xfffffb00 │ │ │ │ │ + .word 0x000000ac │ │ │ │ │ R_ARM_REL32 .data.rel.ro │ │ │ │ │ │ │ │ │ │ -00000564 : │ │ │ │ │ +000005b4 : │ │ │ │ │ awake(): │ │ │ │ │ - push {r4, r5, r6, lr} │ │ │ │ │ + strd r4, [sp, #-16]! │ │ │ │ │ mov r4, r0 │ │ │ │ │ mov r5, r1 │ │ │ │ │ ldr r0, [r0, #64] @ 0x40 │ │ │ │ │ + str r6, [sp, #8] │ │ │ │ │ + str lr, [sp, #12] │ │ │ │ │ bl 0 │ │ │ │ │ R_ARM_CALL fftwf_plan_awake │ │ │ │ │ ldr r0, [r4, #68] @ 0x44 │ │ │ │ │ mov r1, r5 │ │ │ │ │ bl 0 │ │ │ │ │ R_ARM_CALL fftwf_plan_awake │ │ │ │ │ - ldr r0, [r4, #72] @ 0x48 │ │ │ │ │ + ldr r6, [sp, #8] │ │ │ │ │ mov r1, r5 │ │ │ │ │ - pop {r4, r5, r6, lr} │ │ │ │ │ + ldr lr, [sp, #12] │ │ │ │ │ + ldr r0, [r4, #72] @ 0x48 │ │ │ │ │ + ldrd r4, [sp] │ │ │ │ │ + add sp, sp, #16 │ │ │ │ │ b 0 │ │ │ │ │ R_ARM_JUMP24 fftwf_plan_awake │ │ │ │ │ │ │ │ │ │ -00000594 : │ │ │ │ │ +000005f8 : │ │ │ │ │ fftwf_mpi_rdft_rank_geq2_transposed_register(): │ │ │ │ │ - push {r4, r5, r6, lr} │ │ │ │ │ - ldr r5, [pc, #72] @ 5e8 │ │ │ │ │ + strd r4, [sp, #-16]! │ │ │ │ │ mov r4, r0 │ │ │ │ │ + mov r0, #12 │ │ │ │ │ + ldr r5, [pc, #84] @ 660 │ │ │ │ │ + str r6, [sp, #8] │ │ │ │ │ + str lr, [sp, #12] │ │ │ │ │ add r5, pc, r5 │ │ │ │ │ mov r1, r5 │ │ │ │ │ - mov r0, #12 │ │ │ │ │ bl 0 │ │ │ │ │ R_ARM_CALL fftwf_mksolver │ │ │ │ │ mov r3, #0 │ │ │ │ │ - str r3, [r0, #8] │ │ │ │ │ mov r1, r0 │ │ │ │ │ + str r3, [r0, #8] │ │ │ │ │ mov r0, r4 │ │ │ │ │ bl 0 │ │ │ │ │ R_ARM_CALL fftwf_solver_register │ │ │ │ │ mov r1, r5 │ │ │ │ │ mov r0, #12 │ │ │ │ │ bl 0 │ │ │ │ │ R_ARM_CALL fftwf_mksolver │ │ │ │ │ mov r3, #1 │ │ │ │ │ + ldr r6, [sp, #8] │ │ │ │ │ mov r1, r0 │ │ │ │ │ + ldr lr, [sp, #12] │ │ │ │ │ str r3, [r0, #8] │ │ │ │ │ mov r0, r4 │ │ │ │ │ - pop {r4, r5, r6, lr} │ │ │ │ │ + ldrd r4, [sp] │ │ │ │ │ + add sp, sp, #16 │ │ │ │ │ b 0 │ │ │ │ │ R_ARM_JUMP24 fftwf_solver_register │ │ │ │ │ - .word 0x00000040 │ │ │ │ │ + .word 0x00000048 │ │ │ │ │ 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: 3380 (bytes into file) │ │ │ │ │ + Start of section headers: 3512 (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 0xd34: │ │ │ │ │ +There are 16 section headers, starting at offset 0xdb8: │ │ │ │ │ │ │ │ │ │ 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 0004f4 00 AX 0 0 4 │ │ │ │ │ - [ 2] .rel.text REL 00000000 000b24 000158 08 I 13 1 4 │ │ │ │ │ - [ 3] .data PROGBITS 00000000 000528 000000 00 WA 0 0 1 │ │ │ │ │ - [ 4] .bss NOBITS 00000000 000528 000000 00 WA 0 0 1 │ │ │ │ │ - [ 5] .rodata.str1.4 PROGBITS 00000000 000528 00003a 01 AMS 0 0 4 │ │ │ │ │ - [ 6] .rodata PROGBITS 00000000 000562 000050 00 A 0 0 4 │ │ │ │ │ - [ 7] .data.rel.ro PROGBITS 00000000 0005b2 000010 00 WA 0 0 4 │ │ │ │ │ - [ 8] .rel.data.rel.ro REL 00000000 000c7c 000020 08 I 13 7 4 │ │ │ │ │ - [ 9] .data.rel.ro.local PROGBITS 00000000 0005c2 00000c 00 WA 0 0 4 │ │ │ │ │ - [10] .rel.data.rel.ro.local REL 00000000 000c9c 000008 08 I 13 9 4 │ │ │ │ │ - [11] .note.GNU-stack PROGBITS 00000000 0005ce 000000 00 0 0 1 │ │ │ │ │ - [12] .ARM.attributes ARM_ATTRIBUTES 00000000 0005ce 00002b 00 0 0 1 │ │ │ │ │ - [13] .symtab SYMTAB 00000000 0005fc 000300 10 14 24 4 │ │ │ │ │ - [14] .strtab STRTAB 00000000 0008fc 000226 00 0 0 1 │ │ │ │ │ - [15] .shstrtab STRTAB 00000000 000ca4 00008f 00 0 0 1 │ │ │ │ │ + [ 1] .text PROGBITS 00000000 000034 000578 00 AX 0 0 4 │ │ │ │ │ + [ 2] .rel.text REL 00000000 000ba8 000158 08 I 13 1 4 │ │ │ │ │ + [ 3] .data PROGBITS 00000000 0005ac 000000 00 WA 0 0 1 │ │ │ │ │ + [ 4] .bss NOBITS 00000000 0005ac 000000 00 WA 0 0 1 │ │ │ │ │ + [ 5] .rodata.str1.4 PROGBITS 00000000 0005ac 00003a 01 AMS 0 0 4 │ │ │ │ │ + [ 6] .rodata PROGBITS 00000000 0005e6 000050 00 A 0 0 4 │ │ │ │ │ + [ 7] .data.rel.ro PROGBITS 00000000 000636 000010 00 WA 0 0 4 │ │ │ │ │ + [ 8] .rel.data.rel.ro REL 00000000 000d00 000020 08 I 13 7 4 │ │ │ │ │ + [ 9] .data.rel.ro.local PROGBITS 00000000 000646 00000c 00 WA 0 0 4 │ │ │ │ │ + [10] .rel.data.rel.ro.local REL 00000000 000d20 000008 08 I 13 9 4 │ │ │ │ │ + [11] .note.GNU-stack PROGBITS 00000000 000652 000000 00 0 0 1 │ │ │ │ │ + [12] .ARM.attributes ARM_ATTRIBUTES 00000000 000652 00002b 00 0 0 1 │ │ │ │ │ + [13] .symtab SYMTAB 00000000 000680 000300 10 14 24 4 │ │ │ │ │ + [14] .strtab STRTAB 00000000 000980 000226 00 0 0 1 │ │ │ │ │ + [15] .shstrtab STRTAB 00000000 000d28 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: 00000000 0 NOTYPE LOCAL DEFAULT 1 $a │ │ │ │ │ - 2: 00000000 84 FUNC LOCAL DEFAULT 1 apply │ │ │ │ │ + 2: 00000000 104 FUNC LOCAL DEFAULT 1 apply │ │ │ │ │ 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: 00000054 148 FUNC LOCAL DEFAULT 1 print │ │ │ │ │ - 8: 000000d8 0 NOTYPE LOCAL DEFAULT 1 $d │ │ │ │ │ - 9: 000000e8 0 NOTYPE LOCAL DEFAULT 1 $a │ │ │ │ │ - 10: 000000e8 36 FUNC LOCAL DEFAULT 1 destroy │ │ │ │ │ - 11: 0000010c 840 FUNC LOCAL DEFAULT 1 mkplan │ │ │ │ │ - 12: 0000044c 0 NOTYPE LOCAL DEFAULT 1 $d │ │ │ │ │ - 13: 00000454 0 NOTYPE LOCAL DEFAULT 1 $a │ │ │ │ │ - 14: 00000454 48 FUNC LOCAL DEFAULT 1 awake │ │ │ │ │ - 15: 000004f0 0 NOTYPE LOCAL DEFAULT 1 $d │ │ │ │ │ + 7: 00000068 168 FUNC LOCAL DEFAULT 1 print │ │ │ │ │ + 8: 00000100 0 NOTYPE LOCAL DEFAULT 1 $d │ │ │ │ │ + 9: 00000110 0 NOTYPE LOCAL DEFAULT 1 $a │ │ │ │ │ + 10: 00000110 48 FUNC LOCAL DEFAULT 1 destroy │ │ │ │ │ + 11: 00000140 872 FUNC LOCAL DEFAULT 1 mkplan │ │ │ │ │ + 12: 000004a0 0 NOTYPE LOCAL DEFAULT 1 $d │ │ │ │ │ + 13: 000004a8 0 NOTYPE LOCAL DEFAULT 1 $a │ │ │ │ │ + 14: 000004a8 68 FUNC LOCAL DEFAULT 1 awake │ │ │ │ │ + 15: 00000574 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: 00000484 112 FUNC GLOBAL DEFAULT 1 fftwf_mpi_rdft_rank1_bigvec_register │ │ │ │ │ + 44: 000004ec 140 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,57 +1,57 @@ │ │ │ │ │ │ │ │ │ │ -Relocation section '.rel.text' at offset 0xb24 contains 43 entries: │ │ │ │ │ +Relocation section '.rel.text' at offset 0xba8 contains 43 entries: │ │ │ │ │ Offset Info Type Sym. Value Symbol's Name │ │ │ │ │ -00000078 0000181c R_ARM_CALL 00000000 memcpy │ │ │ │ │ -000000d8 00001003 R_ARM_REL32 00000000 .rodata │ │ │ │ │ -000000dc 00000503 R_ARM_REL32 00000004 .LC2 │ │ │ │ │ -000000e0 00000603 R_ARM_REL32 00000008 .LC3 │ │ │ │ │ -000000e4 00000403 R_ARM_REL32 00000000 .LC1 │ │ │ │ │ -000000f4 0000191c R_ARM_CALL 00000000 fftwf_plan_destroy_internal │ │ │ │ │ -000000fc 0000191c R_ARM_CALL 00000000 fftwf_plan_destroy_internal │ │ │ │ │ -00000108 0000191d R_ARM_JUMP24 00000000 fftwf_plan_destroy_internal │ │ │ │ │ -0000012c 00001a1c R_ARM_CALL 00000000 MPI_Comm_size │ │ │ │ │ -00000198 00001b1c R_ARM_CALL 00000000 fftwf_mpi_rearrange_applicable │ │ │ │ │ -000001b8 00001c1c R_ARM_CALL 00000000 MPI_Comm_rank │ │ │ │ │ -000001c4 00001a1c R_ARM_CALL 00000000 MPI_Comm_size │ │ │ │ │ -000001e8 00001d1c R_ARM_CALL 00000000 fftwf_mpi_rearrange_ny │ │ │ │ │ -000001fc 00001e1c R_ARM_CALL 00000000 __aeabi_idiv │ │ │ │ │ -00000210 00001f1c R_ARM_CALL 00000000 fftwf_mpi_default_block │ │ │ │ │ -00000254 0000201c R_ARM_CALL 00000000 fftwf_mpi_mkproblem_transpose │ │ │ │ │ -00000260 0000211c R_ARM_CALL 00000000 fftwf_mkplan_d │ │ │ │ │ -00000274 0000221c R_ARM_CALL 00000000 fftwf_mpi_any_true │ │ │ │ │ -000002a8 0000231c R_ARM_CALL 00000000 fftwf_mpi_block │ │ │ │ │ -000002bc 0000241c R_ARM_CALL 00000000 fftwf_mktensor_1d │ │ │ │ │ -000002e0 0000251c R_ARM_CALL 00000000 fftwf_mktensor_2d │ │ │ │ │ -000002fc 0000261c R_ARM_CALL 00000000 fftwf_mkproblem_rdft_1_d │ │ │ │ │ -00000308 0000211c R_ARM_CALL 00000000 fftwf_mkplan_d │ │ │ │ │ -0000031c 0000221c R_ARM_CALL 00000000 fftwf_mpi_any_true │ │ │ │ │ -00000360 0000201c R_ARM_CALL 00000000 fftwf_mpi_mkproblem_transpose │ │ │ │ │ -0000036c 0000211c R_ARM_CALL 00000000 fftwf_mkplan_d │ │ │ │ │ -00000380 0000221c R_ARM_CALL 00000000 fftwf_mpi_any_true │ │ │ │ │ -000003a0 0000271c R_ARM_CALL 00000000 fftwf_mkplan_rdft │ │ │ │ │ -000003ec 0000281c R_ARM_CALL 00000000 fftwf_ops_add │ │ │ │ │ -000003f8 0000291c R_ARM_CALL 00000000 fftwf_ops_add2 │ │ │ │ │ -00000410 0000191c R_ARM_CALL 00000000 fftwf_plan_destroy_internal │ │ │ │ │ -00000418 0000191c R_ARM_CALL 00000000 fftwf_plan_destroy_internal │ │ │ │ │ -00000420 0000191c R_ARM_CALL 00000000 fftwf_plan_destroy_internal │ │ │ │ │ -0000043c 00002a1c R_ARM_CALL 00000000 fftwf_mpi_rdft_serial_applicable │ │ │ │ │ -00000450 00001203 R_ARM_REL32 00000000 .data.rel.ro │ │ │ │ │ -00000464 00002b1c R_ARM_CALL 00000000 fftwf_plan_awake │ │ │ │ │ -00000470 00002b1c R_ARM_CALL 00000000 fftwf_plan_awake │ │ │ │ │ -00000480 00002b1d R_ARM_JUMP24 00000000 fftwf_plan_awake │ │ │ │ │ -000004a4 00002d1c R_ARM_CALL 00000000 fftwf_mksolver │ │ │ │ │ -000004b8 00002e1c R_ARM_CALL 00000000 fftwf_solver_register │ │ │ │ │ -000004c4 00002d1c R_ARM_CALL 00000000 fftwf_mksolver │ │ │ │ │ -000004e0 00002e1c R_ARM_CALL 00000000 fftwf_solver_register │ │ │ │ │ -000004f0 00001503 R_ARM_REL32 00000000 .data.rel.ro.local │ │ │ │ │ +00000094 0000181c R_ARM_CALL 00000000 memcpy │ │ │ │ │ +00000100 00001003 R_ARM_REL32 00000000 .rodata │ │ │ │ │ +00000104 00000503 R_ARM_REL32 00000004 .LC2 │ │ │ │ │ +00000108 00000603 R_ARM_REL32 00000008 .LC3 │ │ │ │ │ +0000010c 00000403 R_ARM_REL32 00000000 .LC1 │ │ │ │ │ +00000120 0000191c R_ARM_CALL 00000000 fftwf_plan_destroy_internal │ │ │ │ │ +00000128 0000191c R_ARM_CALL 00000000 fftwf_plan_destroy_internal │ │ │ │ │ +0000013c 0000191d R_ARM_JUMP24 00000000 fftwf_plan_destroy_internal │ │ │ │ │ +00000170 00001a1c R_ARM_CALL 00000000 MPI_Comm_size │ │ │ │ │ +000001f0 00001b1c R_ARM_CALL 00000000 fftwf_mpi_rearrange_applicable │ │ │ │ │ +00000210 00001c1c R_ARM_CALL 00000000 MPI_Comm_rank │ │ │ │ │ +0000021c 00001a1c R_ARM_CALL 00000000 MPI_Comm_size │ │ │ │ │ +00000240 00001d1c R_ARM_CALL 00000000 fftwf_mpi_rearrange_ny │ │ │ │ │ +00000258 00001e1c R_ARM_CALL 00000000 __aeabi_idiv │ │ │ │ │ +00000268 00001f1c R_ARM_CALL 00000000 fftwf_mpi_default_block │ │ │ │ │ +000002ac 0000201c R_ARM_CALL 00000000 fftwf_mpi_mkproblem_transpose │ │ │ │ │ +000002b8 0000211c R_ARM_CALL 00000000 fftwf_mkplan_d │ │ │ │ │ +000002cc 0000221c R_ARM_CALL 00000000 fftwf_mpi_any_true │ │ │ │ │ +00000300 0000231c R_ARM_CALL 00000000 fftwf_mpi_block │ │ │ │ │ +00000314 0000241c R_ARM_CALL 00000000 fftwf_mktensor_1d │ │ │ │ │ +00000338 0000251c R_ARM_CALL 00000000 fftwf_mktensor_2d │ │ │ │ │ +00000354 0000261c R_ARM_CALL 00000000 fftwf_mkproblem_rdft_1_d │ │ │ │ │ +00000360 0000211c R_ARM_CALL 00000000 fftwf_mkplan_d │ │ │ │ │ +00000374 0000221c R_ARM_CALL 00000000 fftwf_mpi_any_true │ │ │ │ │ +000003b8 0000201c R_ARM_CALL 00000000 fftwf_mpi_mkproblem_transpose │ │ │ │ │ +000003c4 0000211c R_ARM_CALL 00000000 fftwf_mkplan_d │ │ │ │ │ +000003d8 0000221c R_ARM_CALL 00000000 fftwf_mpi_any_true │ │ │ │ │ +000003f8 0000271c R_ARM_CALL 00000000 fftwf_mkplan_rdft │ │ │ │ │ +00000444 0000281c R_ARM_CALL 00000000 fftwf_ops_add │ │ │ │ │ +00000450 0000291c R_ARM_CALL 00000000 fftwf_ops_add2 │ │ │ │ │ +00000464 0000191c R_ARM_CALL 00000000 fftwf_plan_destroy_internal │ │ │ │ │ +0000046c 0000191c R_ARM_CALL 00000000 fftwf_plan_destroy_internal │ │ │ │ │ +00000474 0000191c R_ARM_CALL 00000000 fftwf_plan_destroy_internal │ │ │ │ │ +00000490 00002a1c R_ARM_CALL 00000000 fftwf_mpi_rdft_serial_applicable │ │ │ │ │ +000004a4 00001203 R_ARM_REL32 00000000 .data.rel.ro │ │ │ │ │ +000004c0 00002b1c R_ARM_CALL 00000000 fftwf_plan_awake │ │ │ │ │ +000004cc 00002b1c R_ARM_CALL 00000000 fftwf_plan_awake │ │ │ │ │ +000004e8 00002b1d R_ARM_JUMP24 00000000 fftwf_plan_awake │ │ │ │ │ +00000518 00002d1c R_ARM_CALL 00000000 fftwf_mksolver │ │ │ │ │ +0000052c 00002e1c R_ARM_CALL 00000000 fftwf_solver_register │ │ │ │ │ +00000538 00002d1c R_ARM_CALL 00000000 fftwf_mksolver │ │ │ │ │ +00000554 00002e1c R_ARM_CALL 00000000 fftwf_solver_register │ │ │ │ │ +00000574 00001503 R_ARM_REL32 00000000 .data.rel.ro.local │ │ │ │ │ │ │ │ │ │ -Relocation section '.rel.data.rel.ro' at offset 0xc7c contains 4 entries: │ │ │ │ │ +Relocation section '.rel.data.rel.ro' at offset 0xd00 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 00000454 awake │ │ │ │ │ -00000008 00000702 R_ARM_ABS32 00000054 print │ │ │ │ │ -0000000c 00000a02 R_ARM_ABS32 000000e8 destroy │ │ │ │ │ +00000004 00000e02 R_ARM_ABS32 000004a8 awake │ │ │ │ │ +00000008 00000702 R_ARM_ABS32 00000068 print │ │ │ │ │ +0000000c 00000a02 R_ARM_ABS32 00000110 destroy │ │ │ │ │ │ │ │ │ │ -Relocation section '.rel.data.rel.ro.local' at offset 0xc9c contains 1 entry: │ │ │ │ │ +Relocation section '.rel.data.rel.ro.local' at offset 0xd20 contains 1 entry: │ │ │ │ │ Offset Info Type Sym. Value Symbol's Name │ │ │ │ │ -00000004 00000b02 R_ARM_ABS32 0000010c mkplan │ │ │ │ │ +00000004 00000b02 R_ARM_ABS32 00000140 mkplan │ │ │ │ ├── objdump --line-numbers --disassemble --demangle --reloc --no-show-raw-insn --section=.text {} │ │ │ │ │ @@ -1,382 +1,415 @@ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ Disassembly of section .text: │ │ │ │ │ │ │ │ │ │ 00000000 : │ │ │ │ │ apply(): │ │ │ │ │ - push {r4, r5, r6, lr} │ │ │ │ │ + strd r4, [sp, #-16]! │ │ │ │ │ mov r5, r0 │ │ │ │ │ - ldr r0, [r0, #64] @ 0x40 │ │ │ │ │ mov r4, r1 │ │ │ │ │ - ldr r3, [r0, #56] @ 0x38 │ │ │ │ │ + ldr r0, [r0, #64] @ 0x40 │ │ │ │ │ + str r6, [sp, #8] │ │ │ │ │ mov r6, r2 │ │ │ │ │ + str lr, [sp, #12] │ │ │ │ │ + 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 │ │ │ │ │ - movne r4, r6 │ │ │ │ │ ldr r3, [r0, #56] @ 0x38 │ │ │ │ │ + movne r4, r6 │ │ │ │ │ mov r2, r4 │ │ │ │ │ - mov r1, r6 │ │ │ │ │ blx r3 │ │ │ │ │ ldr r0, [r5, #72] @ 0x48 │ │ │ │ │ mov r2, r6 │ │ │ │ │ mov r1, r4 │ │ │ │ │ + ldrd r4, [sp] │ │ │ │ │ + ldr r6, [sp, #8] │ │ │ │ │ + ldr lr, [sp, #12] │ │ │ │ │ + add sp, sp, #16 │ │ │ │ │ ldr r3, [r0, #56] @ 0x38 │ │ │ │ │ - pop {r4, r5, r6, lr} │ │ │ │ │ bx r3 │ │ │ │ │ │ │ │ │ │ -00000054 : │ │ │ │ │ +00000068 : │ │ │ │ │ print(): │ │ │ │ │ - push {r4, r5, r6, lr} │ │ │ │ │ + strd r4, [sp, #-16]! │ │ │ │ │ mov r5, r1 │ │ │ │ │ - sub sp, sp, #96 @ 0x60 │ │ │ │ │ - ldr r1, [pc, #112] @ d8 │ │ │ │ │ - add r3, sp, #16 │ │ │ │ │ mov r4, r0 │ │ │ │ │ + ldr r1, [pc, #132] @ 100 │ │ │ │ │ mov r2, #80 @ 0x50 │ │ │ │ │ + str r6, [sp, #8] │ │ │ │ │ + str lr, [sp, #12] │ │ │ │ │ + sub sp, sp, #96 @ 0x60 │ │ │ │ │ + add r3, sp, #16 │ │ │ │ │ mov r0, r3 │ │ │ │ │ add r1, pc, r1 │ │ │ │ │ bl 0 │ │ │ │ │ R_ARM_CALL memcpy │ │ │ │ │ ldr r3, [r4, #76] @ 0x4c │ │ │ │ │ ldr r2, [r4, #80] @ 0x50 │ │ │ │ │ - cmp r3, #2 │ │ │ │ │ ldr r6, [r5] │ │ │ │ │ + cmp r3, #2 │ │ │ │ │ add r2, r0, r2, lsl #4 │ │ │ │ │ - beq cc │ │ │ │ │ - ldr r3, [pc, #64] @ dc │ │ │ │ │ + beq f4 │ │ │ │ │ + ldr r3, [pc, #76] @ 104 │ │ │ │ │ add r3, pc, r3 │ │ │ │ │ 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] │ │ │ │ │ - ldr r1, [pc, #36] @ e0 │ │ │ │ │ - mov r0, r5 │ │ │ │ │ + ldr r1, [pc, #44] @ 108 │ │ │ │ │ add r1, pc, r1 │ │ │ │ │ blx r6 │ │ │ │ │ add sp, sp, #96 @ 0x60 │ │ │ │ │ - pop {r4, r5, r6, pc} │ │ │ │ │ - ldr r3, [pc, #16] @ e4 │ │ │ │ │ + ldrd r4, [sp] │ │ │ │ │ + ldr r6, [sp, #8] │ │ │ │ │ + add sp, sp, #12 │ │ │ │ │ + pop {pc} @ (ldr pc, [sp], #4) │ │ │ │ │ + ldr r3, [pc, #16] @ 10c │ │ │ │ │ add r3, pc, r3 │ │ │ │ │ - b 9c │ │ │ │ │ - .word 0x0000005c │ │ │ │ │ + b b8 │ │ │ │ │ + .word 0x00000068 │ │ │ │ │ R_ARM_REL32 .rodata │ │ │ │ │ - .word 0x0000003c │ │ │ │ │ + .word 0x00000048 │ │ │ │ │ R_ARM_REL32 .LC2 │ │ │ │ │ - .word 0x0000001c │ │ │ │ │ + .word 0x00000028 │ │ │ │ │ R_ARM_REL32 .LC3 │ │ │ │ │ .word 0x0000000c │ │ │ │ │ R_ARM_REL32 .LC1 │ │ │ │ │ │ │ │ │ │ -000000e8 : │ │ │ │ │ +00000110 : │ │ │ │ │ destroy(): │ │ │ │ │ - push {r4, lr} │ │ │ │ │ + str r4, [sp, #-8]! │ │ │ │ │ mov r4, r0 │ │ │ │ │ ldr r0, [r0, #72] @ 0x48 │ │ │ │ │ + str lr, [sp, #4] │ │ │ │ │ bl 0 │ │ │ │ │ R_ARM_CALL fftwf_plan_destroy_internal │ │ │ │ │ ldr r0, [r4, #68] @ 0x44 │ │ │ │ │ bl 0 │ │ │ │ │ R_ARM_CALL fftwf_plan_destroy_internal │ │ │ │ │ + ldr lr, [sp, #4] │ │ │ │ │ ldr r0, [r4, #64] @ 0x40 │ │ │ │ │ - pop {r4, lr} │ │ │ │ │ + ldr r4, [sp] │ │ │ │ │ + add sp, sp, #8 │ │ │ │ │ b 0 │ │ │ │ │ R_ARM_JUMP24 fftwf_plan_destroy_internal │ │ │ │ │ │ │ │ │ │ -0000010c : │ │ │ │ │ +00000140 : │ │ │ │ │ mkplan(): │ │ │ │ │ - push {r4, r5, r6, r7, r8, r9, sl, fp, lr} │ │ │ │ │ - sub sp, sp, #52 @ 0x34 │ │ │ │ │ + strd r4, [sp, #-36]! @ 0xffffffdc │ │ │ │ │ mov r4, r1 │ │ │ │ │ - add r5, sp, #44 @ 0x2c │ │ │ │ │ + strd r6, [sp, #8] │ │ │ │ │ mov r6, r0 │ │ │ │ │ - mov r1, r5 │ │ │ │ │ - ldr r0, [r4, #24] │ │ │ │ │ mov r7, r2 │ │ │ │ │ + strd r8, [sp, #16] │ │ │ │ │ + strd sl, [sp, #24] │ │ │ │ │ + str lr, [sp, #32] │ │ │ │ │ + sub sp, sp, #52 @ 0x34 │ │ │ │ │ + add r5, sp, #44 @ 0x2c │ │ │ │ │ + ldr r0, [r4, #24] │ │ │ │ │ + mov r1, r5 │ │ │ │ │ bl 0 │ │ │ │ │ R_ARM_CALL MPI_Comm_size │ │ │ │ │ ldr r3, [r4, #4] │ │ │ │ │ ldr r2, [r3] │ │ │ │ │ cmp r2, #1 │ │ │ │ │ - beq 14c │ │ │ │ │ + beq 1a4 │ │ │ │ │ mov r0, #0 │ │ │ │ │ add sp, sp, #52 @ 0x34 │ │ │ │ │ - pop {r4, r5, r6, r7, r8, r9, sl, fp, pc} │ │ │ │ │ + ldrd r4, [sp] │ │ │ │ │ + ldrd r6, [sp, #8] │ │ │ │ │ + ldrd r8, [sp, #16] │ │ │ │ │ + ldrd sl, [sp, #24] │ │ │ │ │ + add sp, sp, #32 │ │ │ │ │ + pop {pc} @ (ldr pc, [sp], #4) │ │ │ │ │ ldr r2, [r4, #20] │ │ │ │ │ bics r2, r2, #16 │ │ │ │ │ - bne 140 │ │ │ │ │ + bne 184 │ │ │ │ │ ldr r2, [r6, #8] │ │ │ │ │ cmp r2, #0 │ │ │ │ │ - beq 180 │ │ │ │ │ + beq 1d8 │ │ │ │ │ ldr r2, [r7, #164] @ 0xa4 │ │ │ │ │ tst r2, #4096 @ 0x1000 │ │ │ │ │ - bne 140 │ │ │ │ │ + bne 184 │ │ │ │ │ ldr r1, [r4, #12] │ │ │ │ │ ldr r2, [r4, #16] │ │ │ │ │ cmp r1, r2 │ │ │ │ │ - beq 140 │ │ │ │ │ + beq 184 │ │ │ │ │ ldr r2, [sp, #44] @ 0x2c │ │ │ │ │ str r2, [sp, #4] │ │ │ │ │ ldr r2, [r4, #8] │ │ │ │ │ str r2, [sp] │ │ │ │ │ ldmib r3, {r1, r2, r3} │ │ │ │ │ ldr r0, [r6, #12] │ │ │ │ │ bl 0 │ │ │ │ │ R_ARM_CALL fftwf_mpi_rearrange_applicable │ │ │ │ │ cmp r0, #0 │ │ │ │ │ - beq 140 │ │ │ │ │ + beq 184 │ │ │ │ │ ldr r3, [r7, #164] @ 0xa4 │ │ │ │ │ tst r3, #8 │ │ │ │ │ - bne 438 │ │ │ │ │ - add r1, sp, #40 @ 0x28 │ │ │ │ │ + bne 48c │ │ │ │ │ ldr r0, [r4, #24] │ │ │ │ │ + add r1, sp, #40 @ 0x28 │ │ │ │ │ bl 0 │ │ │ │ │ R_ARM_CALL MPI_Comm_rank │ │ │ │ │ - mov r1, r5 │ │ │ │ │ ldr r0, [r4, #24] │ │ │ │ │ + mov r1, r5 │ │ │ │ │ bl 0 │ │ │ │ │ R_ARM_CALL MPI_Comm_size │ │ │ │ │ ldr r3, [r4, #4] │ │ │ │ │ ldr r2, [sp, #44] @ 0x2c │ │ │ │ │ ldr sl, [r3, #4]! │ │ │ │ │ str r2, [sp, #4] │ │ │ │ │ ldr r2, [r4, #8] │ │ │ │ │ str r2, [sp] │ │ │ │ │ ldm r3, {r1, r2, r3} │ │ │ │ │ ldr r0, [r6, #12] │ │ │ │ │ bl 0 │ │ │ │ │ R_ARM_CALL fftwf_mpi_rearrange_ny │ │ │ │ │ subs r5, r0, #0 │ │ │ │ │ - beq 140 │ │ │ │ │ + beq 184 │ │ │ │ │ ldr r0, [r4, #8] │ │ │ │ │ mov r1, r5 │ │ │ │ │ + mov r9, #0 │ │ │ │ │ bl 0 <__aeabi_idiv> │ │ │ │ │ R_ARM_CALL __aeabi_idiv │ │ │ │ │ ldr r1, [sp, #44] @ 0x2c │ │ │ │ │ - mov r9, #0 │ │ │ │ │ mov r8, r0 │ │ │ │ │ mov r0, r5 │ │ │ │ │ bl 0 │ │ │ │ │ R_ARM_CALL fftwf_mpi_default_block │ │ │ │ │ - ldr r2, [r4, #16] │ │ │ │ │ ldr fp, [r4, #12] │ │ │ │ │ + mov r1, r5 │ │ │ │ │ + str r0, [sp, #28] │ │ │ │ │ + ldr r2, [r4, #16] │ │ │ │ │ str r9, [sp, #16] │ │ │ │ │ ldr r3, [r4, #24] │ │ │ │ │ - str r3, [sp, #12] │ │ │ │ │ - mov r1, r5 │ │ │ │ │ - str r2, [sp, #24] │ │ │ │ │ str r0, [sp, #8] │ │ │ │ │ + mov r0, sl │ │ │ │ │ + str r3, [sp, #12] │ │ │ │ │ ldr r3, [r4, #4] │ │ │ │ │ - str r0, [sp, #28] │ │ │ │ │ + str r2, [sp, #24] │ │ │ │ │ ldr r3, [r3, #8] │ │ │ │ │ - str r3, [sp, #4] │ │ │ │ │ str r2, [sp] │ │ │ │ │ - mov r3, fp │ │ │ │ │ mov r2, r8 │ │ │ │ │ - mov r0, sl │ │ │ │ │ + str r3, [sp, #4] │ │ │ │ │ + mov r3, fp │ │ │ │ │ bl 0 │ │ │ │ │ R_ARM_CALL fftwf_mpi_mkproblem_transpose │ │ │ │ │ mov r1, r0 │ │ │ │ │ mov r0, r7 │ │ │ │ │ bl 0 │ │ │ │ │ R_ARM_CALL fftwf_mkplan_d │ │ │ │ │ - ldr r1, [r4, #24] │ │ │ │ │ str r0, [sp, #32] │ │ │ │ │ clz r0, r0 │ │ │ │ │ + ldr r1, [r4, #24] │ │ │ │ │ lsr r0, r0, #5 │ │ │ │ │ bl 0 │ │ │ │ │ R_ARM_CALL fftwf_mpi_any_true │ │ │ │ │ cmp r0, r9 │ │ │ │ │ - bne 430 │ │ │ │ │ + bne 484 │ │ │ │ │ ldr r3, [r6, #8] │ │ │ │ │ cmp r3, r9 │ │ │ │ │ - bne 428 │ │ │ │ │ + bne 47c │ │ │ │ │ ldr r3, [r7, #164] @ 0xa4 │ │ │ │ │ ldr r2, [sp, #24] │ │ │ │ │ tst r3, #4096 @ 0x1000 │ │ │ │ │ movne fp, r2 │ │ │ │ │ - ldr r2, [sp, #40] @ 0x28 │ │ │ │ │ ldr r1, [sp, #28] │ │ │ │ │ mov r0, r5 │ │ │ │ │ + ldr r2, [sp, #40] @ 0x28 │ │ │ │ │ bl 0 │ │ │ │ │ R_ARM_CALL fftwf_mpi_block │ │ │ │ │ + mov r9, r0 │ │ │ │ │ mov r2, r8 │ │ │ │ │ mov r1, r8 │ │ │ │ │ - mov r9, r0 │ │ │ │ │ mov r0, sl │ │ │ │ │ bl 0 │ │ │ │ │ R_ARM_CALL fftwf_mktensor_1d │ │ │ │ │ mul r2, r8, sl │ │ │ │ │ mov r3, #1 │ │ │ │ │ + str r3, [sp] │ │ │ │ │ mov r1, r2 │ │ │ │ │ str r3, [sp, #4] │ │ │ │ │ - str r3, [sp] │ │ │ │ │ mov r3, r8 │ │ │ │ │ str r0, [sp, #36] @ 0x24 │ │ │ │ │ mov r0, r9 │ │ │ │ │ bl 0 │ │ │ │ │ R_ARM_CALL fftwf_mktensor_2d │ │ │ │ │ ldr r3, [r4, #28] │ │ │ │ │ + mov r1, r0 │ │ │ │ │ ldr r2, [sp, #24] │ │ │ │ │ + ldr r0, [sp, #36] @ 0x24 │ │ │ │ │ str r3, [sp] │ │ │ │ │ mov r3, fp │ │ │ │ │ - mov r1, r0 │ │ │ │ │ - ldr r0, [sp, #36] @ 0x24 │ │ │ │ │ bl 0 │ │ │ │ │ R_ARM_CALL fftwf_mkproblem_rdft_1_d │ │ │ │ │ mov r1, r0 │ │ │ │ │ mov r0, r7 │ │ │ │ │ bl 0 │ │ │ │ │ R_ARM_CALL fftwf_mkplan_d │ │ │ │ │ - ldr r1, [r4, #24] │ │ │ │ │ mov r9, r0 │ │ │ │ │ clz r0, r0 │ │ │ │ │ + ldr r1, [r4, #24] │ │ │ │ │ lsr r0, r0, #5 │ │ │ │ │ bl 0 │ │ │ │ │ R_ARM_CALL fftwf_mpi_any_true │ │ │ │ │ cmp r0, #0 │ │ │ │ │ - bne 408 │ │ │ │ │ + bne 45c │ │ │ │ │ str r0, [sp, #16] │ │ │ │ │ + mov r2, r8 │ │ │ │ │ + mov r1, sl │ │ │ │ │ ldr r3, [r4, #24] │ │ │ │ │ + mov r0, r5 │ │ │ │ │ str r3, [sp, #12] │ │ │ │ │ ldr r3, [r4, #4] │ │ │ │ │ - mov r2, r8 │ │ │ │ │ ldr r3, [r3, #12] │ │ │ │ │ str r3, [sp, #8] │ │ │ │ │ ldr r3, [sp, #28] │ │ │ │ │ str r3, [sp, #4] │ │ │ │ │ ldr r3, [sp, #24] │ │ │ │ │ - mov r1, sl │ │ │ │ │ - mov r0, r5 │ │ │ │ │ str r3, [sp] │ │ │ │ │ mov r3, fp │ │ │ │ │ bl 0 │ │ │ │ │ R_ARM_CALL fftwf_mpi_mkproblem_transpose │ │ │ │ │ mov r1, r0 │ │ │ │ │ mov r0, r7 │ │ │ │ │ bl 0 │ │ │ │ │ R_ARM_CALL fftwf_mkplan_d │ │ │ │ │ - ldr r1, [r4, #24] │ │ │ │ │ mov r5, r0 │ │ │ │ │ clz r0, r0 │ │ │ │ │ + ldr r1, [r4, #24] │ │ │ │ │ lsr r0, r0, #5 │ │ │ │ │ bl 0 │ │ │ │ │ R_ARM_CALL fftwf_mpi_any_true │ │ │ │ │ cmp r0, #0 │ │ │ │ │ - bne 40c │ │ │ │ │ - ldr r2, [pc, #184] @ 44c │ │ │ │ │ - ldr r1, [pc, #184] @ 450 │ │ │ │ │ + bne 460 │ │ │ │ │ + ldr r2, [pc, #180] @ 4a0 │ │ │ │ │ + mov r0, #88 @ 0x58 │ │ │ │ │ + ldr r1, [pc, #176] @ 4a4 │ │ │ │ │ add r2, pc, r2 │ │ │ │ │ add r1, pc, r1 │ │ │ │ │ - mov r0, #88 @ 0x58 │ │ │ │ │ bl 0 │ │ │ │ │ R_ARM_CALL fftwf_mkplan_rdft │ │ │ │ │ ldr r3, [sp, #32] │ │ │ │ │ + mov r4, r0 │ │ │ │ │ add r1, r9, #8 │ │ │ │ │ str r3, [r0, #64] @ 0x40 │ │ │ │ │ ldr r3, [r6, #8] │ │ │ │ │ - mov r4, r0 │ │ │ │ │ + str r9, [r0, #68] @ 0x44 │ │ │ │ │ + str r5, [r0, #72] @ 0x48 │ │ │ │ │ cmp r3, #0 │ │ │ │ │ ldreq r3, [r7, #164] @ 0xa4 │ │ │ │ │ movne r3, #2 │ │ │ │ │ andeq r3, r3, #4096 @ 0x1000 │ │ │ │ │ str r3, [r0, #76] @ 0x4c │ │ │ │ │ ldr r3, [r6, #12] │ │ │ │ │ - str r3, [r0, #80] @ 0x50 │ │ │ │ │ - ldr r3, [sp, #32] │ │ │ │ │ add r6, r0, #8 │ │ │ │ │ mov r2, r6 │ │ │ │ │ - str r9, [r0, #68] @ 0x44 │ │ │ │ │ - str r5, [r0, #72] @ 0x48 │ │ │ │ │ + str r3, [r0, #80] @ 0x50 │ │ │ │ │ + ldr r3, [sp, #32] │ │ │ │ │ add r0, r3, #8 │ │ │ │ │ bl 0 │ │ │ │ │ R_ARM_CALL fftwf_ops_add │ │ │ │ │ add r0, r5, #8 │ │ │ │ │ mov r1, r6 │ │ │ │ │ bl 0 │ │ │ │ │ R_ARM_CALL fftwf_ops_add2 │ │ │ │ │ mov r0, r4 │ │ │ │ │ - add sp, sp, #52 @ 0x34 │ │ │ │ │ - pop {r4, r5, r6, r7, r8, r9, sl, fp, pc} │ │ │ │ │ + b 188 │ │ │ │ │ mov r5, #0 │ │ │ │ │ mov r0, r5 │ │ │ │ │ bl 0 │ │ │ │ │ R_ARM_CALL fftwf_plan_destroy_internal │ │ │ │ │ mov r0, r9 │ │ │ │ │ bl 0 │ │ │ │ │ R_ARM_CALL fftwf_plan_destroy_internal │ │ │ │ │ ldr r0, [sp, #32] │ │ │ │ │ bl 0 │ │ │ │ │ R_ARM_CALL fftwf_plan_destroy_internal │ │ │ │ │ - b 140 │ │ │ │ │ + b 184 │ │ │ │ │ ldr fp, [sp, #24] │ │ │ │ │ - b 29c │ │ │ │ │ + b 2f4 │ │ │ │ │ mov r5, r9 │ │ │ │ │ - b 40c │ │ │ │ │ + b 460 │ │ │ │ │ mov r0, r4 │ │ │ │ │ bl 0 │ │ │ │ │ R_ARM_CALL fftwf_mpi_rdft_serial_applicable │ │ │ │ │ cmp r0, #0 │ │ │ │ │ - bne 140 │ │ │ │ │ - b 1b0 │ │ │ │ │ - .word 0xfffffc64 │ │ │ │ │ - .word 0x000000b0 │ │ │ │ │ + bne 184 │ │ │ │ │ + b 208 │ │ │ │ │ + .word 0xfffffc08 │ │ │ │ │ + .word 0x000000a8 │ │ │ │ │ R_ARM_REL32 .data.rel.ro │ │ │ │ │ │ │ │ │ │ -00000454 : │ │ │ │ │ +000004a8 : │ │ │ │ │ awake(): │ │ │ │ │ - push {r4, r5, r6, lr} │ │ │ │ │ + strd r4, [sp, #-16]! │ │ │ │ │ mov r4, r0 │ │ │ │ │ mov r5, r1 │ │ │ │ │ ldr r0, [r0, #64] @ 0x40 │ │ │ │ │ + str r6, [sp, #8] │ │ │ │ │ + str lr, [sp, #12] │ │ │ │ │ bl 0 │ │ │ │ │ R_ARM_CALL fftwf_plan_awake │ │ │ │ │ ldr r0, [r4, #68] @ 0x44 │ │ │ │ │ mov r1, r5 │ │ │ │ │ bl 0 │ │ │ │ │ R_ARM_CALL fftwf_plan_awake │ │ │ │ │ - ldr r0, [r4, #72] @ 0x48 │ │ │ │ │ + ldr r6, [sp, #8] │ │ │ │ │ mov r1, r5 │ │ │ │ │ - pop {r4, r5, r6, lr} │ │ │ │ │ + ldr lr, [sp, #12] │ │ │ │ │ + ldr r0, [r4, #72] @ 0x48 │ │ │ │ │ + ldrd r4, [sp] │ │ │ │ │ + add sp, sp, #16 │ │ │ │ │ b 0 │ │ │ │ │ R_ARM_JUMP24 fftwf_plan_awake │ │ │ │ │ │ │ │ │ │ -00000484 : │ │ │ │ │ +000004ec : │ │ │ │ │ fftwf_mpi_rdft_rank1_bigvec_register(): │ │ │ │ │ - push {r4, r5, r6, r7, r8, lr} │ │ │ │ │ - ldr r6, [pc, #96] @ 4f0 │ │ │ │ │ + strd r4, [sp, #-24]! @ 0xffffffe8 │ │ │ │ │ mov r4, #0 │ │ │ │ │ mov r5, r0 │ │ │ │ │ - add r6, pc, r6 │ │ │ │ │ + strd r6, [sp, #8] │ │ │ │ │ mov r7, r4 │ │ │ │ │ + ldr r6, [pc, #108] @ 574 │ │ │ │ │ + str r8, [sp, #16] │ │ │ │ │ + str lr, [sp, #20] │ │ │ │ │ + add r6, pc, r6 │ │ │ │ │ mov r1, r6 │ │ │ │ │ mov r0, #16 │ │ │ │ │ bl 0 │ │ │ │ │ R_ARM_CALL fftwf_mksolver │ │ │ │ │ mov r1, r0 │ │ │ │ │ - str r4, [r0, #12] │ │ │ │ │ str r7, [r0, #8] │ │ │ │ │ + str r4, [r0, #12] │ │ │ │ │ mov r0, r5 │ │ │ │ │ bl 0 │ │ │ │ │ R_ARM_CALL fftwf_solver_register │ │ │ │ │ mov r1, r6 │ │ │ │ │ mov r0, #16 │ │ │ │ │ bl 0 │ │ │ │ │ R_ARM_CALL fftwf_mksolver │ │ │ │ │ mov r3, #1 │ │ │ │ │ - str r4, [r0, #12] │ │ │ │ │ mov r1, r0 │ │ │ │ │ str r3, [r0, #8] │ │ │ │ │ - add r4, r4, #1 │ │ │ │ │ + str r4, [r0, #12] │ │ │ │ │ mov r0, r5 │ │ │ │ │ + add r4, r4, #1 │ │ │ │ │ bl 0 │ │ │ │ │ R_ARM_CALL fftwf_solver_register │ │ │ │ │ cmp r4, #4 │ │ │ │ │ - bne 49c │ │ │ │ │ - pop {r4, r5, r6, r7, r8, pc} │ │ │ │ │ - .word 0x00000054 │ │ │ │ │ + bne 510 │ │ │ │ │ + ldrd r4, [sp] │ │ │ │ │ + ldrd r6, [sp, #8] │ │ │ │ │ + ldr r8, [sp, #16] │ │ │ │ │ + add sp, sp, #20 │ │ │ │ │ + pop {pc} @ (ldr pc, [sp], #4) │ │ │ │ │ + .word 0x00000060 │ │ │ │ │ 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: 2592 (bytes into file) │ │ │ │ │ + Start of section headers: 2700 (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 0xa20: │ │ │ │ │ +There are 13 section headers, starting at offset 0xa8c: │ │ │ │ │ │ │ │ │ │ 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 000410 00 AX 0 0 4 │ │ │ │ │ - [ 2] .rel.text REL 00000000 000898 0000f0 08 I 10 1 4 │ │ │ │ │ - [ 3] .data PROGBITS 00000000 000444 000000 00 WA 0 0 1 │ │ │ │ │ - [ 4] .bss NOBITS 00000000 000444 000000 00 WA 0 0 1 │ │ │ │ │ - [ 5] .rodata.str1.4 PROGBITS 00000000 000444 000030 01 AMS 0 0 4 │ │ │ │ │ - [ 6] .data.rel.ro.local PROGBITS 00000000 000474 000014 00 WA 0 0 4 │ │ │ │ │ - [ 7] .rel.data.rel.ro.local REL 00000000 000988 000020 08 I 10 6 4 │ │ │ │ │ - [ 8] .note.GNU-stack PROGBITS 00000000 000488 000000 00 0 0 1 │ │ │ │ │ - [ 9] .ARM.attributes ARM_ATTRIBUTES 00000000 000488 00002b 00 0 0 1 │ │ │ │ │ - [10] .symtab SYMTAB 00000000 0004b4 000270 10 11 21 4 │ │ │ │ │ - [11] .strtab STRTAB 00000000 000724 000173 00 0 0 1 │ │ │ │ │ - [12] .shstrtab STRTAB 00000000 0009a8 000076 00 0 0 1 │ │ │ │ │ + [ 1] .text PROGBITS 00000000 000034 00047c 00 AX 0 0 4 │ │ │ │ │ + [ 2] .rel.text REL 00000000 000904 0000f0 08 I 10 1 4 │ │ │ │ │ + [ 3] .data PROGBITS 00000000 0004b0 000000 00 WA 0 0 1 │ │ │ │ │ + [ 4] .bss NOBITS 00000000 0004b0 000000 00 WA 0 0 1 │ │ │ │ │ + [ 5] .rodata.str1.4 PROGBITS 00000000 0004b0 000030 01 AMS 0 0 4 │ │ │ │ │ + [ 6] .data.rel.ro.local PROGBITS 00000000 0004e0 000014 00 WA 0 0 4 │ │ │ │ │ + [ 7] .rel.data.rel.ro.local REL 00000000 0009f4 000020 08 I 10 6 4 │ │ │ │ │ + [ 8] .note.GNU-stack PROGBITS 00000000 0004f4 000000 00 0 0 1 │ │ │ │ │ + [ 9] .ARM.attributes ARM_ATTRIBUTES 00000000 0004f4 00002b 00 0 0 1 │ │ │ │ │ + [10] .symtab SYMTAB 00000000 000520 000270 10 11 21 4 │ │ │ │ │ + [11] .strtab STRTAB 00000000 000790 000173 00 0 0 1 │ │ │ │ │ + [12] .shstrtab STRTAB 00000000 000a14 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: 00000000 0 NOTYPE LOCAL DEFAULT 1 $a │ │ │ │ │ - 2: 00000000 36 FUNC LOCAL DEFAULT 1 destroy │ │ │ │ │ + 2: 00000000 48 FUNC LOCAL DEFAULT 1 destroy │ │ │ │ │ 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: 00000024 268 FUNC LOCAL DEFAULT 1 print │ │ │ │ │ - 9: 00000120 0 NOTYPE LOCAL DEFAULT 1 $d │ │ │ │ │ - 10: 00000130 0 NOTYPE LOCAL DEFAULT 1 $a │ │ │ │ │ - 11: 00000130 84 FUNC LOCAL DEFAULT 1 zero │ │ │ │ │ + 8: 00000030 296 FUNC LOCAL DEFAULT 1 print │ │ │ │ │ + 9: 00000148 0 NOTYPE LOCAL DEFAULT 1 $d │ │ │ │ │ + 10: 00000158 0 NOTYPE LOCAL DEFAULT 1 $a │ │ │ │ │ + 11: 00000158 104 FUNC LOCAL DEFAULT 1 zero │ │ │ │ │ 12: 00000028 0 NOTYPE LOCAL DEFAULT 5 .LC4 │ │ │ │ │ - 13: 00000184 200 FUNC LOCAL DEFAULT 1 hash │ │ │ │ │ - 14: 00000248 0 NOTYPE LOCAL DEFAULT 1 $d │ │ │ │ │ - 15: 0000024c 0 NOTYPE LOCAL DEFAULT 1 $a │ │ │ │ │ - 16: 000003cc 0 NOTYPE LOCAL DEFAULT 1 $d │ │ │ │ │ - 17: 000003d0 0 NOTYPE LOCAL DEFAULT 1 $a │ │ │ │ │ + 13: 000001c0 212 FUNC LOCAL DEFAULT 1 hash │ │ │ │ │ + 14: 00000290 0 NOTYPE LOCAL DEFAULT 1 $d │ │ │ │ │ + 15: 00000294 0 NOTYPE LOCAL DEFAULT 1 $a │ │ │ │ │ + 16: 0000042c 0 NOTYPE LOCAL DEFAULT 1 $d │ │ │ │ │ + 17: 00000430 0 NOTYPE LOCAL DEFAULT 1 $a │ │ │ │ │ 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: 0000024c 388 FUNC GLOBAL DEFAULT 1 fftwf_mpi_mkproblem_rdft │ │ │ │ │ + 34: 00000294 412 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: 000003d0 64 FUNC GLOBAL DEFAULT 1 fftwf_mpi_mkproblem_rdft_d │ │ │ │ │ + 38: 00000430 76 FUNC GLOBAL DEFAULT 1 fftwf_mpi_mkproblem_rdft_d │ │ │ │ ├── readelf --wide --relocs {} │ │ │ │ │ @@ -1,40 +1,40 @@ │ │ │ │ │ │ │ │ │ │ -Relocation section '.rel.text' at offset 0x898 contains 30 entries: │ │ │ │ │ +Relocation section '.rel.text' at offset 0x904 contains 30 entries: │ │ │ │ │ Offset Info Type Sym. Value Symbol's Name │ │ │ │ │ -0000000c 0000151c R_ARM_CALL 00000000 fftwf_mpi_dtensor_destroy │ │ │ │ │ -00000014 0000161c R_ARM_CALL 00000000 MPI_Comm_free │ │ │ │ │ -00000020 0000171d R_ARM_JUMP24 00000000 fftwf_ifree │ │ │ │ │ -00000044 0000181c R_ARM_CALL 00000000 fftwf_ialignment_of │ │ │ │ │ -00000058 0000181c R_ARM_CALL 00000000 fftwf_ialignment_of │ │ │ │ │ -00000080 0000191c R_ARM_CALL 00000000 fftwf_mpi_dtensor_print │ │ │ │ │ -000000fc 00001a1c R_ARM_CALL 00000000 MPI_Comm_size │ │ │ │ │ -00000120 00000403 R_ARM_REL32 00000000 .LC0 │ │ │ │ │ -00000124 00000503 R_ARM_REL32 00000014 .LC1 │ │ │ │ │ -00000128 00000603 R_ARM_REL32 00000018 .LC2 │ │ │ │ │ -0000012c 00000703 R_ARM_REL32 00000020 .LC3 │ │ │ │ │ -00000148 00001b1c R_ARM_CALL 00000000 MPI_Comm_rank │ │ │ │ │ -0000015c 00001c1c R_ARM_CALL 00000000 fftwf_mpi_total_block │ │ │ │ │ -00000178 00001d1c R_ARM_CALL 00000000 memset │ │ │ │ │ -000001a0 00001e1c R_ARM_CALL 00000000 fftwf_md5puts │ │ │ │ │ -000001bc 00001f1c R_ARM_CALL 00000000 fftwf_md5int │ │ │ │ │ -000001c8 0000201c R_ARM_CALL 00000000 fftwf_mpi_dtensor_md5 │ │ │ │ │ -000001d4 0000211c R_ARM_CALL 00000000 fftwf_md5INT │ │ │ │ │ +00000010 0000151c R_ARM_CALL 00000000 fftwf_mpi_dtensor_destroy │ │ │ │ │ +00000018 0000161c R_ARM_CALL 00000000 MPI_Comm_free │ │ │ │ │ +0000002c 0000171d R_ARM_JUMP24 00000000 fftwf_ifree │ │ │ │ │ +0000005c 0000181c R_ARM_CALL 00000000 fftwf_ialignment_of │ │ │ │ │ +0000006c 0000181c R_ARM_CALL 00000000 fftwf_ialignment_of │ │ │ │ │ +00000098 0000191c R_ARM_CALL 00000000 fftwf_mpi_dtensor_print │ │ │ │ │ +00000114 00001a1c R_ARM_CALL 00000000 MPI_Comm_size │ │ │ │ │ +00000148 00000403 R_ARM_REL32 00000000 .LC0 │ │ │ │ │ +0000014c 00000503 R_ARM_REL32 00000014 .LC1 │ │ │ │ │ +00000150 00000603 R_ARM_REL32 00000018 .LC2 │ │ │ │ │ +00000154 00000703 R_ARM_REL32 00000020 .LC3 │ │ │ │ │ +00000178 00001b1c R_ARM_CALL 00000000 MPI_Comm_rank │ │ │ │ │ +0000018c 00001c1c R_ARM_CALL 00000000 fftwf_mpi_total_block │ │ │ │ │ +000001a8 00001d1c R_ARM_CALL 00000000 memset │ │ │ │ │ +000001e0 00001e1c R_ARM_CALL 00000000 fftwf_md5puts │ │ │ │ │ 000001fc 00001f1c R_ARM_CALL 00000000 fftwf_md5int │ │ │ │ │ -00000224 00001f1c R_ARM_CALL 00000000 fftwf_md5int │ │ │ │ │ -00000230 00001a1c R_ARM_CALL 00000000 MPI_Comm_size │ │ │ │ │ +00000208 0000201c R_ARM_CALL 00000000 fftwf_mpi_dtensor_md5 │ │ │ │ │ +00000214 0000211c R_ARM_CALL 00000000 fftwf_md5INT │ │ │ │ │ 0000023c 00001f1c R_ARM_CALL 00000000 fftwf_md5int │ │ │ │ │ -00000248 00000c03 R_ARM_REL32 00000028 .LC4 │ │ │ │ │ -0000027c 00001a1c R_ARM_CALL 00000000 MPI_Comm_size │ │ │ │ │ -00000298 0000231c R_ARM_CALL 00000000 fftwf_mkproblem │ │ │ │ │ -000002a8 0000241c R_ARM_CALL 00000000 fftwf_mpi_dtensor_canonical │ │ │ │ │ -00000358 0000251c R_ARM_CALL 00000000 MPI_Comm_dup │ │ │ │ │ -000003cc 00001203 R_ARM_REL32 00000000 .data.rel.ro.local │ │ │ │ │ -000003f4 0000221c R_ARM_CALL 0000024c fftwf_mpi_mkproblem_rdft │ │ │ │ │ -00000400 0000151c R_ARM_CALL 00000000 fftwf_mpi_dtensor_destroy │ │ │ │ │ +00000264 00001f1c R_ARM_CALL 00000000 fftwf_md5int │ │ │ │ │ +00000270 00001a1c R_ARM_CALL 00000000 MPI_Comm_size │ │ │ │ │ +0000027c 00001f1c R_ARM_CALL 00000000 fftwf_md5int │ │ │ │ │ +00000290 00000c03 R_ARM_REL32 00000028 .LC4 │ │ │ │ │ +000002d0 00001a1c R_ARM_CALL 00000000 MPI_Comm_size │ │ │ │ │ +000002ec 0000231c R_ARM_CALL 00000000 fftwf_mkproblem │ │ │ │ │ +000002fc 0000241c R_ARM_CALL 00000000 fftwf_mpi_dtensor_canonical │ │ │ │ │ +0000039c 0000251c R_ARM_CALL 00000000 MPI_Comm_dup │ │ │ │ │ +0000042c 00001203 R_ARM_REL32 00000000 .data.rel.ro.local │ │ │ │ │ +00000458 0000221c R_ARM_CALL 00000294 fftwf_mpi_mkproblem_rdft │ │ │ │ │ +00000464 0000151c R_ARM_CALL 00000000 fftwf_mpi_dtensor_destroy │ │ │ │ │ │ │ │ │ │ -Relocation section '.rel.data.rel.ro.local' at offset 0x988 contains 4 entries: │ │ │ │ │ +Relocation section '.rel.data.rel.ro.local' at offset 0x9f4 contains 4 entries: │ │ │ │ │ Offset Info Type Sym. Value Symbol's Name │ │ │ │ │ -00000004 00000d02 R_ARM_ABS32 00000184 hash │ │ │ │ │ -00000008 00000b02 R_ARM_ABS32 00000130 zero │ │ │ │ │ -0000000c 00000802 R_ARM_ABS32 00000024 print │ │ │ │ │ +00000004 00000d02 R_ARM_ABS32 000001c0 hash │ │ │ │ │ +00000008 00000b02 R_ARM_ABS32 00000158 zero │ │ │ │ │ +0000000c 00000802 R_ARM_ABS32 00000030 print │ │ │ │ │ 00000010 00000202 R_ARM_ABS32 00000000 destroy │ │ │ │ ├── objdump --line-numbers --disassemble --demangle --reloc --no-show-raw-insn --section=.text {} │ │ │ │ │ @@ -1,146 +1,162 @@ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ Disassembly of section .text: │ │ │ │ │ │ │ │ │ │ 00000000 : │ │ │ │ │ destroy(): │ │ │ │ │ - push {r4, lr} │ │ │ │ │ + str r4, [sp, #-8]! │ │ │ │ │ mov r4, r0 │ │ │ │ │ ldr r0, [r0, #4] │ │ │ │ │ + str lr, [sp, #4] │ │ │ │ │ bl 0 │ │ │ │ │ R_ARM_CALL fftwf_mpi_dtensor_destroy │ │ │ │ │ add r0, r4, #24 │ │ │ │ │ bl 0 │ │ │ │ │ R_ARM_CALL MPI_Comm_free │ │ │ │ │ + ldr lr, [sp, #4] │ │ │ │ │ mov r0, r4 │ │ │ │ │ - pop {r4, lr} │ │ │ │ │ + ldr r4, [sp] │ │ │ │ │ + add sp, sp, #8 │ │ │ │ │ b 0 │ │ │ │ │ R_ARM_JUMP24 fftwf_ifree │ │ │ │ │ │ │ │ │ │ -00000024 : │ │ │ │ │ +00000030 : │ │ │ │ │ print(): │ │ │ │ │ - push {r4, r5, r6, r7, r8, lr} │ │ │ │ │ + strd r4, [sp, #-24]! @ 0xffffffe8 │ │ │ │ │ mov r4, r0 │ │ │ │ │ - ldr r6, [r4, #16] │ │ │ │ │ + mov r5, r1 │ │ │ │ │ ldr r0, [r0, #12] │ │ │ │ │ + strd r6, [sp, #8] │ │ │ │ │ + ldr r6, [r4, #16] │ │ │ │ │ + str r8, [sp, #16] │ │ │ │ │ + str lr, [sp, #20] │ │ │ │ │ sub sp, sp, #16 │ │ │ │ │ - mov r5, r1 │ │ │ │ │ ldr r8, [r1] │ │ │ │ │ sub r6, r6, r0 │ │ │ │ │ bl 0 │ │ │ │ │ R_ARM_CALL fftwf_ialignment_of │ │ │ │ │ - clz r6, r6 │ │ │ │ │ - lsr r6, r6, #5 │ │ │ │ │ mov r7, r0 │ │ │ │ │ ldr r0, [r4, #16] │ │ │ │ │ + clz r6, r6 │ │ │ │ │ bl 0 │ │ │ │ │ R_ARM_CALL fftwf_ialignment_of │ │ │ │ │ - ldr r1, [pc, #188] @ 120 │ │ │ │ │ + ldr r1, [pc, #208] @ 148 │ │ │ │ │ + lsr r6, r6, #5 │ │ │ │ │ mov r3, r7 │ │ │ │ │ - mov r2, r6 │ │ │ │ │ - add r1, pc, r1 │ │ │ │ │ str r0, [sp] │ │ │ │ │ mov r0, r5 │ │ │ │ │ + mov r2, r6 │ │ │ │ │ + add r1, pc, r1 │ │ │ │ │ blx r8 │ │ │ │ │ ldr r0, [r4, #4] │ │ │ │ │ mov r1, r5 │ │ │ │ │ bl 0 │ │ │ │ │ R_ARM_CALL fftwf_mpi_dtensor_print │ │ │ │ │ ldr r2, [r4, #4] │ │ │ │ │ mov r3, #0 │ │ │ │ │ - ldr r2, [r2] │ │ │ │ │ str r3, [sp, #12] │ │ │ │ │ + ldr r2, [r2] │ │ │ │ │ cmp r2, r3 │ │ │ │ │ - ble d8 │ │ │ │ │ - ldr r6, [pc, #128] @ 124 │ │ │ │ │ + ble f0 │ │ │ │ │ + ldr r6, [pc, #144] @ 14c │ │ │ │ │ add r6, pc, r6 │ │ │ │ │ add r3, r4, r3, lsl #2 │ │ │ │ │ - ldr r2, [r3, #28] │ │ │ │ │ mov r1, r6 │ │ │ │ │ - ldr r3, [r5] │ │ │ │ │ mov r0, r5 │ │ │ │ │ + ldr r2, [r3, #28] │ │ │ │ │ + ldr r3, [r5] │ │ │ │ │ blx r3 │ │ │ │ │ ldr r2, [r4, #4] │ │ │ │ │ ldr r3, [sp, #12] │ │ │ │ │ ldr r2, [r2] │ │ │ │ │ add r3, r3, #1 │ │ │ │ │ - cmp r3, r2 │ │ │ │ │ str r3, [sp, #12] │ │ │ │ │ - blt a4 │ │ │ │ │ - ldr r1, [pc, #72] @ 128 │ │ │ │ │ - ldr r3, [r4, #20] │ │ │ │ │ - ldr r2, [r4, #8] │ │ │ │ │ + cmp r3, r2 │ │ │ │ │ + blt bc │ │ │ │ │ + ldr r1, [pc, #88] @ 150 │ │ │ │ │ mov r0, r5 │ │ │ │ │ ldr r6, [r5] │ │ │ │ │ + ldr r2, [r4, #8] │ │ │ │ │ add r1, pc, r1 │ │ │ │ │ + ldr r3, [r4, #20] │ │ │ │ │ blx r6 │ │ │ │ │ - add r1, sp, #12 │ │ │ │ │ ldr r0, [r4, #24] │ │ │ │ │ + add r1, sp, #12 │ │ │ │ │ bl 0 │ │ │ │ │ R_ARM_CALL MPI_Comm_size │ │ │ │ │ - ldr r1, [pc, #36] @ 12c │ │ │ │ │ + ldr r1, [pc, #52] @ 154 │ │ │ │ │ + mov r0, r5 │ │ │ │ │ ldr r3, [r5] │ │ │ │ │ ldr r2, [sp, #12] │ │ │ │ │ add r1, pc, r1 │ │ │ │ │ - mov r0, r5 │ │ │ │ │ blx r3 │ │ │ │ │ add sp, sp, #16 │ │ │ │ │ - pop {r4, r5, r6, r7, r8, pc} │ │ │ │ │ - .word 0x000000b0 │ │ │ │ │ + ldrd r4, [sp] │ │ │ │ │ + ldrd r6, [sp, #8] │ │ │ │ │ + ldr r8, [sp, #16] │ │ │ │ │ + add sp, sp, #20 │ │ │ │ │ + pop {pc} @ (ldr pc, [sp], #4) │ │ │ │ │ + .word 0x000000b8 │ │ │ │ │ R_ARM_REL32 .LC0 │ │ │ │ │ - .word 0x0000007c │ │ │ │ │ + .word 0x0000008c │ │ │ │ │ R_ARM_REL32 .LC1 │ │ │ │ │ - .word 0x00000034 │ │ │ │ │ + .word 0x00000048 │ │ │ │ │ R_ARM_REL32 .LC2 │ │ │ │ │ - .word 0x00000018 │ │ │ │ │ + .word 0x00000024 │ │ │ │ │ R_ARM_REL32 .LC3 │ │ │ │ │ │ │ │ │ │ -00000130 : │ │ │ │ │ +00000158 : │ │ │ │ │ zero(): │ │ │ │ │ - push {r4, r5, r6, lr} │ │ │ │ │ - sub sp, sp, #8 │ │ │ │ │ + strd r4, [sp, #-16]! │ │ │ │ │ mov r4, r0 │ │ │ │ │ + str r6, [sp, #8] │ │ │ │ │ + str lr, [sp, #12] │ │ │ │ │ + sub sp, sp, #8 │ │ │ │ │ ldr r6, [r0, #12] │ │ │ │ │ add r1, sp, #4 │ │ │ │ │ ldr r0, [r0, #24] │ │ │ │ │ bl 0 │ │ │ │ │ R_ARM_CALL MPI_Comm_rank │ │ │ │ │ ldr r2, [sp, #4] │ │ │ │ │ - ldr r0, [r4, #4] │ │ │ │ │ mov r1, #0 │ │ │ │ │ ldr r5, [r4, #8] │ │ │ │ │ + ldr r0, [r4, #4] │ │ │ │ │ bl 0 │ │ │ │ │ R_ARM_CALL fftwf_mpi_total_block │ │ │ │ │ mul r0, r5, r0 │ │ │ │ │ cmp r0, #0 │ │ │ │ │ - ble 17c │ │ │ │ │ + ble 1ac │ │ │ │ │ lsl r2, r0, #2 │ │ │ │ │ mov r1, #0 │ │ │ │ │ mov r0, r6 │ │ │ │ │ bl 0 │ │ │ │ │ R_ARM_CALL memset │ │ │ │ │ add sp, sp, #8 │ │ │ │ │ - pop {r4, r5, r6, pc} │ │ │ │ │ + ldrd r4, [sp] │ │ │ │ │ + ldr r6, [sp, #8] │ │ │ │ │ + add sp, sp, #12 │ │ │ │ │ + pop {pc} @ (ldr pc, [sp], #4) │ │ │ │ │ │ │ │ │ │ -00000184 : │ │ │ │ │ +000001c0 : │ │ │ │ │ hash(): │ │ │ │ │ - push {r4, r5, lr} │ │ │ │ │ + strd r4, [sp, #-12]! │ │ │ │ │ mov r5, r1 │ │ │ │ │ - ldr r1, [pc, #180] @ 248 │ │ │ │ │ mov r4, r0 │ │ │ │ │ + ldr r1, [pc, #188] @ 290 │ │ │ │ │ + mov r0, r5 │ │ │ │ │ + str lr, [sp, #8] │ │ │ │ │ sub sp, sp, #12 │ │ │ │ │ add r1, pc, r1 │ │ │ │ │ - mov r0, r5 │ │ │ │ │ bl 0 │ │ │ │ │ R_ARM_CALL fftwf_md5puts │ │ │ │ │ - ldr r3, [r4, #16] │ │ │ │ │ ldr r1, [r4, #12] │ │ │ │ │ mov r0, r5 │ │ │ │ │ + ldr r3, [r4, #16] │ │ │ │ │ sub r1, r1, r3 │ │ │ │ │ clz r1, r1 │ │ │ │ │ lsr r1, r1, #5 │ │ │ │ │ bl 0 │ │ │ │ │ R_ARM_CALL fftwf_md5int │ │ │ │ │ ldr r1, [r4, #4] │ │ │ │ │ mov r0, r5 │ │ │ │ │ @@ -148,165 +164,176 @@ │ │ │ │ │ R_ARM_CALL fftwf_mpi_dtensor_md5 │ │ │ │ │ ldr r1, [r4, #8] │ │ │ │ │ mov r0, r5 │ │ │ │ │ bl 0 │ │ │ │ │ R_ARM_CALL fftwf_md5INT │ │ │ │ │ ldr r2, [r4, #4] │ │ │ │ │ mov r3, #0 │ │ │ │ │ - ldr r2, [r2] │ │ │ │ │ str r3, [sp, #4] │ │ │ │ │ + ldr r2, [r2] │ │ │ │ │ cmp r2, r3 │ │ │ │ │ - ble 21c │ │ │ │ │ + ble 25c │ │ │ │ │ add r3, r4, r3, lsl #2 │ │ │ │ │ - ldr r1, [r3, #28] │ │ │ │ │ mov r0, r5 │ │ │ │ │ + ldr r1, [r3, #28] │ │ │ │ │ bl 0 │ │ │ │ │ R_ARM_CALL fftwf_md5int │ │ │ │ │ ldr r2, [r4, #4] │ │ │ │ │ ldr r3, [sp, #4] │ │ │ │ │ ldr r2, [r2] │ │ │ │ │ add r3, r3, #1 │ │ │ │ │ - cmp r3, r2 │ │ │ │ │ str r3, [sp, #4] │ │ │ │ │ - blt 1f0 │ │ │ │ │ + cmp r3, r2 │ │ │ │ │ + blt 230 │ │ │ │ │ ldr r1, [r4, #20] │ │ │ │ │ mov r0, r5 │ │ │ │ │ bl 0 │ │ │ │ │ R_ARM_CALL fftwf_md5int │ │ │ │ │ - add r1, sp, #4 │ │ │ │ │ ldr r0, [r4, #24] │ │ │ │ │ + add r1, sp, #4 │ │ │ │ │ bl 0 │ │ │ │ │ R_ARM_CALL MPI_Comm_size │ │ │ │ │ ldr r1, [sp, #4] │ │ │ │ │ mov r0, r5 │ │ │ │ │ bl 0 │ │ │ │ │ R_ARM_CALL fftwf_md5int │ │ │ │ │ add sp, sp, #12 │ │ │ │ │ - pop {r4, r5, pc} │ │ │ │ │ - .word 0x000000a8 │ │ │ │ │ + ldrd r4, [sp] │ │ │ │ │ + add sp, sp, #8 │ │ │ │ │ + pop {pc} @ (ldr pc, [sp], #4) │ │ │ │ │ + .word 0x000000ac │ │ │ │ │ R_ARM_REL32 .LC4 │ │ │ │ │ │ │ │ │ │ -0000024c : │ │ │ │ │ +00000294 : │ │ │ │ │ fftwf_mpi_mkproblem_rdft(): │ │ │ │ │ - push {r4, r5, r6, r7, r8, r9, sl, fp, lr} │ │ │ │ │ - sub sp, sp, #20 │ │ │ │ │ - ldr r9, [sp, #56] @ 0x38 │ │ │ │ │ - ldr r4, [r0] │ │ │ │ │ + strd r4, [sp, #-36]! @ 0xffffffdc │ │ │ │ │ + mov r5, r2 │ │ │ │ │ + mov r4, r3 │ │ │ │ │ + strd r6, [sp, #8] │ │ │ │ │ + strd r8, [sp, #16] │ │ │ │ │ + strd sl, [sp, #24] │ │ │ │ │ mov fp, r0 │ │ │ │ │ mov sl, r1 │ │ │ │ │ - mov r0, r9 │ │ │ │ │ + str lr, [sp, #32] │ │ │ │ │ + sub sp, sp, #20 │ │ │ │ │ + ldrd r8, [sp, #56] @ 0x38 │ │ │ │ │ mov r1, sp │ │ │ │ │ - mov r7, r2 │ │ │ │ │ - mov r6, r3 │ │ │ │ │ - ldr r5, [sp, #60] @ 0x3c │ │ │ │ │ - ldr r8, [sp, #64] @ 0x40 │ │ │ │ │ + ldr r6, [r0] │ │ │ │ │ + ldr r7, [sp, #64] @ 0x40 │ │ │ │ │ + mov r0, r8 │ │ │ │ │ bl 0 │ │ │ │ │ R_ARM_CALL MPI_Comm_size │ │ │ │ │ - cmp r4, #0 │ │ │ │ │ - ldr r1, [pc, #320] @ 3cc │ │ │ │ │ - addgt r0, r4, #7 │ │ │ │ │ + ldr r1, [pc, #336] @ 42c │ │ │ │ │ + cmp r6, #0 │ │ │ │ │ + addgt r0, r6, #7 │ │ │ │ │ movle r0, #32 │ │ │ │ │ - add r1, pc, r1 │ │ │ │ │ lslgt r0, r0, #2 │ │ │ │ │ + add r1, pc, r1 │ │ │ │ │ bl 0 │ │ │ │ │ R_ARM_CALL fftwf_mkproblem │ │ │ │ │ + mov r6, r0 │ │ │ │ │ mov r1, #0 │ │ │ │ │ - mov r4, r0 │ │ │ │ │ mov r0, fp │ │ │ │ │ bl 0 │ │ │ │ │ R_ARM_CALL fftwf_mpi_dtensor_canonical │ │ │ │ │ - str sl, [r4, #8] │ │ │ │ │ - str r7, [r4, #12] │ │ │ │ │ - str r6, [r4, #16] │ │ │ │ │ - mov ip, r0 │ │ │ │ │ - str r0, [r4, #4] │ │ │ │ │ - ldr r0, [r0] │ │ │ │ │ - cmp r0, #0 │ │ │ │ │ - addle lr, r4, #24 │ │ │ │ │ - ble 34c │ │ │ │ │ - sub r3, r0, #1 │ │ │ │ │ + ldr ip, [r0] │ │ │ │ │ + stmib r6, {r0, sl} │ │ │ │ │ + str r5, [r6, #12] │ │ │ │ │ + str r4, [r6, #16] │ │ │ │ │ + cmp ip, #0 │ │ │ │ │ + addle r1, r6, #24 │ │ │ │ │ + ble 394 │ │ │ │ │ + sub r3, ip, #1 │ │ │ │ │ cmp r3, #8 │ │ │ │ │ - bls 3a8 │ │ │ │ │ - add r3, r4, #28 │ │ │ │ │ - orr r1, r5, r3 │ │ │ │ │ - add r2, r5, #4 │ │ │ │ │ - subs r2, r3, r2 │ │ │ │ │ + bls 408 │ │ │ │ │ + add r2, r6, #28 │ │ │ │ │ + add r3, r9, #4 │ │ │ │ │ + orr r1, r9, r2 │ │ │ │ │ + subs r3, r2, r3 │ │ │ │ │ and r1, r1, #7 │ │ │ │ │ - movne r2, #1 │ │ │ │ │ + movne r3, #1 │ │ │ │ │ cmp r1, #0 │ │ │ │ │ - movne r2, #0 │ │ │ │ │ - cmp r2, #0 │ │ │ │ │ - beq 3a8 │ │ │ │ │ - lsr r1, r0, #1 │ │ │ │ │ - add r1, r4, r1, lsl #3 │ │ │ │ │ - sub r2, r5, #8 │ │ │ │ │ - add r1, r1, #28 │ │ │ │ │ - ldrd r6, [r2, #8]! │ │ │ │ │ - strd r6, [r3], #8 │ │ │ │ │ + movne r3, #0 │ │ │ │ │ + cmp r3, #0 │ │ │ │ │ + beq 408 │ │ │ │ │ + lsr r1, ip, #1 │ │ │ │ │ + mov r3, r9 │ │ │ │ │ + add r1, r9, r1, lsl #3 │ │ │ │ │ + ldrd r4, [r3], #8 │ │ │ │ │ cmp r3, r1 │ │ │ │ │ - bne 314 │ │ │ │ │ - bic r3, r0, #1 │ │ │ │ │ - cmp r0, r3 │ │ │ │ │ - ldrne r2, [r5, r3, lsl #2] │ │ │ │ │ - add lr, r4, #24 │ │ │ │ │ - addne r3, r4, r3, lsl #2 │ │ │ │ │ + strd r4, [r2], #8 │ │ │ │ │ + bne 35c │ │ │ │ │ + bic r3, ip, #1 │ │ │ │ │ + add r1, r6, #24 │ │ │ │ │ + cmp ip, r3 │ │ │ │ │ + ldrne r2, [r9, r3, lsl #2] │ │ │ │ │ + addne r3, r6, r3, lsl #2 │ │ │ │ │ strne r2, [r3, #28] │ │ │ │ │ - subs r0, r0, #1 │ │ │ │ │ - movne r0, #1 │ │ │ │ │ - ands r0, r0, r8, lsr #2 │ │ │ │ │ - bne 368 │ │ │ │ │ - mov r1, lr │ │ │ │ │ - mov r0, r9 │ │ │ │ │ - str r8, [r4, #20] │ │ │ │ │ + subs ip, ip, #1 │ │ │ │ │ + movne ip, #1 │ │ │ │ │ + ands ip, ip, r7, lsr #2 │ │ │ │ │ + bne 3c0 │ │ │ │ │ + mov r0, r8 │ │ │ │ │ + str r7, [r6, #20] │ │ │ │ │ bl 0 │ │ │ │ │ R_ARM_CALL MPI_Comm_dup │ │ │ │ │ - mov r0, r4 │ │ │ │ │ + mov r0, r6 │ │ │ │ │ add sp, sp, #20 │ │ │ │ │ - pop {r4, r5, r6, r7, r8, r9, sl, fp, pc} │ │ │ │ │ - add r5, ip, #4 │ │ │ │ │ - ldm r5, {r0, r1, r2} │ │ │ │ │ - add r3, sp, #4 │ │ │ │ │ - add ip, ip, #16 │ │ │ │ │ - stm r3, {r0, r1, r2} │ │ │ │ │ - ldm ip, {r0, r1, r2} │ │ │ │ │ - ldr r6, [r4, #28] │ │ │ │ │ - stm r5, {r0, r1, r2} │ │ │ │ │ - ldm r3, {r0, r1, r2} │ │ │ │ │ - bic r8, r8, #4 │ │ │ │ │ - ldr r3, [r4, #32] │ │ │ │ │ - stm ip, {r0, r1, r2} │ │ │ │ │ - eor r8, r8, #8 │ │ │ │ │ - str r3, [r4, #28] │ │ │ │ │ - str r6, [r4, #32] │ │ │ │ │ - b 34c │ │ │ │ │ - sub r5, r5, #4 │ │ │ │ │ - add lr, r4, #24 │ │ │ │ │ - mov r3, lr │ │ │ │ │ - add r1, r5, r0, lsl #2 │ │ │ │ │ - ldr r2, [r5, #4]! │ │ │ │ │ - str r2, [r3, #4]! │ │ │ │ │ - cmp r1, r5 │ │ │ │ │ - bne 3b8 │ │ │ │ │ - b 33c │ │ │ │ │ - .word 0x00000134 │ │ │ │ │ + ldrd r4, [sp] │ │ │ │ │ + ldrd r6, [sp, #8] │ │ │ │ │ + ldrd r8, [sp, #16] │ │ │ │ │ + ldrd sl, [sp, #24] │ │ │ │ │ + add sp, sp, #32 │ │ │ │ │ + pop {pc} @ (ldr pc, [sp], #4) │ │ │ │ │ + ldrd r2, [r0, #4] │ │ │ │ │ + bic r7, r7, #4 │ │ │ │ │ + eor r7, r7, #8 │ │ │ │ │ + ldr r4, [r6, #28] │ │ │ │ │ + ldr lr, [r0, #12] │ │ │ │ │ + strd r2, [sp, #4] │ │ │ │ │ + ldrd r2, [r0, #16] │ │ │ │ │ + str lr, [sp, #12] │ │ │ │ │ + strd r2, [r0, #4] │ │ │ │ │ + ldr r3, [r0, #24] │ │ │ │ │ + str r3, [r0, #12] │ │ │ │ │ + ldrd r2, [sp, #4] │ │ │ │ │ + str lr, [r0, #24] │ │ │ │ │ + strd r2, [r0, #16] │ │ │ │ │ + ldr r3, [r6, #32] │ │ │ │ │ + str r3, [r6, #28] │ │ │ │ │ + str r4, [r6, #32] │ │ │ │ │ + b 394 │ │ │ │ │ + add r1, r6, #24 │ │ │ │ │ + add r4, r9, ip, lsl #2 │ │ │ │ │ + mov r3, r9 │ │ │ │ │ + mov r2, r1 │ │ │ │ │ + ldr lr, [r3], #4 │ │ │ │ │ + cmp r3, r4 │ │ │ │ │ + str lr, [r2, #4]! │ │ │ │ │ + bne 418 │ │ │ │ │ + b 384 │ │ │ │ │ + .word 0x0000013c │ │ │ │ │ R_ARM_REL32 .data.rel.ro.local │ │ │ │ │ │ │ │ │ │ -000003d0 : │ │ │ │ │ +00000430 : │ │ │ │ │ fftwf_mpi_mkproblem_rdft_d(): │ │ │ │ │ - push {r4, r5, lr} │ │ │ │ │ + strd r4, [sp, #-12]! │ │ │ │ │ + mov r5, r0 │ │ │ │ │ + str lr, [sp, #8] │ │ │ │ │ sub sp, sp, #20 │ │ │ │ │ ldr ip, [sp, #40] @ 0x28 │ │ │ │ │ str ip, [sp, #8] │ │ │ │ │ ldr ip, [sp, #36] @ 0x24 │ │ │ │ │ str ip, [sp, #4] │ │ │ │ │ ldr ip, [sp, #32] │ │ │ │ │ str ip, [sp] │ │ │ │ │ - mov r5, r0 │ │ │ │ │ - bl 24c │ │ │ │ │ + bl 294 │ │ │ │ │ R_ARM_CALL fftwf_mpi_mkproblem_rdft │ │ │ │ │ mov r4, r0 │ │ │ │ │ mov r0, r5 │ │ │ │ │ bl 0 │ │ │ │ │ R_ARM_CALL fftwf_mpi_dtensor_destroy │ │ │ │ │ mov r0, r4 │ │ │ │ │ add sp, sp, #20 │ │ │ │ │ - pop {r4, r5, pc} │ │ │ │ │ + ldrd r4, [sp] │ │ │ │ │ + add sp, sp, #8 │ │ │ │ │ + pop {pc} @ (ldr pc, [sp], #4) │ │ │ ├── rdft-solve.o │ │ │ │ ├── objdump --line-numbers --disassemble --demangle --reloc --no-show-raw-insn --section=.text {} │ │ │ │ │ @@ -2,10 +2,10 @@ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ Disassembly of section .text: │ │ │ │ │ │ │ │ │ │ 00000000 : │ │ │ │ │ fftwf_mpi_rdft_solve(): │ │ │ │ │ ldr r2, [r1, #16] │ │ │ │ │ - ldr r3, [r0, #56] @ 0x38 │ │ │ │ │ ldr r1, [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: 2448 (bytes into file) │ │ │ │ │ + Start of section headers: 2536 (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 0x990: │ │ │ │ │ +There are 15 section headers, starting at offset 0x9e8: │ │ │ │ │ │ │ │ │ │ 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 0003a4 00 AX 0 0 4 │ │ │ │ │ - [ 2] .rel.text REL 00000000 000838 0000a8 08 I 12 1 4 │ │ │ │ │ - [ 3] .data PROGBITS 00000000 0003d8 000000 00 WA 0 0 1 │ │ │ │ │ - [ 4] .bss NOBITS 00000000 0003d8 000000 00 WA 0 0 1 │ │ │ │ │ - [ 5] .rodata.str1.4 PROGBITS 00000000 0003d8 00001a 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 0008e0 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 000900 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 00002b 00 0 0 1 │ │ │ │ │ - [12] .symtab SYMTAB 00000000 00043c 000260 10 13 21 4 │ │ │ │ │ - [13] .strtab STRTAB 00000000 00069c 00019b 00 0 0 1 │ │ │ │ │ - [14] .shstrtab STRTAB 00000000 000908 000087 00 0 0 1 │ │ │ │ │ + [ 1] .text PROGBITS 00000000 000034 0003fc 00 AX 0 0 4 │ │ │ │ │ + [ 2] .rel.text REL 00000000 000890 0000a8 08 I 12 1 4 │ │ │ │ │ + [ 3] .data PROGBITS 00000000 000430 000000 00 WA 0 0 1 │ │ │ │ │ + [ 4] .bss NOBITS 00000000 000430 000000 00 WA 0 0 1 │ │ │ │ │ + [ 5] .rodata.str1.4 PROGBITS 00000000 000430 00001a 01 AMS 0 0 4 │ │ │ │ │ + [ 6] .data.rel.ro PROGBITS 00000000 00044a 000010 00 WA 0 0 4 │ │ │ │ │ + [ 7] .rel.data.rel.ro REL 00000000 000938 000020 08 I 12 6 4 │ │ │ │ │ + [ 8] .data.rel.ro.local PROGBITS 00000000 00045a 00000c 00 WA 0 0 4 │ │ │ │ │ + [ 9] .rel.data.rel.ro.local REL 00000000 000958 000008 08 I 12 8 4 │ │ │ │ │ + [10] .note.GNU-stack PROGBITS 00000000 000466 000000 00 0 0 1 │ │ │ │ │ + [11] .ARM.attributes ARM_ATTRIBUTES 00000000 000466 00002b 00 0 0 1 │ │ │ │ │ + [12] .symtab SYMTAB 00000000 000494 000260 10 13 21 4 │ │ │ │ │ + [13] .strtab STRTAB 00000000 0006f4 00019b 00 0 0 1 │ │ │ │ │ + [14] .shstrtab STRTAB 00000000 000960 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: 00000000 0 NOTYPE LOCAL DEFAULT 1 $a │ │ │ │ │ - 2: 00000000 52 FUNC LOCAL DEFAULT 1 apply_r2c │ │ │ │ │ - 3: 00000034 56 FUNC LOCAL DEFAULT 1 apply_c2r │ │ │ │ │ + 2: 00000000 64 FUNC LOCAL DEFAULT 1 apply_r2c │ │ │ │ │ + 3: 00000040 68 FUNC LOCAL DEFAULT 1 apply_c2r │ │ │ │ │ 4: 00000000 0 NOTYPE LOCAL DEFAULT 5 $d │ │ │ │ │ 5: 00000000 0 NOTYPE LOCAL DEFAULT 5 .LC0 │ │ │ │ │ - 6: 0000006c 32 FUNC LOCAL DEFAULT 1 print │ │ │ │ │ - 7: 00000088 0 NOTYPE LOCAL DEFAULT 1 $d │ │ │ │ │ - 8: 0000008c 0 NOTYPE LOCAL DEFAULT 1 $a │ │ │ │ │ - 9: 0000008c 8 FUNC LOCAL DEFAULT 1 destroy │ │ │ │ │ - 10: 00000094 8 FUNC LOCAL DEFAULT 1 awake │ │ │ │ │ - 11: 0000009c 644 FUNC LOCAL DEFAULT 1 mkplan │ │ │ │ │ - 12: 00000314 0 NOTYPE LOCAL DEFAULT 1 $d │ │ │ │ │ - 13: 00000320 0 NOTYPE LOCAL DEFAULT 1 $a │ │ │ │ │ - 14: 000003a0 0 NOTYPE LOCAL DEFAULT 1 $d │ │ │ │ │ + 6: 00000084 32 FUNC LOCAL DEFAULT 1 print │ │ │ │ │ + 7: 000000a0 0 NOTYPE LOCAL DEFAULT 1 $d │ │ │ │ │ + 8: 000000a4 0 NOTYPE LOCAL DEFAULT 1 $a │ │ │ │ │ + 9: 000000a4 8 FUNC LOCAL DEFAULT 1 destroy │ │ │ │ │ + 10: 000000ac 8 FUNC LOCAL DEFAULT 1 awake │ │ │ │ │ + 11: 000000b4 684 FUNC LOCAL DEFAULT 1 mkplan │ │ │ │ │ + 12: 00000354 0 NOTYPE LOCAL DEFAULT 1 $d │ │ │ │ │ + 13: 00000360 0 NOTYPE LOCAL DEFAULT 1 $a │ │ │ │ │ + 14: 000003f8 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_mkproblem_rdft2_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_0d │ │ │ │ │ - 33: 00000320 88 FUNC GLOBAL DEFAULT 1 fftwf_mpi_rdft2_serial_applicable │ │ │ │ │ - 34: 00000378 44 FUNC GLOBAL DEFAULT 1 fftwf_mpi_rdft2_serial_register │ │ │ │ │ + 33: 00000360 100 FUNC GLOBAL DEFAULT 1 fftwf_mpi_rdft2_serial_applicable │ │ │ │ │ + 34: 000003c4 56 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,35 +1,35 @@ │ │ │ │ │ │ │ │ │ │ -Relocation section '.rel.text' at offset 0x838 contains 21 entries: │ │ │ │ │ +Relocation section '.rel.text' at offset 0x890 contains 21 entries: │ │ │ │ │ Offset Info Type Sym. Value Symbol's Name │ │ │ │ │ -00000088 00000503 R_ARM_REL32 00000000 .LC0 │ │ │ │ │ -00000090 0000151d R_ARM_JUMP24 00000000 fftwf_plan_destroy_internal │ │ │ │ │ -00000098 0000161d R_ARM_JUMP24 00000000 fftwf_plan_awake │ │ │ │ │ -000000c8 0000171c R_ARM_CALL 00000000 fftwf_mpi_is_local │ │ │ │ │ -00000118 0000181c R_ARM_CALL 00000000 MPI_Comm_rank │ │ │ │ │ -00000164 0000191c R_ARM_CALL 00000000 fftwf_mktensor │ │ │ │ │ -00000208 00001a1c R_ARM_CALL 00000000 fftwf_mktensor_1d │ │ │ │ │ -00000228 00001b1c R_ARM_CALL 00000000 fftwf_mkproblem_rdft2_d │ │ │ │ │ -00000234 00001c1c R_ARM_CALL 00000000 fftwf_mkplan_d │ │ │ │ │ -00000248 00001d1c R_ARM_CALL 00000000 fftwf_mpi_any_true │ │ │ │ │ -00000274 00001e1c R_ARM_CALL 00000000 fftwf_mkplan_rdft │ │ │ │ │ -00000290 00001f1c R_ARM_CALL 00000000 fftwf_ops_cpy │ │ │ │ │ -000002a0 0000201c R_ARM_CALL 00000000 fftwf_mktensor_0d │ │ │ │ │ -000002b4 00001a1c R_ARM_CALL 00000000 fftwf_mktensor_1d │ │ │ │ │ -00000300 0000171c R_ARM_CALL 00000000 fftwf_mpi_is_local │ │ │ │ │ -00000318 00000f03 R_ARM_REL32 00000000 .data.rel.ro │ │ │ │ │ +000000a0 00000503 R_ARM_REL32 00000000 .LC0 │ │ │ │ │ +000000a8 0000151d R_ARM_JUMP24 00000000 fftwf_plan_destroy_internal │ │ │ │ │ +000000b0 0000161d R_ARM_JUMP24 00000000 fftwf_plan_awake │ │ │ │ │ +00000104 0000171c R_ARM_CALL 00000000 fftwf_mpi_is_local │ │ │ │ │ +00000148 0000181c R_ARM_CALL 00000000 MPI_Comm_rank │ │ │ │ │ +00000198 0000191c R_ARM_CALL 00000000 fftwf_mktensor │ │ │ │ │ +00000230 00001a1c R_ARM_CALL 00000000 fftwf_mktensor_1d │ │ │ │ │ +00000250 00001b1c R_ARM_CALL 00000000 fftwf_mkproblem_rdft2_d │ │ │ │ │ +0000025c 00001c1c R_ARM_CALL 00000000 fftwf_mkplan_d │ │ │ │ │ +00000270 00001d1c R_ARM_CALL 00000000 fftwf_mpi_any_true │ │ │ │ │ +0000029c 00001e1c R_ARM_CALL 00000000 fftwf_mkplan_rdft │ │ │ │ │ +000002b8 00001f1c R_ARM_CALL 00000000 fftwf_ops_cpy │ │ │ │ │ +000002c4 0000201c R_ARM_CALL 00000000 fftwf_mktensor_0d │ │ │ │ │ +000002d8 00001a1c R_ARM_CALL 00000000 fftwf_mktensor_1d │ │ │ │ │ 00000340 0000171c R_ARM_CALL 00000000 fftwf_mpi_is_local │ │ │ │ │ -00000364 0000171c R_ARM_CALL 00000000 fftwf_mpi_is_local │ │ │ │ │ -0000038c 0000231c R_ARM_CALL 00000000 fftwf_mksolver │ │ │ │ │ -0000039c 0000241d R_ARM_JUMP24 00000000 fftwf_solver_register │ │ │ │ │ -000003a0 00001203 R_ARM_REL32 00000000 .data.rel.ro.local │ │ │ │ │ +00000358 00000f03 R_ARM_REL32 00000000 .data.rel.ro │ │ │ │ │ +00000384 0000171c R_ARM_CALL 00000000 fftwf_mpi_is_local │ │ │ │ │ +000003b0 0000171c R_ARM_CALL 00000000 fftwf_mpi_is_local │ │ │ │ │ +000003dc 0000231c R_ARM_CALL 00000000 fftwf_mksolver │ │ │ │ │ +000003f4 0000241d R_ARM_JUMP24 00000000 fftwf_solver_register │ │ │ │ │ +000003f8 00001203 R_ARM_REL32 00000000 .data.rel.ro.local │ │ │ │ │ │ │ │ │ │ -Relocation section '.rel.data.rel.ro' at offset 0x8e0 contains 4 entries: │ │ │ │ │ +Relocation section '.rel.data.rel.ro' at offset 0x938 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 00000094 awake │ │ │ │ │ -00000008 00000602 R_ARM_ABS32 0000006c print │ │ │ │ │ -0000000c 00000902 R_ARM_ABS32 0000008c destroy │ │ │ │ │ +00000004 00000a02 R_ARM_ABS32 000000ac awake │ │ │ │ │ +00000008 00000602 R_ARM_ABS32 00000084 print │ │ │ │ │ +0000000c 00000902 R_ARM_ABS32 000000a4 destroy │ │ │ │ │ │ │ │ │ │ -Relocation section '.rel.data.rel.ro.local' at offset 0x900 contains 1 entry: │ │ │ │ │ +Relocation section '.rel.data.rel.ro.local' at offset 0x958 contains 1 entry: │ │ │ │ │ Offset Info Type Sym. Value Symbol's Name │ │ │ │ │ -00000004 00000b02 R_ARM_ABS32 0000009c mkplan │ │ │ │ │ +00000004 00000b02 R_ARM_ABS32 000000b4 mkplan │ │ │ │ ├── objdump --line-numbers --disassemble --demangle --reloc --no-show-raw-insn --section=.text {} │ │ │ │ │ @@ -2,281 +2,303 @@ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ Disassembly of section .text: │ │ │ │ │ │ │ │ │ │ 00000000 : │ │ │ │ │ apply_r2c(): │ │ │ │ │ mov ip, r0 │ │ │ │ │ - mov r3, r2 │ │ │ │ │ ldr r0, [r0, #64] @ 0x40 │ │ │ │ │ + mov r3, r2 │ │ │ │ │ + str r4, [sp, #-8]! │ │ │ │ │ ldr r2, [ip, #68] @ 0x44 │ │ │ │ │ - push {r4, lr} │ │ │ │ │ add ip, r3, #4 │ │ │ │ │ + str lr, [sp, #4] │ │ │ │ │ sub sp, sp, #8 │ │ │ │ │ str ip, [sp] │ │ │ │ │ - add r2, r1, r2, lsl #2 │ │ │ │ │ ldr r4, [r0, #56] @ 0x38 │ │ │ │ │ + add r2, r1, r2, lsl #2 │ │ │ │ │ blx r4 │ │ │ │ │ add sp, sp, #8 │ │ │ │ │ - pop {r4, pc} │ │ │ │ │ + ldr r4, [sp] │ │ │ │ │ + add sp, sp, #4 │ │ │ │ │ + pop {pc} @ (ldr pc, [sp], #4) │ │ │ │ │ │ │ │ │ │ -00000034 : │ │ │ │ │ +00000040 : │ │ │ │ │ apply_c2r(): │ │ │ │ │ mov ip, r0 │ │ │ │ │ - mov r3, r1 │ │ │ │ │ ldr r0, [r0, #64] @ 0x40 │ │ │ │ │ + mov r3, r1 │ │ │ │ │ mov r1, r2 │ │ │ │ │ + str r4, [sp, #-8]! │ │ │ │ │ ldr r2, [ip, #68] @ 0x44 │ │ │ │ │ - push {r4, lr} │ │ │ │ │ add ip, r3, #4 │ │ │ │ │ + str lr, [sp, #4] │ │ │ │ │ sub sp, sp, #8 │ │ │ │ │ str ip, [sp] │ │ │ │ │ - add r2, r1, r2, lsl #2 │ │ │ │ │ ldr r4, [r0, #56] @ 0x38 │ │ │ │ │ + add r2, r1, r2, lsl #2 │ │ │ │ │ blx r4 │ │ │ │ │ add sp, sp, #8 │ │ │ │ │ - pop {r4, pc} │ │ │ │ │ + ldr r4, [sp] │ │ │ │ │ + add sp, sp, #4 │ │ │ │ │ + pop {pc} @ (ldr pc, [sp], #4) │ │ │ │ │ │ │ │ │ │ -0000006c : │ │ │ │ │ +00000084 : │ │ │ │ │ print(): │ │ │ │ │ - mov r2, r0 │ │ │ │ │ ldr r3, [r1] │ │ │ │ │ + mov r2, r0 │ │ │ │ │ mov r0, r1 │ │ │ │ │ - ldr r1, [pc, #8] @ 88 │ │ │ │ │ + ldr r1, [pc, #8] @ a0 │ │ │ │ │ ldr r2, [r2, #64] @ 0x40 │ │ │ │ │ add r1, pc, r1 │ │ │ │ │ bx r3 │ │ │ │ │ .word 0x00000000 │ │ │ │ │ R_ARM_REL32 .LC0 │ │ │ │ │ │ │ │ │ │ -0000008c : │ │ │ │ │ +000000a4 : │ │ │ │ │ destroy(): │ │ │ │ │ ldr r0, [r0, #64] @ 0x40 │ │ │ │ │ b 0 │ │ │ │ │ R_ARM_JUMP24 fftwf_plan_destroy_internal │ │ │ │ │ │ │ │ │ │ -00000094 : │ │ │ │ │ +000000ac : │ │ │ │ │ awake(): │ │ │ │ │ ldr r0, [r0, #64] @ 0x40 │ │ │ │ │ b 0 │ │ │ │ │ R_ARM_JUMP24 fftwf_plan_awake │ │ │ │ │ │ │ │ │ │ -0000009c : │ │ │ │ │ +000000b4 : │ │ │ │ │ mkplan(): │ │ │ │ │ - push {r4, r5, r6, r7, r8, r9, sl, fp, lr} │ │ │ │ │ + strd r4, [sp, #-36]! @ 0xffffffdc │ │ │ │ │ mov r4, r1 │ │ │ │ │ ldr r1, [r1, #24] │ │ │ │ │ - sub sp, sp, #52 @ 0x34 │ │ │ │ │ + strd r6, [sp, #8] │ │ │ │ │ + strd r8, [sp, #16] │ │ │ │ │ + strd sl, [sp, #24] │ │ │ │ │ + str lr, [sp, #32] │ │ │ │ │ + sub sp, sp, #44 @ 0x2c │ │ │ │ │ cmp r1, #0 │ │ │ │ │ - beq c0 │ │ │ │ │ + beq fc │ │ │ │ │ mov r0, #0 │ │ │ │ │ - add sp, sp, #52 @ 0x34 │ │ │ │ │ - pop {r4, r5, r6, r7, r8, r9, sl, fp, pc} │ │ │ │ │ + add sp, sp, #44 @ 0x2c │ │ │ │ │ + ldrd r4, [sp] │ │ │ │ │ + ldrd r6, [sp, #8] │ │ │ │ │ + ldrd r8, [sp, #16] │ │ │ │ │ + ldrd sl, [sp, #24] │ │ │ │ │ + add sp, sp, #32 │ │ │ │ │ + pop {pc} @ (ldr pc, [sp], #4) │ │ │ │ │ ldr r0, [r4, #4] │ │ │ │ │ - mov r6, r2 │ │ │ │ │ + mov r5, r2 │ │ │ │ │ bl 0 │ │ │ │ │ R_ARM_CALL fftwf_mpi_is_local │ │ │ │ │ cmp r0, #0 │ │ │ │ │ - bne 2f8 │ │ │ │ │ - ldr r5, [r4, #8] │ │ │ │ │ - cmp r5, #0 │ │ │ │ │ - bne b4 │ │ │ │ │ - ldr r3, [r4, #20] │ │ │ │ │ - ldr r8, [r4, #12] │ │ │ │ │ + bne 338 │ │ │ │ │ + ldr r3, [r4, #8] │ │ │ │ │ cmp r3, #0 │ │ │ │ │ - ldr r7, [r4, #16] │ │ │ │ │ - movne r3, r8 │ │ │ │ │ - lsl r5, r5, #2 │ │ │ │ │ + bne dc │ │ │ │ │ + ldr r7, [r4, #12] │ │ │ │ │ + lsl r3, r3, #2 │ │ │ │ │ + ldr r2, [r4, #20] │ │ │ │ │ + ldr r6, [r4, #16] │ │ │ │ │ + cmp r2, #0 │ │ │ │ │ + bne 2fc │ │ │ │ │ + add r3, r7, r3 │ │ │ │ │ + add r8, r6, #4 │ │ │ │ │ + str r3, [sp, #16] │ │ │ │ │ ldr r0, [r4, #28] │ │ │ │ │ - add r1, sp, #44 @ 0x2c │ │ │ │ │ - addne r5, r7, r5 │ │ │ │ │ - addne r9, r8, #4 │ │ │ │ │ - addeq r5, r8, r5 │ │ │ │ │ - movne r8, r7 │ │ │ │ │ - addeq r9, r7, #4 │ │ │ │ │ - movne r7, r3 │ │ │ │ │ + add r1, sp, #36 @ 0x24 │ │ │ │ │ bl 0 │ │ │ │ │ R_ARM_CALL MPI_Comm_rank │ │ │ │ │ - ldr r3, [sp, #44] @ 0x2c │ │ │ │ │ + ldr r3, [sp, #36] @ 0x24 │ │ │ │ │ cmp r3, #0 │ │ │ │ │ - bne 2a0 │ │ │ │ │ + bne 2c4 │ │ │ │ │ ldr r3, [r4, #8] │ │ │ │ │ cmp r3, #0 │ │ │ │ │ - ble 2a0 │ │ │ │ │ + ble 2c4 │ │ │ │ │ ldr r3, [r4, #20] │ │ │ │ │ cmp r3, #4 │ │ │ │ │ - beq 2e4 │ │ │ │ │ + beq 324 │ │ │ │ │ cmp r3, #0 │ │ │ │ │ mov r3, #1 │ │ │ │ │ - str r3, [sp, #28] │ │ │ │ │ strne r3, [sp, #24] │ │ │ │ │ - moveq r3, #2 │ │ │ │ │ - streq r3, [sp, #24] │ │ │ │ │ + str r3, [sp, #28] │ │ │ │ │ + bne 18c │ │ │ │ │ + mov r3, #2 │ │ │ │ │ + str r3, [sp, #24] │ │ │ │ │ ldr r3, [r4, #4] │ │ │ │ │ - ldr fp, [r3] │ │ │ │ │ - mov r0, fp │ │ │ │ │ + ldr sl, [r3] │ │ │ │ │ + mov r0, sl │ │ │ │ │ bl 0 │ │ │ │ │ R_ARM_CALL fftwf_mktensor │ │ │ │ │ ldr r3, [r4, #8] │ │ │ │ │ - sub r1, fp, #1 │ │ │ │ │ - add r2, r1, r1, lsl #1 │ │ │ │ │ - add fp, fp, fp, lsl #1 │ │ │ │ │ + sub ip, sl, #1 │ │ │ │ │ + add sl, sl, sl, lsl #1 │ │ │ │ │ + mov r9, r0 │ │ │ │ │ + cmp ip, #0 │ │ │ │ │ + lsl lr, sl, #2 │ │ │ │ │ + add sl, r0, lr │ │ │ │ │ + lsl r1, r3, #1 │ │ │ │ │ str r3, [sp, #20] │ │ │ │ │ - lsl r3, r3, #1 │ │ │ │ │ - cmp r1, #0 │ │ │ │ │ - mov sl, r0 │ │ │ │ │ - add r0, r0, r2, lsl #2 │ │ │ │ │ - str r3, [r0, #12] │ │ │ │ │ - lsl r0, fp, #2 │ │ │ │ │ - str r0, [sp, #32] │ │ │ │ │ + add r3, ip, ip, lsl #1 │ │ │ │ │ + lsl r3, r3, #2 │ │ │ │ │ + add r2, r0, r3 │ │ │ │ │ ldr r0, [r4, #4] │ │ │ │ │ - add lr, sl, fp, lsl #2 │ │ │ │ │ - add r2, r0, r2, lsl #2 │ │ │ │ │ - ldr fp, [r2, #4] │ │ │ │ │ - str r3, [lr, #-4] │ │ │ │ │ + str r1, [r2, #12] │ │ │ │ │ + str r1, [sl, #-4] │ │ │ │ │ + add r3, r0, r3 │ │ │ │ │ + addgt r0, r0, lr │ │ │ │ │ + ldr fp, [r3, #4] │ │ │ │ │ + movgt r3, sl │ │ │ │ │ add r2, fp, fp, lsr #31 │ │ │ │ │ asr r2, r2, #1 │ │ │ │ │ add r2, r2, #1 │ │ │ │ │ - str r2, [lr, #-8] │ │ │ │ │ - ble 1f8 │ │ │ │ │ - str r3, [sp, #36] @ 0x24 │ │ │ │ │ - ldr r3, [sp, #32] │ │ │ │ │ - mov ip, lr │ │ │ │ │ - add r0, r0, r3 │ │ │ │ │ - ldr r3, [sp, #36] @ 0x24 │ │ │ │ │ - mul r3, r2, r3 │ │ │ │ │ - subs r1, r1, #1 │ │ │ │ │ - str r3, [ip, #-12] │ │ │ │ │ - str r3, [ip, #-16] │ │ │ │ │ - ldr r2, [r0, #-20] @ 0xffffffec │ │ │ │ │ - str r2, [ip, #-20] @ 0xffffffec │ │ │ │ │ + str r2, [sl, #-8] │ │ │ │ │ + ble 220 │ │ │ │ │ + mul r1, r2, r1 │ │ │ │ │ + subs ip, ip, #1 │ │ │ │ │ + sub r3, r3, #12 │ │ │ │ │ sub r0, r0, #12 │ │ │ │ │ - sub ip, ip, #12 │ │ │ │ │ - bne 1d4 │ │ │ │ │ + str r1, [r3, #-4] │ │ │ │ │ + str r1, [r3] │ │ │ │ │ + ldr r2, [r0, #-8] │ │ │ │ │ + str r2, [r3, #-8] │ │ │ │ │ + bne 1fc │ │ │ │ │ + ldr r0, [sp, #20] │ │ │ │ │ + str fp, [sl, #-8] │ │ │ │ │ ldr r2, [sp, #24] │ │ │ │ │ ldr r1, [sp, #28] │ │ │ │ │ - ldr r0, [sp, #20] │ │ │ │ │ - str fp, [lr, #-8] │ │ │ │ │ bl 0 │ │ │ │ │ R_ARM_CALL fftwf_mktensor_1d │ │ │ │ │ ldr r3, [r4, #20] │ │ │ │ │ - str r3, [sp, #8] │ │ │ │ │ - mov r2, r8 │ │ │ │ │ - mov r3, r5 │ │ │ │ │ - stm sp, {r7, r9} │ │ │ │ │ mov r1, r0 │ │ │ │ │ - mov r0, sl │ │ │ │ │ + mov r2, r7 │ │ │ │ │ + mov r0, r9 │ │ │ │ │ + stm sp, {r6, r8} │ │ │ │ │ + str r3, [sp, #8] │ │ │ │ │ + ldr r3, [sp, #16] │ │ │ │ │ bl 0 │ │ │ │ │ R_ARM_CALL fftwf_mkproblem_rdft2_d │ │ │ │ │ mov r1, r0 │ │ │ │ │ - mov r0, r6 │ │ │ │ │ + mov r0, r5 │ │ │ │ │ bl 0 │ │ │ │ │ R_ARM_CALL fftwf_mkplan_d │ │ │ │ │ - ldr r1, [r4, #28] │ │ │ │ │ mov r6, r0 │ │ │ │ │ clz r0, r0 │ │ │ │ │ + ldr r1, [r4, #28] │ │ │ │ │ lsr r0, r0, #5 │ │ │ │ │ bl 0 │ │ │ │ │ R_ARM_CALL fftwf_mpi_any_true │ │ │ │ │ cmp r0, #0 │ │ │ │ │ - bne b4 │ │ │ │ │ + bne dc │ │ │ │ │ ldr r3, [r4, #20] │ │ │ │ │ cmp r3, #0 │ │ │ │ │ - bne 2d8 │ │ │ │ │ - ldr r2, [pc, #172] @ 314 │ │ │ │ │ + bne 318 │ │ │ │ │ + ldr r2, [pc, #196] @ 354 │ │ │ │ │ add r2, pc, r2 │ │ │ │ │ - ldr r1, [pc, #168] @ 318 │ │ │ │ │ + ldr r1, [pc, #192] @ 358 │ │ │ │ │ mov r0, #72 @ 0x48 │ │ │ │ │ add r1, pc, r1 │ │ │ │ │ bl 0 │ │ │ │ │ R_ARM_CALL fftwf_mkplan_rdft │ │ │ │ │ ldr r3, [r4, #8] │ │ │ │ │ mov r5, r0 │ │ │ │ │ add r1, r0, #8 │ │ │ │ │ str r6, [r0, #64] @ 0x40 │ │ │ │ │ str r3, [r0, #68] @ 0x44 │ │ │ │ │ add r0, r6, #8 │ │ │ │ │ bl 0 │ │ │ │ │ R_ARM_CALL fftwf_ops_cpy │ │ │ │ │ mov r0, r5 │ │ │ │ │ - add sp, sp, #52 @ 0x34 │ │ │ │ │ - pop {r4, r5, r6, r7, r8, r9, sl, fp, pc} │ │ │ │ │ + b e0 │ │ │ │ │ bl 0 │ │ │ │ │ R_ARM_CALL fftwf_mktensor_0d │ │ │ │ │ mov r2, #0 │ │ │ │ │ + mov r7, r0 │ │ │ │ │ mov r1, r2 │ │ │ │ │ - mov r5, r0 │ │ │ │ │ mov r0, r2 │ │ │ │ │ bl 0 │ │ │ │ │ R_ARM_CALL fftwf_mktensor_1d │ │ │ │ │ mov r3, #4 │ │ │ │ │ - str r3, [sp, #8] │ │ │ │ │ - mov r2, r7 │ │ │ │ │ - mov r3, r9 │ │ │ │ │ - stm sp, {r7, r9} │ │ │ │ │ mov r1, r0 │ │ │ │ │ - mov r0, r5 │ │ │ │ │ - b 228 │ │ │ │ │ - ldr r2, [pc, #60] @ 31c │ │ │ │ │ + stm sp, {r6, r8} │ │ │ │ │ + mov r2, r6 │ │ │ │ │ + mov r0, r7 │ │ │ │ │ + str r3, [sp, #8] │ │ │ │ │ + mov r3, r8 │ │ │ │ │ + b 250 │ │ │ │ │ + add r3, r6, r3 │ │ │ │ │ + add r8, r7, #4 │ │ │ │ │ + str r3, [sp, #16] │ │ │ │ │ + mov r3, r7 │ │ │ │ │ + mov r7, r6 │ │ │ │ │ + mov r6, r3 │ │ │ │ │ + b 140 │ │ │ │ │ + ldr r2, [pc, #60] @ 35c │ │ │ │ │ add r2, pc, r2 │ │ │ │ │ - b 268 │ │ │ │ │ + b 290 │ │ │ │ │ mov r3, #2 │ │ │ │ │ str r3, [sp, #28] │ │ │ │ │ mov r3, #1 │ │ │ │ │ str r3, [sp, #24] │ │ │ │ │ - b 158 │ │ │ │ │ + b 18c │ │ │ │ │ ldr r0, [r4, #4] │ │ │ │ │ mov r1, #1 │ │ │ │ │ bl 0 │ │ │ │ │ R_ARM_CALL fftwf_mpi_is_local │ │ │ │ │ cmp r0, #0 │ │ │ │ │ - beq d4 │ │ │ │ │ - ldr r5, [r4, #8] │ │ │ │ │ - b e0 │ │ │ │ │ - .word 0xfffffd94 │ │ │ │ │ - .word 0x000000a0 │ │ │ │ │ + beq 110 │ │ │ │ │ + ldr r3, [r4, #8] │ │ │ │ │ + b 11c │ │ │ │ │ + .word 0xfffffd6c │ │ │ │ │ + .word 0x000000b8 │ │ │ │ │ R_ARM_REL32 .data.rel.ro │ │ │ │ │ - .word 0xfffffd50 │ │ │ │ │ + .word 0xfffffd1c │ │ │ │ │ │ │ │ │ │ -00000320 : │ │ │ │ │ +00000360 : │ │ │ │ │ fftwf_mpi_rdft2_serial_applicable(): │ │ │ │ │ ldr r1, [r0, #24] │ │ │ │ │ cmp r1, #0 │ │ │ │ │ - beq 334 │ │ │ │ │ + beq 374 │ │ │ │ │ mov r0, #0 │ │ │ │ │ bx lr │ │ │ │ │ - push {r4, lr} │ │ │ │ │ + str r4, [sp, #-8]! │ │ │ │ │ mov r4, r0 │ │ │ │ │ ldr r0, [r0, #4] │ │ │ │ │ + str lr, [sp, #4] │ │ │ │ │ bl 0 │ │ │ │ │ R_ARM_CALL fftwf_mpi_is_local │ │ │ │ │ cmp r0, #0 │ │ │ │ │ - bne 35c │ │ │ │ │ + bne 3a8 │ │ │ │ │ ldr r0, [r4, #8] │ │ │ │ │ clz r0, r0 │ │ │ │ │ lsr r0, r0, #5 │ │ │ │ │ - pop {r4, pc} │ │ │ │ │ + ldr r4, [sp] │ │ │ │ │ + add sp, sp, #4 │ │ │ │ │ + pop {pc} @ (ldr pc, [sp], #4) │ │ │ │ │ ldr r0, [r4, #4] │ │ │ │ │ mov r1, #1 │ │ │ │ │ bl 0 │ │ │ │ │ R_ARM_CALL fftwf_mpi_is_local │ │ │ │ │ cmp r0, #0 │ │ │ │ │ - beq 34c │ │ │ │ │ - mov r0, #1 │ │ │ │ │ - pop {r4, pc} │ │ │ │ │ + movne r0, #1 │ │ │ │ │ + bne 39c │ │ │ │ │ + b 390 │ │ │ │ │ │ │ │ │ │ -00000378 : │ │ │ │ │ +000003c4 : │ │ │ │ │ fftwf_mpi_rdft2_serial_register(): │ │ │ │ │ - ldr r1, [pc, #32] @ 3a0 │ │ │ │ │ - push {r4, lr} │ │ │ │ │ - add r1, pc, r1 │ │ │ │ │ + ldr r1, [pc, #44] @ 3f8 │ │ │ │ │ + str r4, [sp, #-8]! │ │ │ │ │ mov r4, r0 │ │ │ │ │ mov r0, #8 │ │ │ │ │ + str lr, [sp, #4] │ │ │ │ │ + add r1, pc, r1 │ │ │ │ │ bl 0 │ │ │ │ │ R_ARM_CALL fftwf_mksolver │ │ │ │ │ + ldr lr, [sp, #4] │ │ │ │ │ mov r1, r0 │ │ │ │ │ mov r0, r4 │ │ │ │ │ - pop {r4, lr} │ │ │ │ │ + ldr r4, [sp] │ │ │ │ │ + add sp, sp, #8 │ │ │ │ │ b 0 │ │ │ │ │ R_ARM_JUMP24 fftwf_solver_register │ │ │ │ │ .word 0x00000018 │ │ │ │ │ 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: 3428 (bytes into file) │ │ │ │ │ + Start of section headers: 3568 (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 0xd64: │ │ │ │ │ +There are 15 section headers, starting at offset 0xdf0: │ │ │ │ │ │ │ │ │ │ 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 000bac 000108 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 00002c 01 AMS 0 0 4 │ │ │ │ │ - [ 6] .data.rel.ro PROGBITS 00000000 0006ac 000010 00 WA 0 0 4 │ │ │ │ │ - [ 7] .rel.data.rel.ro REL 00000000 000cb4 000020 08 I 12 6 4 │ │ │ │ │ - [ 8] .data.rel.ro.local PROGBITS 00000000 0006bc 00000c 00 WA 0 0 4 │ │ │ │ │ - [ 9] .rel.data.rel.ro.local REL 00000000 000cd4 000008 08 I 12 8 4 │ │ │ │ │ - [10] .note.GNU-stack PROGBITS 00000000 0006c8 000000 00 0 0 1 │ │ │ │ │ - [11] .ARM.attributes ARM_ATTRIBUTES 00000000 0006c8 00002b 00 0 0 1 │ │ │ │ │ - [12] .symtab SYMTAB 00000000 0006f4 0002c0 10 13 23 4 │ │ │ │ │ - [13] .strtab STRTAB 00000000 0009b4 0001f8 00 0 0 1 │ │ │ │ │ - [14] .shstrtab STRTAB 00000000 000cdc 000087 00 0 0 1 │ │ │ │ │ + [ 1] .text PROGBITS 00000000 000034 0006d8 00 AX 0 0 4 │ │ │ │ │ + [ 2] .rel.text REL 00000000 000c38 000108 08 I 12 1 4 │ │ │ │ │ + [ 3] .data PROGBITS 00000000 00070c 000000 00 WA 0 0 1 │ │ │ │ │ + [ 4] .bss NOBITS 00000000 00070c 000000 00 WA 0 0 1 │ │ │ │ │ + [ 5] .rodata.str1.4 PROGBITS 00000000 00070c 00002c 01 AMS 0 0 4 │ │ │ │ │ + [ 6] .data.rel.ro PROGBITS 00000000 000738 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 000748 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 000754 000000 00 0 0 1 │ │ │ │ │ + [11] .ARM.attributes ARM_ATTRIBUTES 00000000 000754 00002b 00 0 0 1 │ │ │ │ │ + [12] .symtab SYMTAB 00000000 000780 0002c0 10 13 23 4 │ │ │ │ │ + [13] .strtab STRTAB 00000000 000a40 0001f8 00 0 0 1 │ │ │ │ │ + [14] .shstrtab STRTAB 00000000 000d68 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: 00000000 0 NOTYPE LOCAL DEFAULT 1 $a │ │ │ │ │ - 2: 00000000 116 FUNC LOCAL DEFAULT 1 apply_r2c │ │ │ │ │ - 3: 00000074 72 FUNC LOCAL DEFAULT 1 apply_c2r │ │ │ │ │ + 2: 00000000 136 FUNC LOCAL DEFAULT 1 apply_r2c │ │ │ │ │ + 3: 00000088 84 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: 000000bc 96 FUNC LOCAL DEFAULT 1 print │ │ │ │ │ - 9: 00000110 0 NOTYPE LOCAL DEFAULT 1 $d │ │ │ │ │ - 10: 0000011c 0 NOTYPE LOCAL DEFAULT 1 $a │ │ │ │ │ - 11: 0000011c 28 FUNC LOCAL DEFAULT 1 destroy │ │ │ │ │ - 12: 00000138 1176 FUNC LOCAL DEFAULT 1 mkplan │ │ │ │ │ - 13: 000005c4 0 NOTYPE LOCAL DEFAULT 1 $d │ │ │ │ │ - 14: 000005d0 0 NOTYPE LOCAL DEFAULT 1 $a │ │ │ │ │ - 15: 000005d0 36 FUNC LOCAL DEFAULT 1 awake │ │ │ │ │ - 16: 00000648 0 NOTYPE LOCAL DEFAULT 1 $d │ │ │ │ │ + 8: 000000dc 108 FUNC LOCAL DEFAULT 1 print │ │ │ │ │ + 9: 0000013c 0 NOTYPE LOCAL DEFAULT 1 $d │ │ │ │ │ + 10: 00000148 0 NOTYPE LOCAL DEFAULT 1 $a │ │ │ │ │ + 11: 00000148 40 FUNC LOCAL DEFAULT 1 destroy │ │ │ │ │ + 12: 00000170 1220 FUNC LOCAL DEFAULT 1 mkplan │ │ │ │ │ + 13: 00000628 0 NOTYPE LOCAL DEFAULT 1 $d │ │ │ │ │ + 14: 00000634 0 NOTYPE LOCAL DEFAULT 1 $a │ │ │ │ │ + 15: 00000634 56 FUNC LOCAL DEFAULT 1 awake │ │ │ │ │ + 16: 000006d4 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: 000005f4 88 FUNC GLOBAL DEFAULT 1 fftwf_mpi_rdft2_rank_geq2_register │ │ │ │ │ + 40: 0000066c 108 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,47 +1,47 @@ │ │ │ │ │ │ │ │ │ │ -Relocation section '.rel.text' at offset 0xbac contains 33 entries: │ │ │ │ │ +Relocation section '.rel.text' at offset 0xc38 contains 33 entries: │ │ │ │ │ Offset Info Type Sym. Value Symbol's Name │ │ │ │ │ -00000110 00000603 R_ARM_REL32 00000004 .LC1 │ │ │ │ │ -00000114 00000703 R_ARM_REL32 00000008 .LC2 │ │ │ │ │ -00000118 00000503 R_ARM_REL32 00000000 .LC0 │ │ │ │ │ -00000128 0000171c R_ARM_CALL 00000000 fftwf_plan_destroy_internal │ │ │ │ │ -00000134 0000171d R_ARM_JUMP24 00000000 fftwf_plan_destroy_internal │ │ │ │ │ -000001b8 0000181c R_ARM_CALL 00000000 fftwf_mpi_is_local_after │ │ │ │ │ -000001d4 0000181c R_ARM_CALL 00000000 fftwf_mpi_is_local_after │ │ │ │ │ -00000248 0000191c R_ARM_CALL 00000000 MPI_Comm_rank │ │ │ │ │ -00000254 00001a1c R_ARM_CALL 00000000 MPI_Comm_size │ │ │ │ │ -00000264 00001b1c R_ARM_CALL 00000000 fftwf_mktensor │ │ │ │ │ -00000370 00001c1c R_ARM_CALL 00000000 fftwf_tensor_sz │ │ │ │ │ -000003bc 00001d1c R_ARM_CALL 00000000 fftwf_mpi_block │ │ │ │ │ -00000400 00001e1c R_ARM_CALL 00000000 fftwf_mktensor_2d │ │ │ │ │ -00000428 00001f1c R_ARM_CALL 00000000 fftwf_mkproblem_rdft2_d │ │ │ │ │ -00000434 0000201c R_ARM_CALL 00000000 fftwf_mkplan_d │ │ │ │ │ -00000448 0000211c R_ARM_CALL 00000000 fftwf_mpi_any_true │ │ │ │ │ -00000458 0000221c R_ARM_CALL 00000000 fftwf_mpi_mkdtensor │ │ │ │ │ -000004a4 0000231c R_ARM_CALL 00000000 fftwf_mpi_mkproblem_dft_d │ │ │ │ │ -000004b0 0000201c R_ARM_CALL 00000000 fftwf_mkplan_d │ │ │ │ │ -000004c4 0000211c R_ARM_CALL 00000000 fftwf_mpi_any_true │ │ │ │ │ -000004f0 0000241c R_ARM_CALL 00000000 fftwf_mkplan_rdft │ │ │ │ │ -00000530 0000251c R_ARM_CALL 00000000 fftwf_ops_add │ │ │ │ │ -00000564 0000171c R_ARM_CALL 00000000 fftwf_plan_destroy_internal │ │ │ │ │ -0000056c 0000171c R_ARM_CALL 00000000 fftwf_plan_destroy_internal │ │ │ │ │ -000005b4 0000261c R_ARM_CALL 00000000 fftwf_mpi_rdft2_serial_applicable │ │ │ │ │ -000005c8 00001103 R_ARM_REL32 00000000 .data.rel.ro │ │ │ │ │ -000005e0 0000271c R_ARM_CALL 00000000 fftwf_plan_awake │ │ │ │ │ -000005f0 0000271d R_ARM_JUMP24 00000000 fftwf_plan_awake │ │ │ │ │ -0000060c 0000291c R_ARM_CALL 00000000 fftwf_mksolver │ │ │ │ │ -00000620 00002a1c R_ARM_CALL 00000000 fftwf_solver_register │ │ │ │ │ -0000062c 0000291c R_ARM_CALL 00000000 fftwf_mksolver │ │ │ │ │ -00000644 00002a1d R_ARM_JUMP24 00000000 fftwf_solver_register │ │ │ │ │ -00000648 00001403 R_ARM_REL32 00000000 .data.rel.ro.local │ │ │ │ │ +0000013c 00000603 R_ARM_REL32 00000004 .LC1 │ │ │ │ │ +00000140 00000703 R_ARM_REL32 00000008 .LC2 │ │ │ │ │ +00000144 00000503 R_ARM_REL32 00000000 .LC0 │ │ │ │ │ +00000158 0000171c R_ARM_CALL 00000000 fftwf_plan_destroy_internal │ │ │ │ │ +0000016c 0000171d R_ARM_JUMP24 00000000 fftwf_plan_destroy_internal │ │ │ │ │ +00000214 0000181c R_ARM_CALL 00000000 fftwf_mpi_is_local_after │ │ │ │ │ +00000230 0000181c R_ARM_CALL 00000000 fftwf_mpi_is_local_after │ │ │ │ │ +000002a4 0000191c R_ARM_CALL 00000000 MPI_Comm_rank │ │ │ │ │ +000002b0 00001a1c R_ARM_CALL 00000000 MPI_Comm_size │ │ │ │ │ +000002c0 00001b1c R_ARM_CALL 00000000 fftwf_mktensor │ │ │ │ │ +000003d0 00001c1c R_ARM_CALL 00000000 fftwf_tensor_sz │ │ │ │ │ +00000420 00001d1c R_ARM_CALL 00000000 fftwf_mpi_block │ │ │ │ │ +0000045c 00001e1c R_ARM_CALL 00000000 fftwf_mktensor_2d │ │ │ │ │ +00000484 00001f1c R_ARM_CALL 00000000 fftwf_mkproblem_rdft2_d │ │ │ │ │ +00000490 0000201c R_ARM_CALL 00000000 fftwf_mkplan_d │ │ │ │ │ +000004a4 0000211c R_ARM_CALL 00000000 fftwf_mpi_any_true │ │ │ │ │ +000004b4 0000221c R_ARM_CALL 00000000 fftwf_mpi_mkdtensor │ │ │ │ │ +0000050c 0000231c R_ARM_CALL 00000000 fftwf_mpi_mkproblem_dft_d │ │ │ │ │ +00000518 0000201c R_ARM_CALL 00000000 fftwf_mkplan_d │ │ │ │ │ +0000052c 0000211c R_ARM_CALL 00000000 fftwf_mpi_any_true │ │ │ │ │ +00000558 0000241c R_ARM_CALL 00000000 fftwf_mkplan_rdft │ │ │ │ │ +00000598 0000251c R_ARM_CALL 00000000 fftwf_ops_add │ │ │ │ │ +000005c8 0000171c R_ARM_CALL 00000000 fftwf_plan_destroy_internal │ │ │ │ │ +000005d0 0000171c R_ARM_CALL 00000000 fftwf_plan_destroy_internal │ │ │ │ │ +00000618 0000261c R_ARM_CALL 00000000 fftwf_mpi_rdft2_serial_applicable │ │ │ │ │ +0000062c 00001103 R_ARM_REL32 00000000 .data.rel.ro │ │ │ │ │ +0000064c 0000271c R_ARM_CALL 00000000 fftwf_plan_awake │ │ │ │ │ +00000668 0000271d R_ARM_JUMP24 00000000 fftwf_plan_awake │ │ │ │ │ +0000068c 0000291c R_ARM_CALL 00000000 fftwf_mksolver │ │ │ │ │ +000006a0 00002a1c R_ARM_CALL 00000000 fftwf_solver_register │ │ │ │ │ +000006ac 0000291c R_ARM_CALL 00000000 fftwf_mksolver │ │ │ │ │ +000006d0 00002a1d R_ARM_JUMP24 00000000 fftwf_solver_register │ │ │ │ │ +000006d4 00001403 R_ARM_REL32 00000000 .data.rel.ro.local │ │ │ │ │ │ │ │ │ │ -Relocation section '.rel.data.rel.ro' at offset 0xcb4 contains 4 entries: │ │ │ │ │ +Relocation section '.rel.data.rel.ro' at offset 0xd40 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 000005d0 awake │ │ │ │ │ -00000008 00000802 R_ARM_ABS32 000000bc print │ │ │ │ │ -0000000c 00000b02 R_ARM_ABS32 0000011c destroy │ │ │ │ │ +00000004 00000f02 R_ARM_ABS32 00000634 awake │ │ │ │ │ +00000008 00000802 R_ARM_ABS32 000000dc print │ │ │ │ │ +0000000c 00000b02 R_ARM_ABS32 00000148 destroy │ │ │ │ │ │ │ │ │ │ -Relocation section '.rel.data.rel.ro.local' at offset 0xcd4 contains 1 entry: │ │ │ │ │ +Relocation section '.rel.data.rel.ro.local' at offset 0xd60 contains 1 entry: │ │ │ │ │ Offset Info Type Sym. Value Symbol's Name │ │ │ │ │ -00000004 00000c02 R_ARM_ABS32 00000138 mkplan │ │ │ │ │ +00000004 00000c02 R_ARM_ABS32 00000170 mkplan │ │ │ │ ├── objdump --line-numbers --disassemble --demangle --reloc --no-show-raw-insn --section=.text {} │ │ │ │ │ @@ -1,461 +1,496 @@ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ Disassembly of section .text: │ │ │ │ │ │ │ │ │ │ 00000000 : │ │ │ │ │ apply_r2c(): │ │ │ │ │ - push {r4, r5, r6, r7, lr} │ │ │ │ │ + strd r4, [sp, #-20]! @ 0xffffffec │ │ │ │ │ mov r4, r0 │ │ │ │ │ ldr r3, [r4, #76] @ 0x4c │ │ │ │ │ - ldr r0, [r0, #64] @ 0x40 │ │ │ │ │ + strd r6, [sp, #8] │ │ │ │ │ mov r6, r2 │ │ │ │ │ + ldr r0, [r0, #64] @ 0x40 │ │ │ │ │ + str lr, [sp, #16] │ │ │ │ │ + sub sp, sp, #12 │ │ │ │ │ ldr r2, [r4, #72] @ 0x48 │ │ │ │ │ cmp r3, #0 │ │ │ │ │ ldr r7, [r0, #56] @ 0x38 │ │ │ │ │ - sub sp, sp, #12 │ │ │ │ │ add r2, r1, r2, lsl #2 │ │ │ │ │ - beq 5c │ │ │ │ │ + beq 70 │ │ │ │ │ add r3, r6, #4 │ │ │ │ │ + mov r5, r6 │ │ │ │ │ str r3, [sp] │ │ │ │ │ mov r3, r6 │ │ │ │ │ blx r7 │ │ │ │ │ - mov r5, r6 │ │ │ │ │ ldr r0, [r4, #68] @ 0x44 │ │ │ │ │ mov r2, r6 │ │ │ │ │ mov r1, r5 │ │ │ │ │ ldr r3, [r0, #56] @ 0x38 │ │ │ │ │ add sp, sp, #12 │ │ │ │ │ - pop {r4, r5, r6, r7, lr} │ │ │ │ │ + ldrd r4, [sp] │ │ │ │ │ + ldrd r6, [sp, #8] │ │ │ │ │ + ldr lr, [sp, #16] │ │ │ │ │ + add sp, sp, #20 │ │ │ │ │ bx r3 │ │ │ │ │ add r3, r1, #4 │ │ │ │ │ + mov r5, r1 │ │ │ │ │ str r3, [sp] │ │ │ │ │ mov r3, r1 │ │ │ │ │ - mov r5, r1 │ │ │ │ │ blx r7 │ │ │ │ │ - b 40 │ │ │ │ │ + b 48 │ │ │ │ │ │ │ │ │ │ -00000074 : │ │ │ │ │ +00000088 : │ │ │ │ │ apply_c2r(): │ │ │ │ │ - push {r4, r5, lr} │ │ │ │ │ + strd r4, [sp, #-12]! │ │ │ │ │ mov r4, r0 │ │ │ │ │ + mov r5, r2 │ │ │ │ │ ldr r0, [r0, #68] @ 0x44 │ │ │ │ │ + str lr, [sp, #8] │ │ │ │ │ sub sp, sp, #12 │ │ │ │ │ ldr r3, [r0, #56] @ 0x38 │ │ │ │ │ - mov r5, r2 │ │ │ │ │ blx r3 │ │ │ │ │ ldr r0, [r4, #64] @ 0x40 │ │ │ │ │ - ldr r2, [r4, #72] @ 0x48 │ │ │ │ │ add r3, r5, #4 │ │ │ │ │ + mov r1, r5 │ │ │ │ │ + ldr r2, [r4, #72] @ 0x48 │ │ │ │ │ str r3, [sp] │ │ │ │ │ - add r2, r5, r2, lsl #2 │ │ │ │ │ - ldr r4, [r0, #56] @ 0x38 │ │ │ │ │ mov r3, r5 │ │ │ │ │ - mov r1, r5 │ │ │ │ │ + ldr r4, [r0, #56] @ 0x38 │ │ │ │ │ + add r2, r5, r2, lsl #2 │ │ │ │ │ blx r4 │ │ │ │ │ add sp, sp, #12 │ │ │ │ │ - pop {r4, r5, pc} │ │ │ │ │ + ldrd r4, [sp] │ │ │ │ │ + add sp, sp, #8 │ │ │ │ │ + pop {pc} @ (ldr pc, [sp], #4) │ │ │ │ │ │ │ │ │ │ -000000bc : │ │ │ │ │ +000000dc : │ │ │ │ │ print(): │ │ │ │ │ mov r3, r0 │ │ │ │ │ + mov r0, r1 │ │ │ │ │ + str r4, [sp, #-8]! │ │ │ │ │ ldr r2, [r3, #76] @ 0x4c │ │ │ │ │ - push {r4, lr} │ │ │ │ │ - cmp r2, #2 │ │ │ │ │ - ldr r4, [r1] │ │ │ │ │ + str lr, [sp, #4] │ │ │ │ │ sub sp, sp, #8 │ │ │ │ │ - mov r0, r1 │ │ │ │ │ - beq 104 │ │ │ │ │ - ldr r2, [pc, #44] @ 110 │ │ │ │ │ + ldr r4, [r1] │ │ │ │ │ + cmp r2, #2 │ │ │ │ │ + beq 130 │ │ │ │ │ + ldr r2, [pc, #52] @ 13c │ │ │ │ │ add r2, pc, r2 │ │ │ │ │ ldr r1, [r3, #68] @ 0x44 │ │ │ │ │ str r1, [sp] │ │ │ │ │ - ldr r1, [pc, #32] @ 114 │ │ │ │ │ + ldr r1, [pc, #40] @ 140 │ │ │ │ │ ldr r3, [r3, #64] @ 0x40 │ │ │ │ │ add r1, pc, r1 │ │ │ │ │ blx r4 │ │ │ │ │ add sp, sp, #8 │ │ │ │ │ - pop {r4, pc} │ │ │ │ │ - ldr r2, [pc, #12] @ 118 │ │ │ │ │ + ldr r4, [sp] │ │ │ │ │ + add sp, sp, #4 │ │ │ │ │ + pop {pc} @ (ldr pc, [sp], #4) │ │ │ │ │ + ldr r2, [pc, #12] @ 144 │ │ │ │ │ add r2, pc, r2 │ │ │ │ │ - b e4 │ │ │ │ │ - .word 0x00000028 │ │ │ │ │ + b 108 │ │ │ │ │ + .word 0x00000030 │ │ │ │ │ R_ARM_REL32 .LC1 │ │ │ │ │ - .word 0x00000018 │ │ │ │ │ + .word 0x00000020 │ │ │ │ │ R_ARM_REL32 .LC2 │ │ │ │ │ .word 0x00000008 │ │ │ │ │ R_ARM_REL32 .LC0 │ │ │ │ │ │ │ │ │ │ -0000011c : │ │ │ │ │ +00000148 : │ │ │ │ │ destroy(): │ │ │ │ │ - push {r4, lr} │ │ │ │ │ + str r4, [sp, #-8]! │ │ │ │ │ mov r4, r0 │ │ │ │ │ ldr r0, [r0, #68] @ 0x44 │ │ │ │ │ + str lr, [sp, #4] │ │ │ │ │ bl 0 │ │ │ │ │ R_ARM_CALL fftwf_plan_destroy_internal │ │ │ │ │ + ldr lr, [sp, #4] │ │ │ │ │ ldr r0, [r4, #64] @ 0x40 │ │ │ │ │ - pop {r4, lr} │ │ │ │ │ + ldr r4, [sp] │ │ │ │ │ + add sp, sp, #8 │ │ │ │ │ b 0 │ │ │ │ │ R_ARM_JUMP24 fftwf_plan_destroy_internal │ │ │ │ │ │ │ │ │ │ -00000138 : │ │ │ │ │ +00000170 : │ │ │ │ │ mkplan(): │ │ │ │ │ - push {r4, r5, r6, r7, r8, r9, sl, fp, lr} │ │ │ │ │ - sub sp, sp, #52 @ 0x34 │ │ │ │ │ + strd r4, [sp, #-36]! @ 0xffffffdc │ │ │ │ │ + strd r6, [sp, #8] │ │ │ │ │ mov r6, r2 │ │ │ │ │ - str r1, [sp, #16] │ │ │ │ │ mov r2, r1 │ │ │ │ │ + strd r8, [sp, #16] │ │ │ │ │ + strd sl, [sp, #24] │ │ │ │ │ + str lr, [sp, #32] │ │ │ │ │ + sub sp, sp, #60 @ 0x3c │ │ │ │ │ + str r1, [sp, #20] │ │ │ │ │ ldr r1, [r1, #4] │ │ │ │ │ ldr r3, [r1] │ │ │ │ │ cmp r3, #1 │ │ │ │ │ - ble 170 │ │ │ │ │ + ble 1b8 │ │ │ │ │ ldr r3, [r2, #24] │ │ │ │ │ mov r7, r0 │ │ │ │ │ - cmp r3, #0 │ │ │ │ │ mov r0, r2 │ │ │ │ │ - beq 17c │ │ │ │ │ + cmp r3, #0 │ │ │ │ │ + beq 1d8 │ │ │ │ │ mov r0, #0 │ │ │ │ │ - add sp, sp, #52 @ 0x34 │ │ │ │ │ - pop {r4, r5, r6, r7, r8, r9, sl, fp, pc} │ │ │ │ │ + add sp, sp, #60 @ 0x3c │ │ │ │ │ + ldrd r4, [sp] │ │ │ │ │ + ldrd r6, [sp, #8] │ │ │ │ │ + ldrd r8, [sp, #16] │ │ │ │ │ + ldrd sl, [sp, #24] │ │ │ │ │ + add sp, sp, #32 │ │ │ │ │ + pop {pc} @ (ldr pc, [sp], #4) │ │ │ │ │ ldr r3, [r7, #8] │ │ │ │ │ cmp r3, #0 │ │ │ │ │ - beq 1b0 │ │ │ │ │ + beq 20c │ │ │ │ │ ldr r3, [r6, #164] @ 0xa4 │ │ │ │ │ tst r3, #4096 @ 0x1000 │ │ │ │ │ - bne 170 │ │ │ │ │ + bne 1b8 │ │ │ │ │ ldr r2, [r2, #12] │ │ │ │ │ ldr r3, [r0, #16] │ │ │ │ │ cmp r2, r3 │ │ │ │ │ - beq 170 │ │ │ │ │ + beq 1b8 │ │ │ │ │ ldr r3, [r0, #20] │ │ │ │ │ cmp r3, #0 │ │ │ │ │ - bne 170 │ │ │ │ │ + bne 1b8 │ │ │ │ │ mov r2, #0 │ │ │ │ │ mov r0, #1 │ │ │ │ │ bl 0 │ │ │ │ │ R_ARM_CALL fftwf_mpi_is_local_after │ │ │ │ │ cmp r0, #0 │ │ │ │ │ - beq 170 │ │ │ │ │ - ldr r3, [sp, #16] │ │ │ │ │ + beq 1b8 │ │ │ │ │ + ldr r3, [sp, #20] │ │ │ │ │ mov r2, #1 │ │ │ │ │ - ldr r1, [r3, #4] │ │ │ │ │ mov r0, r2 │ │ │ │ │ + ldr r1, [r3, #4] │ │ │ │ │ bl 0 │ │ │ │ │ R_ARM_CALL fftwf_mpi_is_local_after │ │ │ │ │ cmp r0, #0 │ │ │ │ │ - beq 170 │ │ │ │ │ + beq 1b8 │ │ │ │ │ ldr r3, [r6, #164] @ 0xa4 │ │ │ │ │ tst r3, #8 │ │ │ │ │ - bne 5b0 │ │ │ │ │ - ldr r2, [sp, #16] │ │ │ │ │ + bne 614 │ │ │ │ │ + ldr r2, [sp, #20] │ │ │ │ │ ldr r3, [r2, #8] │ │ │ │ │ ldr fp, [r2, #12] │ │ │ │ │ ldr r8, [r2, #16] │ │ │ │ │ - ldr r2, [r2, #20] │ │ │ │ │ lsl r3, r3, #2 │ │ │ │ │ + ldr r2, [r2, #20] │ │ │ │ │ cmp r2, #0 │ │ │ │ │ - bne 540 │ │ │ │ │ + bne 5a4 │ │ │ │ │ add r3, fp, r3 │ │ │ │ │ - str r3, [sp, #20] │ │ │ │ │ + str r3, [sp, #24] │ │ │ │ │ ldr r3, [r7, #8] │ │ │ │ │ cmp r3, #0 │ │ │ │ │ - bne 574 │ │ │ │ │ + bne 5d8 │ │ │ │ │ ldr r3, [r6, #164] @ 0xa4 │ │ │ │ │ tst r3, #4096 @ 0x1000 │ │ │ │ │ - bne 574 │ │ │ │ │ + bne 5d8 │ │ │ │ │ add r3, fp, #4 │ │ │ │ │ mov r9, fp │ │ │ │ │ - str r3, [sp, #32] │ │ │ │ │ - str fp, [sp, #28] │ │ │ │ │ - ldr r4, [sp, #16] │ │ │ │ │ - add r1, sp, #40 @ 0x28 │ │ │ │ │ + str fp, [sp, #32] │ │ │ │ │ + str r3, [sp, #36] @ 0x24 │ │ │ │ │ + ldr r4, [sp, #20] │ │ │ │ │ + add r1, sp, #48 @ 0x30 │ │ │ │ │ ldr r0, [r4, #28] │ │ │ │ │ bl 0 │ │ │ │ │ R_ARM_CALL MPI_Comm_rank │ │ │ │ │ - add r1, sp, #44 @ 0x2c │ │ │ │ │ ldr r0, [r4, #28] │ │ │ │ │ + add r1, sp, #52 @ 0x34 │ │ │ │ │ bl 0 │ │ │ │ │ R_ARM_CALL MPI_Comm_size │ │ │ │ │ ldr r3, [r4, #4] │ │ │ │ │ ldr r0, [r3] │ │ │ │ │ sub r0, r0, #1 │ │ │ │ │ bl 0 │ │ │ │ │ R_ARM_CALL fftwf_mktensor │ │ │ │ │ ldr sl, [r4, #4] │ │ │ │ │ + mov r5, r0 │ │ │ │ │ ldr r2, [r4, #8] │ │ │ │ │ ldr lr, [sl] │ │ │ │ │ lsl r2, r2, #1 │ │ │ │ │ add r3, lr, lr, lsl #1 │ │ │ │ │ + add r1, lr, lr, lsl #1 │ │ │ │ │ add r3, r0, r3, lsl #2 │ │ │ │ │ + lsl r1, r1, #2 │ │ │ │ │ str r2, [r3, #-12] │ │ │ │ │ - add r3, lr, lr, lsl #1 │ │ │ │ │ - lsl r1, r3, #2 │ │ │ │ │ - add r3, r0, r3, lsl #2 │ │ │ │ │ + add r3, r0, r1 │ │ │ │ │ + subs r0, lr, #3 │ │ │ │ │ str r2, [r3, #-16] │ │ │ │ │ add r2, lr, lr, lsl #1 │ │ │ │ │ add r2, sl, r2, lsl #2 │ │ │ │ │ ldr r2, [r2, #-8] │ │ │ │ │ - mov r5, r0 │ │ │ │ │ add r2, r2, r2, lsr #31 │ │ │ │ │ asr r2, r2, #1 │ │ │ │ │ add r2, r2, #1 │ │ │ │ │ - subs r0, lr, #3 │ │ │ │ │ str r2, [r3, #-20] @ 0xffffffec │ │ │ │ │ - bmi 36c │ │ │ │ │ + bmi 3cc │ │ │ │ │ cmp lr, #4 │ │ │ │ │ sub r2, r1, #16 │ │ │ │ │ sub ip, r1, #20 │ │ │ │ │ - ble 5a8 │ │ │ │ │ - sub lr, lr, #5 │ │ │ │ │ + ble 60c │ │ │ │ │ ldr r2, [r5, r2] │ │ │ │ │ - ldr ip, [r5, ip] │ │ │ │ │ + sub lr, lr, #5 │ │ │ │ │ add r1, sl, r1 │ │ │ │ │ and lr, lr, #1 │ │ │ │ │ + ldr ip, [r5, ip] │ │ │ │ │ mul r2, ip, r2 │ │ │ │ │ - ldr r4, [r1, #-20] @ 0xffffffec │ │ │ │ │ - str r2, [r3, #-24] @ 0xffffffe8 │ │ │ │ │ - str r2, [r3, #-28] @ 0xffffffe4 │ │ │ │ │ - mul r2, r4, r2 │ │ │ │ │ sub r0, r0, #2 │ │ │ │ │ - str r4, [r3, #-32] @ 0xffffffe0 │ │ │ │ │ - cmp r0, lr │ │ │ │ │ - ldr ip, [r1, #-32] @ 0xffffffe0 │ │ │ │ │ - str ip, [r3, #-44] @ 0xffffffd4 │ │ │ │ │ - str r2, [r3, #-36] @ 0xffffffdc │ │ │ │ │ - str r2, [r3, #-40] @ 0xffffffd8 │ │ │ │ │ sub r1, r1, #24 │ │ │ │ │ + ldr r4, [r1, #4] │ │ │ │ │ + cmp r0, lr │ │ │ │ │ sub r3, r3, #24 │ │ │ │ │ - bne 2e0 │ │ │ │ │ + str r4, [r3, #-8] │ │ │ │ │ + str r2, [r3, #-4] │ │ │ │ │ + str r2, [r3] │ │ │ │ │ + mul r2, r4, r2 │ │ │ │ │ + ldr ip, [r1, #-8] │ │ │ │ │ + str ip, [r3, #-20] @ 0xffffffec │ │ │ │ │ + str r2, [r3, #-16] │ │ │ │ │ + str r2, [r3, #-12] │ │ │ │ │ + bne 33c │ │ │ │ │ add r3, lr, lr, lsl #1 │ │ │ │ │ - add sl, sl, r3, lsl #2 │ │ │ │ │ - add r3, r5, r3, lsl #2 │ │ │ │ │ - ldr r1, [r3, #20] │ │ │ │ │ + cmp lr, #0 │ │ │ │ │ + lsl r3, r3, #2 │ │ │ │ │ + add sl, sl, r3 │ │ │ │ │ + add r3, r5, r3 │ │ │ │ │ ldr r2, [r3, #16] │ │ │ │ │ + ldr r1, [r3, #20] │ │ │ │ │ ldr r0, [sl, #16] │ │ │ │ │ mul r2, r1, r2 │ │ │ │ │ - cmp lr, #0 │ │ │ │ │ sub r1, lr, #1 │ │ │ │ │ str r0, [r3, #4] │ │ │ │ │ - str r2, [r3, #12] │ │ │ │ │ str r2, [r3, #8] │ │ │ │ │ - beq 36c │ │ │ │ │ - mul r2, r0, r2 │ │ │ │ │ - add r1, r1, r1, lsl #1 │ │ │ │ │ + str r2, [r3, #12] │ │ │ │ │ + beq 3cc │ │ │ │ │ ldr ip, [sl, #4] │ │ │ │ │ + add r1, r1, r1, lsl #1 │ │ │ │ │ + mul r2, r0, r2 │ │ │ │ │ add r1, r5, r1, lsl #2 │ │ │ │ │ str ip, [r3, #-8] │ │ │ │ │ str r2, [r1, #12] │ │ │ │ │ str r2, [r3, #-4] │ │ │ │ │ mov r0, r5 │ │ │ │ │ bl 0 │ │ │ │ │ R_ARM_CALL fftwf_tensor_sz │ │ │ │ │ - ldr r3, [sp, #16] │ │ │ │ │ + ldr r3, [sp, #20] │ │ │ │ │ + str r0, [sp, #44] @ 0x2c │ │ │ │ │ ldr r3, [r3, #20] │ │ │ │ │ cmp r3, #4 │ │ │ │ │ - mov r4, r0 │ │ │ │ │ - beq 58c │ │ │ │ │ + beq 5f0 │ │ │ │ │ mov sl, #1 │ │ │ │ │ cmp r3, #0 │ │ │ │ │ - strne sl, [sp, #36] @ 0x24 │ │ │ │ │ - moveq r3, #2 │ │ │ │ │ - streq r3, [sp, #36] @ 0x24 │ │ │ │ │ + strne sl, [sp, #40] @ 0x28 │ │ │ │ │ + bne 400 │ │ │ │ │ + mov r3, #2 │ │ │ │ │ + str r3, [sp, #40] @ 0x28 │ │ │ │ │ + ldr r4, [sp, #20] │ │ │ │ │ ldr r3, [r5, #4] │ │ │ │ │ ldr r2, [r5, #8] │ │ │ │ │ + ldr r0, [r4, #4] │ │ │ │ │ mul r1, r2, r3 │ │ │ │ │ - ldr r3, [sp, #16] │ │ │ │ │ - ldr r2, [sp, #40] @ 0x28 │ │ │ │ │ - ldr r0, [r3, #4] │ │ │ │ │ - str r1, [sp, #24] │ │ │ │ │ + ldr r2, [sp, #48] @ 0x30 │ │ │ │ │ + str r1, [sp, #28] │ │ │ │ │ ldmib r0, {r0, r1} │ │ │ │ │ bl 0 │ │ │ │ │ R_ARM_CALL fftwf_mpi_block │ │ │ │ │ - ldr r3, [sp, #16] │ │ │ │ │ - ldr ip, [r3, #4] │ │ │ │ │ + ldr ip, [r4, #4] │ │ │ │ │ ldr r2, [ip] │ │ │ │ │ sub r1, r2, #2 │ │ │ │ │ add r2, r2, r2, lsl #1 │ │ │ │ │ - add ip, ip, r2, lsl #2 │ │ │ │ │ add r1, r1, r1, lsl #1 │ │ │ │ │ - ldr r2, [ip, #-8] │ │ │ │ │ + add ip, ip, r2, lsl #2 │ │ │ │ │ add r1, r5, r1, lsl #2 │ │ │ │ │ - ldr ip, [sp, #36] @ 0x24 │ │ │ │ │ + ldr r2, [ip, #-8] │ │ │ │ │ + ldr ip, [sp, #40] @ 0x28 │ │ │ │ │ str r2, [r1, #4] │ │ │ │ │ - ldr r2, [sp, #24] │ │ │ │ │ + ldr r2, [sp, #28] │ │ │ │ │ stm sp, {sl, ip} │ │ │ │ │ + ldr r3, [r4, #8] │ │ │ │ │ mov r1, r2 │ │ │ │ │ - mov sl, r3 │ │ │ │ │ - ldr r3, [r3, #8] │ │ │ │ │ bl 0 │ │ │ │ │ R_ARM_CALL fftwf_mktensor_2d │ │ │ │ │ - ldr r3, [sl, #20] │ │ │ │ │ - str r3, [sp, #8] │ │ │ │ │ - ldr r3, [sp, #32] │ │ │ │ │ - ldr r2, [sp, #28] │ │ │ │ │ - str r3, [sp, #4] │ │ │ │ │ - str r9, [sp] │ │ │ │ │ - ldr r3, [sp, #20] │ │ │ │ │ + ldr r3, [r4, #20] │ │ │ │ │ mov r1, r0 │ │ │ │ │ mov r0, r5 │ │ │ │ │ + str r9, [sp] │ │ │ │ │ + ldr r2, [sp, #32] │ │ │ │ │ + str r3, [sp, #8] │ │ │ │ │ + ldr r3, [sp, #36] @ 0x24 │ │ │ │ │ + str r3, [sp, #4] │ │ │ │ │ + ldr r3, [sp, #24] │ │ │ │ │ bl 0 │ │ │ │ │ R_ARM_CALL fftwf_mkproblem_rdft2_d │ │ │ │ │ mov r1, r0 │ │ │ │ │ mov r0, r6 │ │ │ │ │ bl 0 │ │ │ │ │ R_ARM_CALL fftwf_mkplan_d │ │ │ │ │ - ldr r1, [sl, #28] │ │ │ │ │ mov r9, r0 │ │ │ │ │ clz r0, r0 │ │ │ │ │ + ldr r1, [r4, #28] │ │ │ │ │ lsr r0, r0, #5 │ │ │ │ │ bl 0 │ │ │ │ │ R_ARM_CALL fftwf_mpi_any_true │ │ │ │ │ cmp r0, #0 │ │ │ │ │ - bne 55c │ │ │ │ │ + bne 5c0 │ │ │ │ │ mov r0, #1 │ │ │ │ │ bl 0 │ │ │ │ │ R_ARM_CALL fftwf_mpi_mkdtensor │ │ │ │ │ - ldr r3, [sl, #4] │ │ │ │ │ - mov ip, r0 │ │ │ │ │ - ldmib r3, {r0, r1, r2} │ │ │ │ │ - stmib ip, {r0, r1, r2} │ │ │ │ │ - ldr r2, [sl, #20] │ │ │ │ │ - ldr r1, [sl, #8] │ │ │ │ │ + ldr r2, [r4, #4] │ │ │ │ │ + mov r1, r4 │ │ │ │ │ + mov ip, #16 │ │ │ │ │ + ldrd r4, [r2, #4] │ │ │ │ │ + strd r4, [r0, #4] │ │ │ │ │ + mov r4, r1 │ │ │ │ │ + ldr r2, [r2, #12] │ │ │ │ │ + ldr r1, [r1, #8] │ │ │ │ │ + ldr r3, [r4, #28] │ │ │ │ │ + str r2, [r0, #12] │ │ │ │ │ + ldr r2, [r4, #20] │ │ │ │ │ + str r3, [sp] │ │ │ │ │ + mov r3, r8 │ │ │ │ │ cmp r2, #0 │ │ │ │ │ movne r2, #1 │ │ │ │ │ mvneq r2, #0 │ │ │ │ │ - ldr r3, [sl, #28] │ │ │ │ │ - mov r0, #16 │ │ │ │ │ - mul r1, r4, r1 │ │ │ │ │ - str r0, [sp, #8] │ │ │ │ │ - str r2, [sp, #4] │ │ │ │ │ - mov r0, ip │ │ │ │ │ + stmib sp, {r2, ip} │ │ │ │ │ mov r2, fp │ │ │ │ │ - str r3, [sp] │ │ │ │ │ - mov r3, r8 │ │ │ │ │ + ldr ip, [sp, #44] @ 0x2c │ │ │ │ │ + mul ip, r1, ip │ │ │ │ │ + mov r1, ip │ │ │ │ │ bl 0 │ │ │ │ │ R_ARM_CALL fftwf_mpi_mkproblem_dft_d │ │ │ │ │ mov r1, r0 │ │ │ │ │ mov r0, r6 │ │ │ │ │ bl 0 │ │ │ │ │ R_ARM_CALL fftwf_mkplan_d │ │ │ │ │ - ldr r1, [sl, #28] │ │ │ │ │ mov r8, r0 │ │ │ │ │ clz r0, r0 │ │ │ │ │ + ldr r1, [r4, #28] │ │ │ │ │ lsr r0, r0, #5 │ │ │ │ │ bl 0 │ │ │ │ │ R_ARM_CALL fftwf_mpi_any_true │ │ │ │ │ cmp r0, #0 │ │ │ │ │ - bne 560 │ │ │ │ │ - ldr r3, [sl, #20] │ │ │ │ │ + bne 5c4 │ │ │ │ │ + ldr r3, [r4, #20] │ │ │ │ │ cmp r3, #0 │ │ │ │ │ - bne 59c │ │ │ │ │ - ldr r2, [pc, #224] @ 5c4 │ │ │ │ │ + bne 600 │ │ │ │ │ + ldr r2, [pc, #220] @ 628 │ │ │ │ │ add r2, pc, r2 │ │ │ │ │ - ldr r1, [pc, #220] @ 5c8 │ │ │ │ │ + ldr r1, [pc, #216] @ 62c │ │ │ │ │ mov r0, #80 @ 0x50 │ │ │ │ │ add r1, pc, r1 │ │ │ │ │ bl 0 │ │ │ │ │ R_ARM_CALL fftwf_mkplan_rdft │ │ │ │ │ ldr r3, [r7, #8] │ │ │ │ │ + mov r5, r0 │ │ │ │ │ + add r2, r0, #8 │ │ │ │ │ add r1, r8, #8 │ │ │ │ │ + str r9, [r0, #64] @ 0x40 │ │ │ │ │ + str r8, [r0, #68] @ 0x44 │ │ │ │ │ cmp r3, #0 │ │ │ │ │ ldreq r3, [r6, #164] @ 0xa4 │ │ │ │ │ movne r3, #2 │ │ │ │ │ andeq r3, r3, #4096 @ 0x1000 │ │ │ │ │ str r3, [r0, #76] @ 0x4c │ │ │ │ │ - ldr r3, [sp, #16] │ │ │ │ │ - mov r5, r0 │ │ │ │ │ + ldr r3, [sp, #20] │ │ │ │ │ ldr r3, [r3, #8] │ │ │ │ │ - add r2, r0, #8 │ │ │ │ │ - str r9, [r0, #64] @ 0x40 │ │ │ │ │ - str r8, [r0, #68] @ 0x44 │ │ │ │ │ str r3, [r0, #72] @ 0x48 │ │ │ │ │ add r0, r9, #8 │ │ │ │ │ bl 0 │ │ │ │ │ R_ARM_CALL fftwf_ops_add │ │ │ │ │ mov r0, r5 │ │ │ │ │ - add sp, sp, #52 @ 0x34 │ │ │ │ │ - pop {r4, r5, r6, r7, r8, r9, sl, fp, pc} │ │ │ │ │ + b 1bc │ │ │ │ │ add r3, r8, r3 │ │ │ │ │ - str r3, [sp, #20] │ │ │ │ │ - add r3, r8, #4 │ │ │ │ │ mov r9, r8 │ │ │ │ │ - str r3, [sp, #32] │ │ │ │ │ - str r8, [sp, #28] │ │ │ │ │ - b 23c │ │ │ │ │ + str r3, [sp, #24] │ │ │ │ │ + add r3, r8, #4 │ │ │ │ │ + str r8, [sp, #32] │ │ │ │ │ + str r3, [sp, #36] @ 0x24 │ │ │ │ │ + b 298 │ │ │ │ │ mov r8, #0 │ │ │ │ │ mov r0, r8 │ │ │ │ │ bl 0 │ │ │ │ │ R_ARM_CALL fftwf_plan_destroy_internal │ │ │ │ │ mov r0, r9 │ │ │ │ │ bl 0 │ │ │ │ │ R_ARM_CALL fftwf_plan_destroy_internal │ │ │ │ │ - b 170 │ │ │ │ │ + b 1b8 │ │ │ │ │ add r3, r8, #4 │ │ │ │ │ - str fp, [sp, #28] │ │ │ │ │ mov r9, r8 │ │ │ │ │ + str fp, [sp, #32] │ │ │ │ │ mov fp, r8 │ │ │ │ │ - str r3, [sp, #32] │ │ │ │ │ - b 23c │ │ │ │ │ + str r3, [sp, #36] @ 0x24 │ │ │ │ │ + b 298 │ │ │ │ │ mov r3, #1 │ │ │ │ │ mov sl, #2 │ │ │ │ │ - str r3, [sp, #36] @ 0x24 │ │ │ │ │ - b 39c │ │ │ │ │ - ldr r2, [pc, #40] @ 5cc │ │ │ │ │ + str r3, [sp, #40] @ 0x28 │ │ │ │ │ + b 400 │ │ │ │ │ + ldr r2, [pc, #40] @ 630 │ │ │ │ │ add r2, pc, r2 │ │ │ │ │ - b 4e4 │ │ │ │ │ + b 54c │ │ │ │ │ mov lr, r0 │ │ │ │ │ - b 31c │ │ │ │ │ - ldr r0, [sp, #16] │ │ │ │ │ + b 378 │ │ │ │ │ + ldr r0, [sp, #20] │ │ │ │ │ bl 0 │ │ │ │ │ R_ARM_CALL fftwf_mpi_rdft2_serial_applicable │ │ │ │ │ cmp r0, #0 │ │ │ │ │ - beq 1ec │ │ │ │ │ - b 170 │ │ │ │ │ - .word 0xfffffb18 │ │ │ │ │ - .word 0x000000d4 │ │ │ │ │ + beq 248 │ │ │ │ │ + b 1b8 │ │ │ │ │ + .word 0xfffffab0 │ │ │ │ │ + .word 0x000000d0 │ │ │ │ │ R_ARM_REL32 .data.rel.ro │ │ │ │ │ - .word 0xfffffacc │ │ │ │ │ + .word 0xfffffa7c │ │ │ │ │ │ │ │ │ │ -000005d0 : │ │ │ │ │ +00000634 : │ │ │ │ │ awake(): │ │ │ │ │ - push {r4, r5, r6, lr} │ │ │ │ │ + strd r4, [sp, #-16]! │ │ │ │ │ mov r4, r0 │ │ │ │ │ mov r5, r1 │ │ │ │ │ ldr r0, [r0, #64] @ 0x40 │ │ │ │ │ + str r6, [sp, #8] │ │ │ │ │ + str lr, [sp, #12] │ │ │ │ │ bl 0 │ │ │ │ │ R_ARM_CALL fftwf_plan_awake │ │ │ │ │ - ldr r0, [r4, #68] @ 0x44 │ │ │ │ │ + ldr r6, [sp, #8] │ │ │ │ │ mov r1, r5 │ │ │ │ │ - pop {r4, r5, r6, lr} │ │ │ │ │ + ldr lr, [sp, #12] │ │ │ │ │ + ldr r0, [r4, #68] @ 0x44 │ │ │ │ │ + ldrd r4, [sp] │ │ │ │ │ + add sp, sp, #16 │ │ │ │ │ b 0 │ │ │ │ │ R_ARM_JUMP24 fftwf_plan_awake │ │ │ │ │ │ │ │ │ │ -000005f4 : │ │ │ │ │ +0000066c : │ │ │ │ │ fftwf_mpi_rdft2_rank_geq2_register(): │ │ │ │ │ - push {r4, r5, r6, lr} │ │ │ │ │ - ldr r5, [pc, #72] @ 648 │ │ │ │ │ + strd r4, [sp, #-16]! │ │ │ │ │ mov r4, r0 │ │ │ │ │ + mov r0, #12 │ │ │ │ │ + ldr r5, [pc, #84] @ 6d4 │ │ │ │ │ + str r6, [sp, #8] │ │ │ │ │ + str lr, [sp, #12] │ │ │ │ │ add r5, pc, r5 │ │ │ │ │ mov r1, r5 │ │ │ │ │ - mov r0, #12 │ │ │ │ │ bl 0 │ │ │ │ │ R_ARM_CALL fftwf_mksolver │ │ │ │ │ mov r3, #0 │ │ │ │ │ - str r3, [r0, #8] │ │ │ │ │ mov r1, r0 │ │ │ │ │ + str r3, [r0, #8] │ │ │ │ │ mov r0, r4 │ │ │ │ │ bl 0 │ │ │ │ │ R_ARM_CALL fftwf_solver_register │ │ │ │ │ mov r1, r5 │ │ │ │ │ mov r0, #12 │ │ │ │ │ bl 0 │ │ │ │ │ R_ARM_CALL fftwf_mksolver │ │ │ │ │ mov r3, #1 │ │ │ │ │ + ldr r6, [sp, #8] │ │ │ │ │ mov r1, r0 │ │ │ │ │ + ldr lr, [sp, #12] │ │ │ │ │ str r3, [r0, #8] │ │ │ │ │ mov r0, r4 │ │ │ │ │ - pop {r4, r5, r6, lr} │ │ │ │ │ + ldrd r4, [sp] │ │ │ │ │ + add sp, sp, #16 │ │ │ │ │ b 0 │ │ │ │ │ R_ARM_JUMP24 fftwf_solver_register │ │ │ │ │ - .word 0x00000040 │ │ │ │ │ + .word 0x00000048 │ │ │ │ │ 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: 4380 (bytes into file) │ │ │ │ │ + Start of section headers: 4540 (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 0x111c: │ │ │ │ │ +There are 15 section headers, starting at offset 0x11bc: │ │ │ │ │ │ │ │ │ │ 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 00093c 00 AX 0 0 4 │ │ │ │ │ - [ 2] .rel.text REL 00000000 000f04 000168 08 I 12 1 4 │ │ │ │ │ - [ 3] .data PROGBITS 00000000 000970 000000 00 WA 0 0 1 │ │ │ │ │ - [ 4] .bss NOBITS 00000000 000970 000000 00 WA 0 0 1 │ │ │ │ │ - [ 5] .rodata.str1.4 PROGBITS 00000000 000970 00003d 01 AMS 0 0 4 │ │ │ │ │ - [ 6] .data.rel.ro PROGBITS 00000000 0009ad 000010 00 WA 0 0 4 │ │ │ │ │ - [ 7] .rel.data.rel.ro REL 00000000 00106c 000020 08 I 12 6 4 │ │ │ │ │ - [ 8] .data.rel.ro.local PROGBITS 00000000 0009bd 00000c 00 WA 0 0 4 │ │ │ │ │ - [ 9] .rel.data.rel.ro.local REL 00000000 00108c 000008 08 I 12 8 4 │ │ │ │ │ - [10] .note.GNU-stack PROGBITS 00000000 0009c9 000000 00 0 0 1 │ │ │ │ │ - [11] .ARM.attributes ARM_ATTRIBUTES 00000000 0009c9 00002b 00 0 0 1 │ │ │ │ │ - [12] .symtab SYMTAB 00000000 0009f4 0002e0 10 13 23 4 │ │ │ │ │ - [13] .strtab STRTAB 00000000 000cd4 00022f 00 0 0 1 │ │ │ │ │ - [14] .shstrtab STRTAB 00000000 001094 000087 00 0 0 1 │ │ │ │ │ + [ 1] .text PROGBITS 00000000 000034 0009dc 00 AX 0 0 4 │ │ │ │ │ + [ 2] .rel.text REL 00000000 000fa4 000168 08 I 12 1 4 │ │ │ │ │ + [ 3] .data PROGBITS 00000000 000a10 000000 00 WA 0 0 1 │ │ │ │ │ + [ 4] .bss NOBITS 00000000 000a10 000000 00 WA 0 0 1 │ │ │ │ │ + [ 5] .rodata.str1.4 PROGBITS 00000000 000a10 00003d 01 AMS 0 0 4 │ │ │ │ │ + [ 6] .data.rel.ro PROGBITS 00000000 000a4d 000010 00 WA 0 0 4 │ │ │ │ │ + [ 7] .rel.data.rel.ro REL 00000000 00110c 000020 08 I 12 6 4 │ │ │ │ │ + [ 8] .data.rel.ro.local PROGBITS 00000000 000a5d 00000c 00 WA 0 0 4 │ │ │ │ │ + [ 9] .rel.data.rel.ro.local REL 00000000 00112c 000008 08 I 12 8 4 │ │ │ │ │ + [10] .note.GNU-stack PROGBITS 00000000 000a69 000000 00 0 0 1 │ │ │ │ │ + [11] .ARM.attributes ARM_ATTRIBUTES 00000000 000a69 00002b 00 0 0 1 │ │ │ │ │ + [12] .symtab SYMTAB 00000000 000a94 0002e0 10 13 23 4 │ │ │ │ │ + [13] .strtab STRTAB 00000000 000d74 00022f 00 0 0 1 │ │ │ │ │ + [14] .shstrtab STRTAB 00000000 001134 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: 00000000 0 NOTYPE LOCAL DEFAULT 1 $a │ │ │ │ │ - 2: 00000000 144 FUNC LOCAL DEFAULT 1 apply_r2c │ │ │ │ │ - 3: 00000090 148 FUNC LOCAL DEFAULT 1 apply_c2r │ │ │ │ │ + 2: 00000000 172 FUNC LOCAL DEFAULT 1 apply_r2c │ │ │ │ │ + 3: 000000ac 176 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: 00000124 104 FUNC LOCAL DEFAULT 1 print │ │ │ │ │ - 9: 00000180 0 NOTYPE LOCAL DEFAULT 1 $d │ │ │ │ │ - 10: 0000018c 0 NOTYPE LOCAL DEFAULT 1 $a │ │ │ │ │ - 11: 0000018c 36 FUNC LOCAL DEFAULT 1 destroy │ │ │ │ │ - 12: 000001b0 1796 FUNC LOCAL DEFAULT 1 mkplan │ │ │ │ │ - 13: 000008a8 0 NOTYPE LOCAL DEFAULT 1 $d │ │ │ │ │ - 14: 000008b4 0 NOTYPE LOCAL DEFAULT 1 $a │ │ │ │ │ - 15: 000008b4 48 FUNC LOCAL DEFAULT 1 awake │ │ │ │ │ - 16: 00000938 0 NOTYPE LOCAL DEFAULT 1 $d │ │ │ │ │ + 8: 0000015c 116 FUNC LOCAL DEFAULT 1 print │ │ │ │ │ + 9: 000001c4 0 NOTYPE LOCAL DEFAULT 1 $d │ │ │ │ │ + 10: 000001d0 0 NOTYPE LOCAL DEFAULT 1 $a │ │ │ │ │ + 11: 000001d0 48 FUNC LOCAL DEFAULT 1 destroy │ │ │ │ │ + 12: 00000200 1836 FUNC LOCAL DEFAULT 1 mkplan │ │ │ │ │ + 13: 00000920 0 NOTYPE LOCAL DEFAULT 1 $d │ │ │ │ │ + 14: 0000092c 0 NOTYPE LOCAL DEFAULT 1 $a │ │ │ │ │ + 15: 0000092c 68 FUNC LOCAL DEFAULT 1 awake │ │ │ │ │ + 16: 000009d8 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: 000008e4 88 FUNC GLOBAL DEFAULT 1 fftwf_mpi_rdft2_rank_geq2_transposed_register │ │ │ │ │ + 42: 00000970 108 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,59 +1,59 @@ │ │ │ │ │ │ │ │ │ │ -Relocation section '.rel.text' at offset 0xf04 contains 45 entries: │ │ │ │ │ +Relocation section '.rel.text' at offset 0xfa4 contains 45 entries: │ │ │ │ │ Offset Info Type Sym. Value Symbol's Name │ │ │ │ │ -00000180 00000603 R_ARM_REL32 00000004 .LC1 │ │ │ │ │ -00000184 00000703 R_ARM_REL32 00000008 .LC2 │ │ │ │ │ -00000188 00000503 R_ARM_REL32 00000000 .LC0 │ │ │ │ │ -00000198 0000171c R_ARM_CALL 00000000 fftwf_plan_destroy_internal │ │ │ │ │ -000001a0 0000171c R_ARM_CALL 00000000 fftwf_plan_destroy_internal │ │ │ │ │ -000001ac 0000171d R_ARM_JUMP24 00000000 fftwf_plan_destroy_internal │ │ │ │ │ -00000238 0000181c R_ARM_CALL 00000000 fftwf_mpi_is_local_after │ │ │ │ │ -00000264 0000181c R_ARM_CALL 00000000 fftwf_mpi_is_local_after │ │ │ │ │ -0000027c 0000181c R_ARM_CALL 00000000 fftwf_mpi_is_local_after │ │ │ │ │ -00000290 0000191c R_ARM_CALL 00000000 fftwf_mpi_num_blocks │ │ │ │ │ -00000334 00001a1c R_ARM_CALL 00000000 MPI_Comm_rank │ │ │ │ │ -00000340 00001b1c R_ARM_CALL 00000000 MPI_Comm_size │ │ │ │ │ -00000350 00001c1c R_ARM_CALL 00000000 fftwf_mktensor │ │ │ │ │ -000004d0 00001d1c R_ARM_CALL 00000000 fftwf_mpi_block │ │ │ │ │ -00000510 00001e1c R_ARM_CALL 00000000 fftwf_mktensor_2d │ │ │ │ │ -00000534 00001f1c R_ARM_CALL 00000000 fftwf_mkproblem_rdft2_d │ │ │ │ │ -00000540 0000201c R_ARM_CALL 00000000 fftwf_mkplan_d │ │ │ │ │ -00000554 0000211c R_ARM_CALL 00000000 fftwf_mpi_any_true │ │ │ │ │ -000005e4 0000221c R_ARM_CALL 00000000 fftwf_mpi_mkproblem_transpose │ │ │ │ │ -000005f0 0000201c R_ARM_CALL 00000000 fftwf_mkplan_d │ │ │ │ │ -00000604 0000211c R_ARM_CALL 00000000 fftwf_mpi_any_true │ │ │ │ │ -00000624 00001d1c R_ARM_CALL 00000000 fftwf_mpi_block │ │ │ │ │ -00000644 0000231c R_ARM_CALL 00000000 fftwf_mktensor_1d │ │ │ │ │ -00000668 00001e1c R_ARM_CALL 00000000 fftwf_mktensor_2d │ │ │ │ │ -0000068c 0000241c R_ARM_CALL 00000000 fftwf_mkproblem_dft_d │ │ │ │ │ -00000698 0000201c R_ARM_CALL 00000000 fftwf_mkplan_d │ │ │ │ │ -000006ac 0000211c R_ARM_CALL 00000000 fftwf_mpi_any_true │ │ │ │ │ -000006d8 0000251c R_ARM_CALL 00000000 fftwf_mkplan_rdft │ │ │ │ │ -00000720 0000261c R_ARM_CALL 00000000 fftwf_ops_add │ │ │ │ │ -0000072c 0000271c R_ARM_CALL 00000000 fftwf_ops_add2 │ │ │ │ │ -00000744 0000171c R_ARM_CALL 00000000 fftwf_plan_destroy_internal │ │ │ │ │ -0000074c 0000171c R_ARM_CALL 00000000 fftwf_plan_destroy_internal │ │ │ │ │ -00000754 0000171c R_ARM_CALL 00000000 fftwf_plan_destroy_internal │ │ │ │ │ -0000086c 0000181c R_ARM_CALL 00000000 fftwf_mpi_is_local_after │ │ │ │ │ -00000884 0000191c R_ARM_CALL 00000000 fftwf_mpi_num_blocks │ │ │ │ │ -00000898 0000281c R_ARM_CALL 00000000 fftwf_mpi_rdft2_serial_applicable │ │ │ │ │ -000008ac 00001103 R_ARM_REL32 00000000 .data.rel.ro │ │ │ │ │ -000008c4 0000291c R_ARM_CALL 00000000 fftwf_plan_awake │ │ │ │ │ -000008d0 0000291c R_ARM_CALL 00000000 fftwf_plan_awake │ │ │ │ │ -000008e0 0000291d R_ARM_JUMP24 00000000 fftwf_plan_awake │ │ │ │ │ -000008fc 00002b1c R_ARM_CALL 00000000 fftwf_mksolver │ │ │ │ │ -00000910 00002c1c R_ARM_CALL 00000000 fftwf_solver_register │ │ │ │ │ -0000091c 00002b1c R_ARM_CALL 00000000 fftwf_mksolver │ │ │ │ │ -00000934 00002c1d R_ARM_JUMP24 00000000 fftwf_solver_register │ │ │ │ │ -00000938 00001403 R_ARM_REL32 00000000 .data.rel.ro.local │ │ │ │ │ +000001c4 00000603 R_ARM_REL32 00000004 .LC1 │ │ │ │ │ +000001c8 00000703 R_ARM_REL32 00000008 .LC2 │ │ │ │ │ +000001cc 00000503 R_ARM_REL32 00000000 .LC0 │ │ │ │ │ +000001e0 0000171c R_ARM_CALL 00000000 fftwf_plan_destroy_internal │ │ │ │ │ +000001e8 0000171c R_ARM_CALL 00000000 fftwf_plan_destroy_internal │ │ │ │ │ +000001fc 0000171d R_ARM_JUMP24 00000000 fftwf_plan_destroy_internal │ │ │ │ │ +000002ac 0000181c R_ARM_CALL 00000000 fftwf_mpi_is_local_after │ │ │ │ │ +000002d8 0000181c R_ARM_CALL 00000000 fftwf_mpi_is_local_after │ │ │ │ │ +000002f0 0000181c R_ARM_CALL 00000000 fftwf_mpi_is_local_after │ │ │ │ │ +00000304 0000191c R_ARM_CALL 00000000 fftwf_mpi_num_blocks │ │ │ │ │ +000003a8 00001a1c R_ARM_CALL 00000000 MPI_Comm_rank │ │ │ │ │ +000003b4 00001b1c R_ARM_CALL 00000000 MPI_Comm_size │ │ │ │ │ +000003c4 00001c1c R_ARM_CALL 00000000 fftwf_mktensor │ │ │ │ │ +0000054c 00001d1c R_ARM_CALL 00000000 fftwf_mpi_block │ │ │ │ │ +0000058c 00001e1c R_ARM_CALL 00000000 fftwf_mktensor_2d │ │ │ │ │ +000005b0 00001f1c R_ARM_CALL 00000000 fftwf_mkproblem_rdft2_d │ │ │ │ │ +000005bc 0000201c R_ARM_CALL 00000000 fftwf_mkplan_d │ │ │ │ │ +000005d0 0000211c R_ARM_CALL 00000000 fftwf_mpi_any_true │ │ │ │ │ +00000660 0000221c R_ARM_CALL 00000000 fftwf_mpi_mkproblem_transpose │ │ │ │ │ +0000066c 0000201c R_ARM_CALL 00000000 fftwf_mkplan_d │ │ │ │ │ +00000680 0000211c R_ARM_CALL 00000000 fftwf_mpi_any_true │ │ │ │ │ +000006a0 00001d1c R_ARM_CALL 00000000 fftwf_mpi_block │ │ │ │ │ +000006c0 0000231c R_ARM_CALL 00000000 fftwf_mktensor_1d │ │ │ │ │ +000006e4 00001e1c R_ARM_CALL 00000000 fftwf_mktensor_2d │ │ │ │ │ +00000708 0000241c R_ARM_CALL 00000000 fftwf_mkproblem_dft_d │ │ │ │ │ +00000714 0000201c R_ARM_CALL 00000000 fftwf_mkplan_d │ │ │ │ │ +00000728 0000211c R_ARM_CALL 00000000 fftwf_mpi_any_true │ │ │ │ │ +00000754 0000251c R_ARM_CALL 00000000 fftwf_mkplan_rdft │ │ │ │ │ +0000079c 0000261c R_ARM_CALL 00000000 fftwf_ops_add │ │ │ │ │ +000007a8 0000271c R_ARM_CALL 00000000 fftwf_ops_add2 │ │ │ │ │ +000007bc 0000171c R_ARM_CALL 00000000 fftwf_plan_destroy_internal │ │ │ │ │ +000007c4 0000171c R_ARM_CALL 00000000 fftwf_plan_destroy_internal │ │ │ │ │ +000007cc 0000171c R_ARM_CALL 00000000 fftwf_plan_destroy_internal │ │ │ │ │ +000008e4 0000181c R_ARM_CALL 00000000 fftwf_mpi_is_local_after │ │ │ │ │ +000008fc 0000191c R_ARM_CALL 00000000 fftwf_mpi_num_blocks │ │ │ │ │ +00000910 0000281c R_ARM_CALL 00000000 fftwf_mpi_rdft2_serial_applicable │ │ │ │ │ +00000924 00001103 R_ARM_REL32 00000000 .data.rel.ro │ │ │ │ │ +00000944 0000291c R_ARM_CALL 00000000 fftwf_plan_awake │ │ │ │ │ +00000950 0000291c R_ARM_CALL 00000000 fftwf_plan_awake │ │ │ │ │ +0000096c 0000291d R_ARM_JUMP24 00000000 fftwf_plan_awake │ │ │ │ │ +00000990 00002b1c R_ARM_CALL 00000000 fftwf_mksolver │ │ │ │ │ +000009a4 00002c1c R_ARM_CALL 00000000 fftwf_solver_register │ │ │ │ │ +000009b0 00002b1c R_ARM_CALL 00000000 fftwf_mksolver │ │ │ │ │ +000009d4 00002c1d R_ARM_JUMP24 00000000 fftwf_solver_register │ │ │ │ │ +000009d8 00001403 R_ARM_REL32 00000000 .data.rel.ro.local │ │ │ │ │ │ │ │ │ │ -Relocation section '.rel.data.rel.ro' at offset 0x106c contains 4 entries: │ │ │ │ │ +Relocation section '.rel.data.rel.ro' at offset 0x110c 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 000008b4 awake │ │ │ │ │ -00000008 00000802 R_ARM_ABS32 00000124 print │ │ │ │ │ -0000000c 00000b02 R_ARM_ABS32 0000018c destroy │ │ │ │ │ +00000004 00000f02 R_ARM_ABS32 0000092c awake │ │ │ │ │ +00000008 00000802 R_ARM_ABS32 0000015c print │ │ │ │ │ +0000000c 00000b02 R_ARM_ABS32 000001d0 destroy │ │ │ │ │ │ │ │ │ │ -Relocation section '.rel.data.rel.ro.local' at offset 0x108c contains 1 entry: │ │ │ │ │ +Relocation section '.rel.data.rel.ro.local' at offset 0x112c contains 1 entry: │ │ │ │ │ Offset Info Type Sym. Value Symbol's Name │ │ │ │ │ -00000004 00000c02 R_ARM_ABS32 000001b0 mkplan │ │ │ │ │ +00000004 00000c02 R_ARM_ABS32 00000200 mkplan │ │ │ │ ├── objdump --line-numbers --disassemble --demangle --reloc --no-show-raw-insn --section=.text {} │ │ │ │ │ @@ -1,661 +1,701 @@ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ Disassembly of section .text: │ │ │ │ │ │ │ │ │ │ 00000000 : │ │ │ │ │ apply_r2c(): │ │ │ │ │ - push {r4, r5, r6, r7, r8, lr} │ │ │ │ │ + strd r4, [sp, #-24]! @ 0xffffffe8 │ │ │ │ │ mov r4, r0 │ │ │ │ │ - ldr r3, [r4, #80] @ 0x50 │ │ │ │ │ - ldr r0, [r0, #64] @ 0x40 │ │ │ │ │ mov r5, r2 │ │ │ │ │ + ldr r3, [r4, #80] @ 0x50 │ │ │ │ │ + strd r6, [sp, #8] │ │ │ │ │ add r7, r2, #4 │ │ │ │ │ + ldr r0, [r0, #64] @ 0x40 │ │ │ │ │ + str r8, [sp, #16] │ │ │ │ │ ldr r2, [r4, #76] @ 0x4c │ │ │ │ │ cmp r3, #0 │ │ │ │ │ - ldr r8, [r0, #56] @ 0x38 │ │ │ │ │ + str lr, [sp, #20] │ │ │ │ │ sub sp, sp, #8 │ │ │ │ │ + ldr r8, [r0, #56] @ 0x38 │ │ │ │ │ add r2, r1, r2, lsl #2 │ │ │ │ │ - beq 78 │ │ │ │ │ + beq 94 │ │ │ │ │ mov r3, r5 │ │ │ │ │ + mov r6, r5 │ │ │ │ │ str r7, [sp] │ │ │ │ │ blx r8 │ │ │ │ │ - mov r6, r5 │ │ │ │ │ ldr r0, [r4, #68] @ 0x44 │ │ │ │ │ mov r2, r5 │ │ │ │ │ - ldr r3, [r0, #56] @ 0x38 │ │ │ │ │ mov r1, r6 │ │ │ │ │ + ldr r3, [r0, #56] @ 0x38 │ │ │ │ │ blx r3 │ │ │ │ │ ldr r0, [r4, #72] @ 0x48 │ │ │ │ │ mov r3, r5 │ │ │ │ │ - str r7, [sp] │ │ │ │ │ mov r2, r7 │ │ │ │ │ - ldr r4, [r0, #56] @ 0x38 │ │ │ │ │ + str r7, [sp] │ │ │ │ │ mov r1, r5 │ │ │ │ │ + ldr r4, [r0, #56] @ 0x38 │ │ │ │ │ blx r4 │ │ │ │ │ add sp, sp, #8 │ │ │ │ │ - pop {r4, r5, r6, r7, r8, pc} │ │ │ │ │ + ldrd r4, [sp] │ │ │ │ │ + ldrd r6, [sp, #8] │ │ │ │ │ + ldr r8, [sp, #16] │ │ │ │ │ + add sp, sp, #20 │ │ │ │ │ + pop {pc} @ (ldr pc, [sp], #4) │ │ │ │ │ add r3, r1, #4 │ │ │ │ │ + mov r6, r1 │ │ │ │ │ str r3, [sp] │ │ │ │ │ mov r3, r1 │ │ │ │ │ - mov r6, r1 │ │ │ │ │ blx r8 │ │ │ │ │ - b 40 │ │ │ │ │ + b 4c │ │ │ │ │ │ │ │ │ │ -00000090 : │ │ │ │ │ +000000ac : │ │ │ │ │ apply_c2r(): │ │ │ │ │ - push {r4, r5, r6, r7, r8, lr} │ │ │ │ │ + strd r4, [sp, #-24]! @ 0xffffffe8 │ │ │ │ │ mov r4, r0 │ │ │ │ │ + mov r5, r2 │ │ │ │ │ ldr r3, [r4, #80] @ 0x50 │ │ │ │ │ - ldr r0, [r0, #72] @ 0x48 │ │ │ │ │ - cmp r3, #0 │ │ │ │ │ + strd r6, [sp, #8] │ │ │ │ │ mov r6, r1 │ │ │ │ │ - ldr r8, [r0, #56] @ 0x38 │ │ │ │ │ - sub sp, sp, #8 │ │ │ │ │ - mov r5, r2 │ │ │ │ │ add r7, r2, #4 │ │ │ │ │ + ldr r0, [r0, #72] @ 0x48 │ │ │ │ │ add r1, r1, #4 │ │ │ │ │ - beq 110 │ │ │ │ │ - str r2, [sp] │ │ │ │ │ + str r8, [sp, #16] │ │ │ │ │ + str lr, [sp, #20] │ │ │ │ │ + sub sp, sp, #8 │ │ │ │ │ + cmp r3, #0 │ │ │ │ │ + ldr r8, [r0, #56] @ 0x38 │ │ │ │ │ + beq 148 │ │ │ │ │ mov r3, r7 │ │ │ │ │ + str r2, [sp] │ │ │ │ │ mov r2, r6 │ │ │ │ │ - blx r8 │ │ │ │ │ mov r6, r5 │ │ │ │ │ + blx r8 │ │ │ │ │ ldr r0, [r4, #68] @ 0x44 │ │ │ │ │ mov r2, r5 │ │ │ │ │ - ldr r3, [r0, #56] @ 0x38 │ │ │ │ │ mov r1, r6 │ │ │ │ │ + ldr r3, [r0, #56] @ 0x38 │ │ │ │ │ blx r3 │ │ │ │ │ ldr r0, [r4, #64] @ 0x40 │ │ │ │ │ - ldr r2, [r4, #76] @ 0x4c │ │ │ │ │ mov r3, r5 │ │ │ │ │ + mov r1, r5 │ │ │ │ │ + ldr r2, [r4, #76] @ 0x4c │ │ │ │ │ str r7, [sp] │ │ │ │ │ - add r2, r5, r2, lsl #2 │ │ │ │ │ ldr r4, [r0, #56] @ 0x38 │ │ │ │ │ - mov r1, r5 │ │ │ │ │ + add r2, r5, r2, lsl #2 │ │ │ │ │ blx r4 │ │ │ │ │ add sp, sp, #8 │ │ │ │ │ - pop {r4, r5, r6, r7, r8, pc} │ │ │ │ │ + ldrd r4, [sp] │ │ │ │ │ + ldrd r6, [sp, #8] │ │ │ │ │ + ldr r8, [sp, #16] │ │ │ │ │ + add sp, sp, #20 │ │ │ │ │ + pop {pc} @ (ldr pc, [sp], #4) │ │ │ │ │ mov r3, r1 │ │ │ │ │ mov r2, r6 │ │ │ │ │ str r6, [sp] │ │ │ │ │ blx r8 │ │ │ │ │ - b d4 │ │ │ │ │ + b fc │ │ │ │ │ │ │ │ │ │ -00000124 : │ │ │ │ │ +0000015c : │ │ │ │ │ print(): │ │ │ │ │ mov r3, r0 │ │ │ │ │ + mov r0, r1 │ │ │ │ │ + str r4, [sp, #-8]! │ │ │ │ │ ldr r2, [r3, #80] @ 0x50 │ │ │ │ │ - push {r4, lr} │ │ │ │ │ - cmp r2, #2 │ │ │ │ │ - ldr r4, [r1] │ │ │ │ │ + str lr, [sp, #4] │ │ │ │ │ sub sp, sp, #8 │ │ │ │ │ - mov r0, r1 │ │ │ │ │ - beq 174 │ │ │ │ │ - ldr r2, [pc, #52] @ 180 │ │ │ │ │ + ldr r4, [r1] │ │ │ │ │ + cmp r2, #2 │ │ │ │ │ + beq 1b8 │ │ │ │ │ + ldr r2, [pc, #60] @ 1c4 │ │ │ │ │ add r2, pc, r2 │ │ │ │ │ ldr r1, [r3, #72] @ 0x48 │ │ │ │ │ str r1, [sp, #4] │ │ │ │ │ ldr r1, [r3, #68] @ 0x44 │ │ │ │ │ str r1, [sp] │ │ │ │ │ - ldr r1, [pc, #32] @ 184 │ │ │ │ │ + ldr r1, [pc, #40] @ 1c8 │ │ │ │ │ ldr r3, [r3, #64] @ 0x40 │ │ │ │ │ add r1, pc, r1 │ │ │ │ │ blx r4 │ │ │ │ │ add sp, sp, #8 │ │ │ │ │ - pop {r4, pc} │ │ │ │ │ - ldr r2, [pc, #12] @ 188 │ │ │ │ │ + ldr r4, [sp] │ │ │ │ │ + add sp, sp, #4 │ │ │ │ │ + pop {pc} @ (ldr pc, [sp], #4) │ │ │ │ │ + ldr r2, [pc, #12] @ 1cc │ │ │ │ │ add r2, pc, r2 │ │ │ │ │ - b 14c │ │ │ │ │ - .word 0x00000030 │ │ │ │ │ + b 188 │ │ │ │ │ + .word 0x00000038 │ │ │ │ │ R_ARM_REL32 .LC1 │ │ │ │ │ - .word 0x00000018 │ │ │ │ │ + .word 0x00000020 │ │ │ │ │ R_ARM_REL32 .LC2 │ │ │ │ │ .word 0x00000008 │ │ │ │ │ R_ARM_REL32 .LC0 │ │ │ │ │ │ │ │ │ │ -0000018c : │ │ │ │ │ +000001d0 : │ │ │ │ │ destroy(): │ │ │ │ │ - push {r4, lr} │ │ │ │ │ + str r4, [sp, #-8]! │ │ │ │ │ mov r4, r0 │ │ │ │ │ ldr r0, [r0, #72] @ 0x48 │ │ │ │ │ + str lr, [sp, #4] │ │ │ │ │ bl 0 │ │ │ │ │ R_ARM_CALL fftwf_plan_destroy_internal │ │ │ │ │ ldr r0, [r4, #68] @ 0x44 │ │ │ │ │ bl 0 │ │ │ │ │ R_ARM_CALL fftwf_plan_destroy_internal │ │ │ │ │ + ldr lr, [sp, #4] │ │ │ │ │ ldr r0, [r4, #64] @ 0x40 │ │ │ │ │ - pop {r4, lr} │ │ │ │ │ + ldr r4, [sp] │ │ │ │ │ + add sp, sp, #8 │ │ │ │ │ b 0 │ │ │ │ │ R_ARM_JUMP24 fftwf_plan_destroy_internal │ │ │ │ │ │ │ │ │ │ -000001b0 : │ │ │ │ │ +00000200 : │ │ │ │ │ mkplan(): │ │ │ │ │ - push {r4, r5, r6, r7, r8, r9, sl, fp, lr} │ │ │ │ │ + strd r4, [sp, #-36]! @ 0xffffffdc │ │ │ │ │ mov r4, r1 │ │ │ │ │ ldr r1, [r1, #4] │ │ │ │ │ + strd r6, [sp, #8] │ │ │ │ │ + strd r8, [sp, #16] │ │ │ │ │ + strd sl, [sp, #24] │ │ │ │ │ + str lr, [sp, #32] │ │ │ │ │ sub sp, sp, #84 @ 0x54 │ │ │ │ │ ldr r3, [r1] │ │ │ │ │ str r0, [sp, #28] │ │ │ │ │ cmp r3, #1 │ │ │ │ │ - ble 1f4 │ │ │ │ │ + ble 254 │ │ │ │ │ ldr r3, [r0, #8] │ │ │ │ │ mov fp, r2 │ │ │ │ │ cmp r3, #0 │ │ │ │ │ - bne 200 │ │ │ │ │ + bne 274 │ │ │ │ │ ldr r3, [r4, #24] │ │ │ │ │ cmp r3, #8 │ │ │ │ │ - beq 228 │ │ │ │ │ + beq 29c │ │ │ │ │ cmp r3, #4 │ │ │ │ │ - beq 24c │ │ │ │ │ + beq 2c0 │ │ │ │ │ mov r0, #0 │ │ │ │ │ add sp, sp, #84 @ 0x54 │ │ │ │ │ - pop {r4, r5, r6, r7, r8, r9, sl, fp, pc} │ │ │ │ │ + ldrd r4, [sp] │ │ │ │ │ + ldrd r6, [sp, #8] │ │ │ │ │ + ldrd r8, [sp, #16] │ │ │ │ │ + ldrd sl, [sp, #24] │ │ │ │ │ + add sp, sp, #32 │ │ │ │ │ + pop {pc} @ (ldr pc, [sp], #4) │ │ │ │ │ ldr r3, [r2, #164] @ 0xa4 │ │ │ │ │ tst r3, #4096 @ 0x1000 │ │ │ │ │ - bne 1f4 │ │ │ │ │ + bne 254 │ │ │ │ │ ldr r2, [r4, #12] │ │ │ │ │ ldr r3, [r4, #16] │ │ │ │ │ cmp r2, r3 │ │ │ │ │ - beq 1f4 │ │ │ │ │ + beq 254 │ │ │ │ │ ldr r3, [r4, #24] │ │ │ │ │ cmp r3, #8 │ │ │ │ │ - bne 1ec │ │ │ │ │ + bne 24c │ │ │ │ │ ldr r2, [r4, #20] │ │ │ │ │ cmp r2, #0 │ │ │ │ │ - bne 1f4 │ │ │ │ │ + bne 254 │ │ │ │ │ mov r0, #1 │ │ │ │ │ bl 0 │ │ │ │ │ R_ARM_CALL fftwf_mpi_is_local_after │ │ │ │ │ cmp r0, #0 │ │ │ │ │ - bne 860 │ │ │ │ │ + bne 8d8 │ │ │ │ │ ldr r3, [r4, #24] │ │ │ │ │ - b 1ec │ │ │ │ │ + b 24c │ │ │ │ │ ldr r3, [r4, #20] │ │ │ │ │ cmp r3, #4 │ │ │ │ │ - bne 1f4 │ │ │ │ │ + bne 254 │ │ │ │ │ mov r2, #1 │ │ │ │ │ ldr r1, [r4, #4] │ │ │ │ │ mov r0, r2 │ │ │ │ │ bl 0 │ │ │ │ │ R_ARM_CALL fftwf_mpi_is_local_after │ │ │ │ │ cmp r0, #0 │ │ │ │ │ - beq 1f4 │ │ │ │ │ + beq 254 │ │ │ │ │ ldr r1, [r4, #4] │ │ │ │ │ mov r2, #0 │ │ │ │ │ mov r0, #2 │ │ │ │ │ bl 0 │ │ │ │ │ R_ARM_CALL fftwf_mpi_is_local_after │ │ │ │ │ cmp r0, #0 │ │ │ │ │ - beq 1f4 │ │ │ │ │ + beq 254 │ │ │ │ │ ldr r3, [r4, #4] │ │ │ │ │ ldmib r3, {r0, r1} │ │ │ │ │ bl 0 │ │ │ │ │ R_ARM_CALL fftwf_mpi_num_blocks │ │ │ │ │ cmp r0, #1 │ │ │ │ │ - bne 1f4 │ │ │ │ │ + bne 254 │ │ │ │ │ ldr r3, [fp, #164] @ 0xa4 │ │ │ │ │ tst r3, #8 │ │ │ │ │ - bne 894 │ │ │ │ │ + bne 90c │ │ │ │ │ + ldr r2, [r4, #8] │ │ │ │ │ ldr r3, [r4, #12] │ │ │ │ │ - str r3, [sp, #24] │ │ │ │ │ - ldr r3, [r4, #20] │ │ │ │ │ ldr r6, [r4, #16] │ │ │ │ │ - ldr r2, [r4, #8] │ │ │ │ │ - ldr r1, [sp, #28] │ │ │ │ │ - cmp r3, #0 │ │ │ │ │ - ldr r1, [r1, #8] │ │ │ │ │ lsl r2, r2, #2 │ │ │ │ │ + ldr r1, [sp, #28] │ │ │ │ │ + str r3, [sp, #24] │ │ │ │ │ + ldr r3, [r4, #20] │ │ │ │ │ add r9, r6, #4 │ │ │ │ │ + ldr r1, [r1, #8] │ │ │ │ │ + cmp r3, #0 │ │ │ │ │ str r3, [sp, #32] │ │ │ │ │ - bne 75c │ │ │ │ │ + bne 7d4 │ │ │ │ │ ldr r3, [sp, #24] │ │ │ │ │ cmp r1, #0 │ │ │ │ │ add r2, r3, r2 │ │ │ │ │ str r2, [sp, #36] @ 0x24 │ │ │ │ │ - bne 300 │ │ │ │ │ + bne 374 │ │ │ │ │ ldr r2, [fp, #164] @ 0xa4 │ │ │ │ │ tst r2, #4096 @ 0x1000 │ │ │ │ │ addeq r2, r3, #4 │ │ │ │ │ moveq sl, r3 │ │ │ │ │ - beq 308 │ │ │ │ │ + beq 37c │ │ │ │ │ mov r2, r9 │ │ │ │ │ mov sl, r6 │ │ │ │ │ - str r9, [sp, #68] @ 0x44 │ │ │ │ │ - str r3, [sp, #48] @ 0x30 │ │ │ │ │ str r9, [sp, #24] │ │ │ │ │ + str r3, [sp, #48] @ 0x30 │ │ │ │ │ mov r3, #1 │ │ │ │ │ - mov r9, r2 │ │ │ │ │ str sl, [sp, #52] @ 0x34 │ │ │ │ │ - str r6, [sp, #64] @ 0x40 │ │ │ │ │ - str r6, [sp, #60] @ 0x3c │ │ │ │ │ + str r9, [sp, #68] @ 0x44 │ │ │ │ │ + mov r9, r2 │ │ │ │ │ str r3, [sp, #56] @ 0x38 │ │ │ │ │ - add r1, sp, #72 @ 0x48 │ │ │ │ │ + str r6, [sp, #60] @ 0x3c │ │ │ │ │ + str r6, [sp, #64] @ 0x40 │ │ │ │ │ ldr r0, [r4, #28] │ │ │ │ │ + add r1, sp, #72 @ 0x48 │ │ │ │ │ bl 0 │ │ │ │ │ R_ARM_CALL MPI_Comm_rank │ │ │ │ │ - add r1, sp, #76 @ 0x4c │ │ │ │ │ ldr r0, [r4, #28] │ │ │ │ │ + add r1, sp, #76 @ 0x4c │ │ │ │ │ bl 0 │ │ │ │ │ R_ARM_CALL MPI_Comm_size │ │ │ │ │ ldr r2, [r4, #4] │ │ │ │ │ ldr r0, [r2] │ │ │ │ │ sub r0, r0, #1 │ │ │ │ │ bl 0 │ │ │ │ │ R_ARM_CALL fftwf_mktensor │ │ │ │ │ - ldr lr, [r4, #8] │ │ │ │ │ - lsl lr, lr, #1 │ │ │ │ │ mov r7, r0 │ │ │ │ │ ldr r0, [r4, #4] │ │ │ │ │ + ldr lr, [r4, #8] │ │ │ │ │ ldr r8, [r0] │ │ │ │ │ + lsl lr, lr, #1 │ │ │ │ │ add r1, r8, r8, lsl #1 │ │ │ │ │ + add ip, r8, r8, lsl #1 │ │ │ │ │ add r1, r0, r1, lsl #2 │ │ │ │ │ + lsl ip, ip, #2 │ │ │ │ │ ldr r1, [r1, #-8] │ │ │ │ │ - add r2, r8, r8, lsl #1 │ │ │ │ │ + add r2, r7, ip │ │ │ │ │ add r1, r1, r1, lsr #31 │ │ │ │ │ asr r1, r1, #1 │ │ │ │ │ add r1, r1, #1 │ │ │ │ │ - lsl ip, r2, #2 │ │ │ │ │ - add r2, r7, r2, lsl #2 │ │ │ │ │ str r1, [r2, #-20] @ 0xffffffec │ │ │ │ │ add r1, r8, r8, lsl #1 │ │ │ │ │ add r1, r7, r1, lsl #2 │ │ │ │ │ str lr, [r1, #-12] │ │ │ │ │ str lr, [r2, #-16] │ │ │ │ │ subs lr, r8, #3 │ │ │ │ │ - bmi 458 │ │ │ │ │ + bmi 4d0 │ │ │ │ │ cmp r8, #4 │ │ │ │ │ sub r1, ip, #16 │ │ │ │ │ sub r5, ip, #20 │ │ │ │ │ - ble 858 │ │ │ │ │ - sub r8, r8, #5 │ │ │ │ │ + ble 8d0 │ │ │ │ │ ldr r1, [r7, r1] │ │ │ │ │ - ldr r5, [r7, r5] │ │ │ │ │ + sub r8, r8, #5 │ │ │ │ │ add ip, r0, ip │ │ │ │ │ and r8, r8, #1 │ │ │ │ │ + ldr r5, [r7, r5] │ │ │ │ │ mul r1, r5, r1 │ │ │ │ │ - ldr r3, [ip, #-20] @ 0xffffffec │ │ │ │ │ - str r1, [r2, #-24] @ 0xffffffe8 │ │ │ │ │ - str r1, [r2, #-28] @ 0xffffffe4 │ │ │ │ │ - mul r1, r3, r1 │ │ │ │ │ sub lr, lr, #2 │ │ │ │ │ - str r3, [r2, #-32] @ 0xffffffe0 │ │ │ │ │ - cmp lr, r8 │ │ │ │ │ - ldr r5, [ip, #-32] @ 0xffffffe0 │ │ │ │ │ - str r5, [r2, #-44] @ 0xffffffd4 │ │ │ │ │ - str r1, [r2, #-36] @ 0xffffffdc │ │ │ │ │ - str r1, [r2, #-40] @ 0xffffffd8 │ │ │ │ │ sub ip, ip, #24 │ │ │ │ │ + ldr r3, [ip, #4] │ │ │ │ │ + cmp lr, r8 │ │ │ │ │ sub r2, r2, #24 │ │ │ │ │ - bne 3cc │ │ │ │ │ + str r3, [r2, #-8] │ │ │ │ │ + str r1, [r2, #-4] │ │ │ │ │ + str r1, [r2] │ │ │ │ │ + mul r1, r3, r1 │ │ │ │ │ + ldr r5, [ip, #-8] │ │ │ │ │ + str r5, [r2, #-20] @ 0xffffffec │ │ │ │ │ + str r1, [r2, #-16] │ │ │ │ │ + str r1, [r2, #-12] │ │ │ │ │ + bne 440 │ │ │ │ │ add r2, r8, r8, lsl #1 │ │ │ │ │ - add lr, r0, r2, lsl #2 │ │ │ │ │ - add r2, r7, r2, lsl #2 │ │ │ │ │ - ldr r5, [r2, #20] │ │ │ │ │ + cmp r8, #0 │ │ │ │ │ + lsl r2, r2, #2 │ │ │ │ │ + add lr, r0, r2 │ │ │ │ │ + add r2, r7, r2 │ │ │ │ │ ldr r1, [r2, #16] │ │ │ │ │ + ldr r5, [r2, #20] │ │ │ │ │ ldr ip, [lr, #16] │ │ │ │ │ mul r1, r5, r1 │ │ │ │ │ - cmp r8, #0 │ │ │ │ │ sub r5, r8, #1 │ │ │ │ │ str ip, [r2, #4] │ │ │ │ │ - str r1, [r2, #12] │ │ │ │ │ str r1, [r2, #8] │ │ │ │ │ - beq 458 │ │ │ │ │ - mul r1, ip, r1 │ │ │ │ │ - add r5, r5, r5, lsl #1 │ │ │ │ │ + str r1, [r2, #12] │ │ │ │ │ + beq 4d0 │ │ │ │ │ ldr lr, [lr, #4] │ │ │ │ │ + add r5, r5, r5, lsl #1 │ │ │ │ │ + mul r1, ip, r1 │ │ │ │ │ add r5, r7, r5, lsl #2 │ │ │ │ │ str lr, [r2, #-8] │ │ │ │ │ str r1, [r5, #12] │ │ │ │ │ str r1, [r2, #-4] │ │ │ │ │ ldr ip, [r7] │ │ │ │ │ cmp ip, #1 │ │ │ │ │ - ble 850 │ │ │ │ │ + ble 8c8 │ │ │ │ │ add ip, ip, ip, lsl #1 │ │ │ │ │ - sub ip, ip, #3 │ │ │ │ │ mov r2, #0 │ │ │ │ │ mov r5, #1 │ │ │ │ │ add lr, r7, #16 │ │ │ │ │ + sub ip, ip, #3 │ │ │ │ │ ldr r3, [lr, r2, lsl #2] │ │ │ │ │ add r2, r2, #3 │ │ │ │ │ cmp ip, r2 │ │ │ │ │ mul r5, r3, r5 │ │ │ │ │ - bne 478 │ │ │ │ │ + bne 4f0 │ │ │ │ │ ldr r2, [r4, #20] │ │ │ │ │ cmp r2, #4 │ │ │ │ │ - beq 7d4 │ │ │ │ │ + beq 84c │ │ │ │ │ mov r8, #1 │ │ │ │ │ cmp r2, #0 │ │ │ │ │ strne r8, [sp, #44] @ 0x2c │ │ │ │ │ - moveq r3, #2 │ │ │ │ │ - streq r3, [sp, #44] @ 0x2c │ │ │ │ │ + bne 528 │ │ │ │ │ + mov r3, #2 │ │ │ │ │ + str r3, [sp, #44] @ 0x2c │ │ │ │ │ ldr r3, [r7, #4] │ │ │ │ │ ldr r2, [r7, #8] │ │ │ │ │ mul r1, r2, r3 │ │ │ │ │ ldr r3, [sp, #32] │ │ │ │ │ ldr r2, [sp, #72] @ 0x48 │ │ │ │ │ - add r3, r0, r3, lsl #2 │ │ │ │ │ str r1, [sp, #40] @ 0x28 │ │ │ │ │ + add r3, r0, r3, lsl #2 │ │ │ │ │ ldr r0, [r0, #4] │ │ │ │ │ ldr r1, [r3, #8] │ │ │ │ │ bl 0 │ │ │ │ │ R_ARM_CALL fftwf_mpi_block │ │ │ │ │ ldr r1, [r4, #4] │ │ │ │ │ ldr r3, [r1] │ │ │ │ │ sub r2, r3, #2 │ │ │ │ │ add r3, r3, r3, lsl #1 │ │ │ │ │ - add r1, r1, r3, lsl #2 │ │ │ │ │ add r2, r2, r2, lsl #1 │ │ │ │ │ - ldr r3, [r1, #-8] │ │ │ │ │ + add r1, r1, r3, lsl #2 │ │ │ │ │ add r2, r7, r2, lsl #2 │ │ │ │ │ + ldr r3, [r1, #-8] │ │ │ │ │ str r3, [r2, #4] │ │ │ │ │ ldr r2, [sp, #40] @ 0x28 │ │ │ │ │ + str r8, [sp] │ │ │ │ │ ldr r3, [sp, #44] @ 0x2c │ │ │ │ │ mov r1, r2 │ │ │ │ │ str r3, [sp, #4] │ │ │ │ │ - str r8, [sp] │ │ │ │ │ ldr r3, [r4, #8] │ │ │ │ │ bl 0 │ │ │ │ │ R_ARM_CALL fftwf_mktensor_2d │ │ │ │ │ ldr r3, [r4, #20] │ │ │ │ │ + mov r1, r0 │ │ │ │ │ + mov r0, r7 │ │ │ │ │ + str sl, [sp] │ │ │ │ │ ldr r2, [sp, #48] @ 0x30 │ │ │ │ │ + str r9, [sp, #4] │ │ │ │ │ str r3, [sp, #8] │ │ │ │ │ - str sl, [sp] │ │ │ │ │ ldr r3, [sp, #36] @ 0x24 │ │ │ │ │ - str r9, [sp, #4] │ │ │ │ │ - mov r1, r0 │ │ │ │ │ - mov r0, r7 │ │ │ │ │ bl 0 │ │ │ │ │ R_ARM_CALL fftwf_mkproblem_rdft2_d │ │ │ │ │ mov r1, r0 │ │ │ │ │ mov r0, fp │ │ │ │ │ bl 0 │ │ │ │ │ R_ARM_CALL fftwf_mkplan_d │ │ │ │ │ - ldr r1, [r4, #28] │ │ │ │ │ mov sl, r0 │ │ │ │ │ clz r0, r0 │ │ │ │ │ + ldr r1, [r4, #28] │ │ │ │ │ lsr r0, r0, #5 │ │ │ │ │ bl 0 │ │ │ │ │ R_ARM_CALL fftwf_mpi_any_true │ │ │ │ │ cmp r0, #0 │ │ │ │ │ - bne 818 │ │ │ │ │ + bne 890 │ │ │ │ │ ldr r3, [r4, #8] │ │ │ │ │ ldr r2, [sp, #56] @ 0x38 │ │ │ │ │ mul r5, r3, r5 │ │ │ │ │ ldr r3, [r4, #4] │ │ │ │ │ add r2, r3, r2, lsl #2 │ │ │ │ │ + ldr r8, [r3, #16] │ │ │ │ │ ldr r9, [r2, #20] │ │ │ │ │ ldr r2, [r3] │ │ │ │ │ - ldr r8, [r3, #16] │ │ │ │ │ cmp r2, #2 │ │ │ │ │ - bne 5a4 │ │ │ │ │ + bne 620 │ │ │ │ │ add r2, r8, r8, lsr #31 │ │ │ │ │ - asr r2, r2, #1 │ │ │ │ │ cmp r8, r9 │ │ │ │ │ + asr r2, r2, #1 │ │ │ │ │ add r2, r2, #1 │ │ │ │ │ moveq r9, r2 │ │ │ │ │ - moveq r8, r9 │ │ │ │ │ movne r8, r2 │ │ │ │ │ + moveq r8, r9 │ │ │ │ │ ldr r2, [r4, #20] │ │ │ │ │ lsl ip, r5, #1 │ │ │ │ │ - cmp r2, #0 │ │ │ │ │ ldr r0, [r3, #4] │ │ │ │ │ - ldr r1, [r4, #28] │ │ │ │ │ str ip, [sp, #32] │ │ │ │ │ - bne 7a8 │ │ │ │ │ - str r2, [sp, #16] │ │ │ │ │ - str r1, [sp, #12] │ │ │ │ │ + ldr r1, [r4, #28] │ │ │ │ │ + cmp r2, #0 │ │ │ │ │ + bne 820 │ │ │ │ │ str r9, [sp, #8] │ │ │ │ │ + str r1, [sp, #12] │ │ │ │ │ + mov r1, r8 │ │ │ │ │ + str r2, [sp, #16] │ │ │ │ │ + mov r2, ip │ │ │ │ │ ldr r3, [r3, #8] │ │ │ │ │ + str r6, [sp] │ │ │ │ │ str r3, [sp, #4] │ │ │ │ │ ldr r3, [sp, #52] @ 0x34 │ │ │ │ │ - mov r2, ip │ │ │ │ │ - mov r1, r8 │ │ │ │ │ - str r6, [sp] │ │ │ │ │ bl 0 │ │ │ │ │ R_ARM_CALL fftwf_mpi_mkproblem_transpose │ │ │ │ │ mov r1, r0 │ │ │ │ │ mov r0, fp │ │ │ │ │ bl 0 │ │ │ │ │ R_ARM_CALL fftwf_mkplan_d │ │ │ │ │ - ldr r1, [r4, #28] │ │ │ │ │ mov r6, r0 │ │ │ │ │ clz r0, r0 │ │ │ │ │ + ldr r1, [r4, #28] │ │ │ │ │ lsr r0, r0, #5 │ │ │ │ │ bl 0 │ │ │ │ │ R_ARM_CALL fftwf_mpi_any_true │ │ │ │ │ cmp r0, #0 │ │ │ │ │ - bne 73c │ │ │ │ │ + bne 7b4 │ │ │ │ │ ldr r3, [r4, #4] │ │ │ │ │ mov r1, r9 │ │ │ │ │ - ldr r2, [sp, #72] @ 0x48 │ │ │ │ │ mov r0, r8 │ │ │ │ │ + ldr r2, [sp, #72] @ 0x48 │ │ │ │ │ ldr r7, [r3, #4] │ │ │ │ │ bl 0 │ │ │ │ │ R_ARM_CALL fftwf_mpi_block │ │ │ │ │ ldr r3, [r4, #4] │ │ │ │ │ + mov r8, r0 │ │ │ │ │ ldr r2, [sp, #32] │ │ │ │ │ mul r7, r5, r7 │ │ │ │ │ - mov r1, r2 │ │ │ │ │ - lsl r7, r7, #1 │ │ │ │ │ - mov r8, r0 │ │ │ │ │ ldr r0, [r3, #4] │ │ │ │ │ + lsl r7, r7, #1 │ │ │ │ │ + mov r1, r2 │ │ │ │ │ bl 0 │ │ │ │ │ R_ARM_CALL fftwf_mktensor_1d │ │ │ │ │ mov r3, #2 │ │ │ │ │ mov r2, r7 │ │ │ │ │ mov r1, r7 │ │ │ │ │ - str r3, [sp, #4] │ │ │ │ │ - str r3, [sp] │ │ │ │ │ - mov r3, r5 │ │ │ │ │ mov r9, r0 │ │ │ │ │ mov r0, r8 │ │ │ │ │ + str r3, [sp] │ │ │ │ │ + str r3, [sp, #4] │ │ │ │ │ + mov r3, r5 │ │ │ │ │ bl 0 │ │ │ │ │ R_ARM_CALL fftwf_mktensor_2d │ │ │ │ │ + ldr r2, [sp, #60] @ 0x3c │ │ │ │ │ + mov r1, r0 │ │ │ │ │ + mov r0, r9 │ │ │ │ │ ldr r3, [sp, #68] @ 0x44 │ │ │ │ │ str r3, [sp, #4] │ │ │ │ │ ldr r3, [sp, #64] @ 0x40 │ │ │ │ │ - ldr r2, [sp, #60] @ 0x3c │ │ │ │ │ str r3, [sp] │ │ │ │ │ ldr r3, [sp, #24] │ │ │ │ │ - mov r1, r0 │ │ │ │ │ - mov r0, r9 │ │ │ │ │ bl 0 │ │ │ │ │ R_ARM_CALL fftwf_mkproblem_dft_d │ │ │ │ │ mov r1, r0 │ │ │ │ │ mov r0, fp │ │ │ │ │ bl 0 │ │ │ │ │ R_ARM_CALL fftwf_mkplan_d │ │ │ │ │ - ldr r1, [r4, #28] │ │ │ │ │ mov r7, r0 │ │ │ │ │ clz r0, r0 │ │ │ │ │ + ldr r1, [r4, #28] │ │ │ │ │ lsr r0, r0, #5 │ │ │ │ │ bl 0 │ │ │ │ │ R_ARM_CALL fftwf_mpi_any_true │ │ │ │ │ cmp r0, #0 │ │ │ │ │ - bne 740 │ │ │ │ │ + bne 7b8 │ │ │ │ │ ldr r3, [r4, #20] │ │ │ │ │ cmp r3, #0 │ │ │ │ │ - bne 80c │ │ │ │ │ - ldr r2, [pc, #476] @ 8a8 │ │ │ │ │ + bne 884 │ │ │ │ │ + ldr r2, [pc, #472] @ 920 │ │ │ │ │ add r2, pc, r2 │ │ │ │ │ - ldr r1, [pc, #472] @ 8ac │ │ │ │ │ + ldr r1, [pc, #468] @ 924 │ │ │ │ │ mov r0, #88 @ 0x58 │ │ │ │ │ add r1, pc, r1 │ │ │ │ │ bl 0 │ │ │ │ │ R_ARM_CALL fftwf_mkplan_rdft │ │ │ │ │ ldr r3, [sp, #28] │ │ │ │ │ + mov r5, r0 │ │ │ │ │ add r1, r7, #8 │ │ │ │ │ + str sl, [r0, #64] @ 0x40 │ │ │ │ │ + str r6, [r0, #68] @ 0x44 │ │ │ │ │ + str r7, [r0, #72] @ 0x48 │ │ │ │ │ ldr r3, [r3, #8] │ │ │ │ │ cmp r3, #0 │ │ │ │ │ ldreq r3, [fp, #164] @ 0xa4 │ │ │ │ │ movne r3, #2 │ │ │ │ │ andeq r3, r3, #4096 @ 0x1000 │ │ │ │ │ str r3, [r0, #80] @ 0x50 │ │ │ │ │ ldr r3, [r4, #8] │ │ │ │ │ add r4, r0, #8 │ │ │ │ │ - str r3, [r0, #76] @ 0x4c │ │ │ │ │ - mov r5, r0 │ │ │ │ │ mov r2, r4 │ │ │ │ │ - str sl, [r0, #64] @ 0x40 │ │ │ │ │ - str r6, [r0, #68] @ 0x44 │ │ │ │ │ - str r7, [r0, #72] @ 0x48 │ │ │ │ │ + str r3, [r0, #76] @ 0x4c │ │ │ │ │ add r0, sl, #8 │ │ │ │ │ bl 0 │ │ │ │ │ R_ARM_CALL fftwf_ops_add │ │ │ │ │ add r0, r6, #8 │ │ │ │ │ mov r1, r4 │ │ │ │ │ bl 0 │ │ │ │ │ R_ARM_CALL fftwf_ops_add2 │ │ │ │ │ mov r0, r5 │ │ │ │ │ - add sp, sp, #84 @ 0x54 │ │ │ │ │ - pop {r4, r5, r6, r7, r8, r9, sl, fp, pc} │ │ │ │ │ + b 258 │ │ │ │ │ mov r7, #0 │ │ │ │ │ mov r0, r7 │ │ │ │ │ bl 0 │ │ │ │ │ R_ARM_CALL fftwf_plan_destroy_internal │ │ │ │ │ mov r0, r6 │ │ │ │ │ bl 0 │ │ │ │ │ R_ARM_CALL fftwf_plan_destroy_internal │ │ │ │ │ mov r0, sl │ │ │ │ │ bl 0 │ │ │ │ │ R_ARM_CALL fftwf_plan_destroy_internal │ │ │ │ │ - b 1f4 │ │ │ │ │ + b 254 │ │ │ │ │ add r3, r6, r2 │ │ │ │ │ + cmp r1, #0 │ │ │ │ │ str r3, [sp, #36] @ 0x24 │ │ │ │ │ ldr r3, [sp, #24] │ │ │ │ │ - cmp r1, #0 │ │ │ │ │ add r3, r3, #4 │ │ │ │ │ str r3, [sp, #60] @ 0x3c │ │ │ │ │ - bne 7e4 │ │ │ │ │ + bne 85c │ │ │ │ │ ldr r3, [fp, #164] @ 0xa4 │ │ │ │ │ ands r3, r3, #4096 @ 0x1000 │ │ │ │ │ - beq 824 │ │ │ │ │ + beq 89c │ │ │ │ │ mov r3, #1 │ │ │ │ │ mov sl, r6 │ │ │ │ │ - str r6, [sp, #52] @ 0x34 │ │ │ │ │ - str r6, [sp, #68] @ 0x44 │ │ │ │ │ - str r9, [sp, #64] @ 0x40 │ │ │ │ │ + str r3, [sp, #32] │ │ │ │ │ str r6, [sp, #48] @ 0x30 │ │ │ │ │ + str r6, [sp, #52] @ 0x34 │ │ │ │ │ str r1, [sp, #56] @ 0x38 │ │ │ │ │ - str r3, [sp, #32] │ │ │ │ │ - b 32c │ │ │ │ │ + str r9, [sp, #64] @ 0x40 │ │ │ │ │ + str r6, [sp, #68] @ 0x44 │ │ │ │ │ + b 3a0 │ │ │ │ │ mov r2, #0 │ │ │ │ │ - str r2, [sp, #16] │ │ │ │ │ str r1, [sp, #12] │ │ │ │ │ - ldr r3, [r3, #12] │ │ │ │ │ mov r1, r0 │ │ │ │ │ - str r3, [sp, #8] │ │ │ │ │ - ldr r2, [sp, #32] │ │ │ │ │ - ldr r3, [sp, #52] @ 0x34 │ │ │ │ │ mov r0, r8 │ │ │ │ │ + str r2, [sp, #16] │ │ │ │ │ + ldr r3, [r3, #12] │ │ │ │ │ stm sp, {r6, r9} │ │ │ │ │ - b 5e4 │ │ │ │ │ + ldr r2, [sp, #32] │ │ │ │ │ + str r3, [sp, #8] │ │ │ │ │ + ldr r3, [sp, #52] @ 0x34 │ │ │ │ │ + b 660 │ │ │ │ │ mov r3, #1 │ │ │ │ │ mov r8, #2 │ │ │ │ │ str r3, [sp, #44] @ 0x2c │ │ │ │ │ - b 4ac │ │ │ │ │ + b 528 │ │ │ │ │ mov r3, #0 │ │ │ │ │ - str r3, [sp, #56] @ 0x38 │ │ │ │ │ - mov r3, #1 │ │ │ │ │ mov sl, r6 │ │ │ │ │ - str r6, [sp, #52] @ 0x34 │ │ │ │ │ - str r6, [sp, #68] @ 0x44 │ │ │ │ │ - str r9, [sp, #64] @ 0x40 │ │ │ │ │ str r6, [sp, #48] @ 0x30 │ │ │ │ │ + str r6, [sp, #52] @ 0x34 │ │ │ │ │ + str r3, [sp, #56] @ 0x38 │ │ │ │ │ + mov r3, #1 │ │ │ │ │ str r3, [sp, #32] │ │ │ │ │ - b 32c │ │ │ │ │ - ldr r2, [pc, #156] @ 8b0 │ │ │ │ │ + str r9, [sp, #64] @ 0x40 │ │ │ │ │ + str r6, [sp, #68] @ 0x44 │ │ │ │ │ + b 3a0 │ │ │ │ │ + ldr r2, [pc, #156] @ 928 │ │ │ │ │ add r2, pc, r2 │ │ │ │ │ - b 6cc │ │ │ │ │ + b 748 │ │ │ │ │ mov r7, #0 │ │ │ │ │ mov r6, r7 │ │ │ │ │ - b 740 │ │ │ │ │ + b 7b8 │ │ │ │ │ ldr r2, [sp, #24] │ │ │ │ │ + mov sl, r6 │ │ │ │ │ + str r6, [sp, #48] @ 0x30 │ │ │ │ │ + str r3, [sp, #56] @ 0x38 │ │ │ │ │ + mov r3, #1 │ │ │ │ │ + str r3, [sp, #32] │ │ │ │ │ str r2, [sp, #52] @ 0x34 │ │ │ │ │ str r2, [sp, #68] @ 0x44 │ │ │ │ │ - str r3, [sp, #56] @ 0x38 │ │ │ │ │ ldr r2, [sp, #60] @ 0x3c │ │ │ │ │ - mov r3, #1 │ │ │ │ │ - mov sl, r6 │ │ │ │ │ str r2, [sp, #64] @ 0x40 │ │ │ │ │ - str r6, [sp, #48] @ 0x30 │ │ │ │ │ - str r3, [sp, #32] │ │ │ │ │ - b 32c │ │ │ │ │ + b 3a0 │ │ │ │ │ mov r5, #1 │ │ │ │ │ - b 48c │ │ │ │ │ + b 504 │ │ │ │ │ mov r8, lr │ │ │ │ │ - b 408 │ │ │ │ │ + b 47c │ │ │ │ │ ldr r1, [r4, #4] │ │ │ │ │ mov r2, #1 │ │ │ │ │ mov r0, #2 │ │ │ │ │ bl 0 │ │ │ │ │ R_ARM_CALL fftwf_mpi_is_local_after │ │ │ │ │ cmp r0, #0 │ │ │ │ │ - beq 244 │ │ │ │ │ + beq 2b8 │ │ │ │ │ ldr r3, [r4, #4] │ │ │ │ │ - ldr r1, [r3, #12] │ │ │ │ │ ldr r0, [r3, #4] │ │ │ │ │ + ldr r1, [r3, #12] │ │ │ │ │ bl 0 │ │ │ │ │ R_ARM_CALL fftwf_mpi_num_blocks │ │ │ │ │ cmp r0, #1 │ │ │ │ │ - bne 244 │ │ │ │ │ - b 29c │ │ │ │ │ + bne 2b8 │ │ │ │ │ + b 310 │ │ │ │ │ mov r0, r4 │ │ │ │ │ bl 0 │ │ │ │ │ R_ARM_CALL fftwf_mpi_rdft2_serial_applicable │ │ │ │ │ cmp r0, #0 │ │ │ │ │ - beq 2a8 │ │ │ │ │ - b 1f4 │ │ │ │ │ - .word 0xfffff930 │ │ │ │ │ - .word 0x000001d0 │ │ │ │ │ + beq 31c │ │ │ │ │ + b 254 │ │ │ │ │ + .word 0xfffff8b4 │ │ │ │ │ + .word 0x000001cc │ │ │ │ │ R_ARM_REL32 .data.rel.ro │ │ │ │ │ - .word 0xfffff878 │ │ │ │ │ + .word 0xfffff81c │ │ │ │ │ │ │ │ │ │ -000008b4 : │ │ │ │ │ +0000092c : │ │ │ │ │ awake(): │ │ │ │ │ - push {r4, r5, r6, lr} │ │ │ │ │ + strd r4, [sp, #-16]! │ │ │ │ │ mov r4, r0 │ │ │ │ │ mov r5, r1 │ │ │ │ │ ldr r0, [r0, #64] @ 0x40 │ │ │ │ │ + str r6, [sp, #8] │ │ │ │ │ + str lr, [sp, #12] │ │ │ │ │ bl 0 │ │ │ │ │ R_ARM_CALL fftwf_plan_awake │ │ │ │ │ ldr r0, [r4, #68] @ 0x44 │ │ │ │ │ mov r1, r5 │ │ │ │ │ bl 0 │ │ │ │ │ R_ARM_CALL fftwf_plan_awake │ │ │ │ │ - ldr r0, [r4, #72] @ 0x48 │ │ │ │ │ + ldr r6, [sp, #8] │ │ │ │ │ mov r1, r5 │ │ │ │ │ - pop {r4, r5, r6, lr} │ │ │ │ │ + ldr lr, [sp, #12] │ │ │ │ │ + ldr r0, [r4, #72] @ 0x48 │ │ │ │ │ + ldrd r4, [sp] │ │ │ │ │ + add sp, sp, #16 │ │ │ │ │ b 0 │ │ │ │ │ R_ARM_JUMP24 fftwf_plan_awake │ │ │ │ │ │ │ │ │ │ -000008e4 : │ │ │ │ │ +00000970 : │ │ │ │ │ fftwf_mpi_rdft2_rank_geq2_transposed_register(): │ │ │ │ │ - push {r4, r5, r6, lr} │ │ │ │ │ - ldr r5, [pc, #72] @ 938 │ │ │ │ │ + strd r4, [sp, #-16]! │ │ │ │ │ mov r4, r0 │ │ │ │ │ + mov r0, #12 │ │ │ │ │ + ldr r5, [pc, #84] @ 9d8 │ │ │ │ │ + str r6, [sp, #8] │ │ │ │ │ + str lr, [sp, #12] │ │ │ │ │ add r5, pc, r5 │ │ │ │ │ mov r1, r5 │ │ │ │ │ - mov r0, #12 │ │ │ │ │ bl 0 │ │ │ │ │ R_ARM_CALL fftwf_mksolver │ │ │ │ │ mov r3, #0 │ │ │ │ │ - str r3, [r0, #8] │ │ │ │ │ mov r1, r0 │ │ │ │ │ + str r3, [r0, #8] │ │ │ │ │ mov r0, r4 │ │ │ │ │ bl 0 │ │ │ │ │ R_ARM_CALL fftwf_solver_register │ │ │ │ │ mov r1, r5 │ │ │ │ │ mov r0, #12 │ │ │ │ │ bl 0 │ │ │ │ │ R_ARM_CALL fftwf_mksolver │ │ │ │ │ mov r3, #1 │ │ │ │ │ + ldr r6, [sp, #8] │ │ │ │ │ mov r1, r0 │ │ │ │ │ + ldr lr, [sp, #12] │ │ │ │ │ str r3, [r0, #8] │ │ │ │ │ mov r0, r4 │ │ │ │ │ - pop {r4, r5, r6, lr} │ │ │ │ │ + ldrd r4, [sp] │ │ │ │ │ + add sp, sp, #16 │ │ │ │ │ b 0 │ │ │ │ │ R_ARM_JUMP24 fftwf_solver_register │ │ │ │ │ - .word 0x00000040 │ │ │ │ │ + .word 0x00000048 │ │ │ │ │ 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: 2404 (bytes into file) │ │ │ │ │ + Start of section headers: 2532 (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 0x964: │ │ │ │ │ +There are 13 section headers, starting at offset 0x9e4: │ │ │ │ │ │ │ │ │ │ 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 000300 00 AX 0 0 4 │ │ │ │ │ - [ 2] .rel.text REL 00000000 0007b4 000118 08 I 10 1 4 │ │ │ │ │ - [ 3] .data PROGBITS 00000000 000334 000000 00 WA 0 0 1 │ │ │ │ │ - [ 4] .bss NOBITS 00000000 000334 000000 00 WA 0 0 1 │ │ │ │ │ - [ 5] .rodata.str1.4 PROGBITS 00000000 000334 000036 01 AMS 0 0 4 │ │ │ │ │ - [ 6] .data.rel.ro.local PROGBITS 00000000 00036a 000014 00 WA 0 0 4 │ │ │ │ │ - [ 7] .rel.data.rel.ro.local REL 00000000 0008cc 000020 08 I 10 6 4 │ │ │ │ │ - [ 8] .note.GNU-stack PROGBITS 00000000 00037e 000000 00 0 0 1 │ │ │ │ │ - [ 9] .ARM.attributes ARM_ATTRIBUTES 00000000 00037e 00002b 00 0 0 1 │ │ │ │ │ - [10] .symtab SYMTAB 00000000 0003ac 000280 10 11 21 4 │ │ │ │ │ - [11] .strtab STRTAB 00000000 00062c 000187 00 0 0 1 │ │ │ │ │ - [12] .shstrtab STRTAB 00000000 0008ec 000076 00 0 0 1 │ │ │ │ │ + [ 1] .text PROGBITS 00000000 000034 000380 00 AX 0 0 4 │ │ │ │ │ + [ 2] .rel.text REL 00000000 000834 000118 08 I 10 1 4 │ │ │ │ │ + [ 3] .data PROGBITS 00000000 0003b4 000000 00 WA 0 0 1 │ │ │ │ │ + [ 4] .bss NOBITS 00000000 0003b4 000000 00 WA 0 0 1 │ │ │ │ │ + [ 5] .rodata.str1.4 PROGBITS 00000000 0003b4 000036 01 AMS 0 0 4 │ │ │ │ │ + [ 6] .data.rel.ro.local PROGBITS 00000000 0003ea 000014 00 WA 0 0 4 │ │ │ │ │ + [ 7] .rel.data.rel.ro.local REL 00000000 00094c 000020 08 I 10 6 4 │ │ │ │ │ + [ 8] .note.GNU-stack PROGBITS 00000000 0003fe 000000 00 0 0 1 │ │ │ │ │ + [ 9] .ARM.attributes ARM_ATTRIBUTES 00000000 0003fe 00002b 00 0 0 1 │ │ │ │ │ + [10] .symtab SYMTAB 00000000 00042c 000280 10 11 21 4 │ │ │ │ │ + [11] .strtab STRTAB 00000000 0006ac 000187 00 0 0 1 │ │ │ │ │ + [12] .shstrtab STRTAB 00000000 00096c 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: 00000000 0 NOTYPE LOCAL DEFAULT 1 $a │ │ │ │ │ - 2: 00000000 36 FUNC LOCAL DEFAULT 1 destroy │ │ │ │ │ + 2: 00000000 48 FUNC LOCAL DEFAULT 1 destroy │ │ │ │ │ 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: 00000024 188 FUNC LOCAL DEFAULT 1 print │ │ │ │ │ - 8: 000000d4 0 NOTYPE LOCAL DEFAULT 1 $d │ │ │ │ │ - 9: 000000e0 0 NOTYPE LOCAL DEFAULT 1 $a │ │ │ │ │ - 10: 000000e0 136 FUNC LOCAL DEFAULT 1 zero │ │ │ │ │ + 7: 00000030 216 FUNC LOCAL DEFAULT 1 print │ │ │ │ │ + 8: 000000fc 0 NOTYPE LOCAL DEFAULT 1 $d │ │ │ │ │ + 9: 00000108 0 NOTYPE LOCAL DEFAULT 1 $a │ │ │ │ │ + 10: 00000108 156 FUNC LOCAL DEFAULT 1 zero │ │ │ │ │ 11: 0000002c 0 NOTYPE LOCAL DEFAULT 5 .LC3 │ │ │ │ │ - 12: 00000168 144 FUNC LOCAL DEFAULT 1 hash │ │ │ │ │ - 13: 000001f4 0 NOTYPE LOCAL DEFAULT 1 $d │ │ │ │ │ - 14: 000001f8 0 NOTYPE LOCAL DEFAULT 1 $a │ │ │ │ │ - 15: 00000274 0 NOTYPE LOCAL DEFAULT 1 $d │ │ │ │ │ - 16: 00000278 0 NOTYPE LOCAL DEFAULT 1 $a │ │ │ │ │ - 17: 000002fc 0 NOTYPE LOCAL DEFAULT 1 $d │ │ │ │ │ + 12: 000001a4 156 FUNC LOCAL DEFAULT 1 hash │ │ │ │ │ + 13: 0000023c 0 NOTYPE LOCAL DEFAULT 1 $d │ │ │ │ │ + 14: 00000240 0 NOTYPE LOCAL DEFAULT 1 $a │ │ │ │ │ + 15: 000002d8 0 NOTYPE LOCAL DEFAULT 1 $d │ │ │ │ │ + 16: 000002dc 0 NOTYPE LOCAL DEFAULT 1 $a │ │ │ │ │ + 17: 0000037c 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: 000001f8 128 FUNC GLOBAL DEFAULT 1 fftwf_mpi_mkproblem_rdft2 │ │ │ │ │ + 35: 00000240 156 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: 00000278 136 FUNC GLOBAL DEFAULT 1 fftwf_mpi_mkproblem_rdft2_d │ │ │ │ │ + 39: 000002dc 164 FUNC GLOBAL DEFAULT 1 fftwf_mpi_mkproblem_rdft2_d │ │ │ │ ├── readelf --wide --relocs {} │ │ │ │ │ @@ -1,45 +1,45 @@ │ │ │ │ │ │ │ │ │ │ -Relocation section '.rel.text' at offset 0x7b4 contains 35 entries: │ │ │ │ │ +Relocation section '.rel.text' at offset 0x834 contains 35 entries: │ │ │ │ │ Offset Info Type Sym. Value Symbol's Name │ │ │ │ │ -0000000c 0000151c R_ARM_CALL 00000000 fftwf_mpi_dtensor_destroy │ │ │ │ │ -00000014 0000161c R_ARM_CALL 00000000 MPI_Comm_free │ │ │ │ │ -00000020 0000171d R_ARM_JUMP24 00000000 fftwf_ifree │ │ │ │ │ -00000044 0000181c R_ARM_CALL 00000000 fftwf_ialignment_of │ │ │ │ │ -00000058 0000181c R_ARM_CALL 00000000 fftwf_ialignment_of │ │ │ │ │ -00000080 0000191c R_ARM_CALL 00000000 fftwf_mpi_dtensor_print │ │ │ │ │ -000000b0 00001a1c R_ARM_CALL 00000000 MPI_Comm_size │ │ │ │ │ -000000d4 00000403 R_ARM_REL32 00000000 .LC0 │ │ │ │ │ -000000d8 00000503 R_ARM_REL32 00000018 .LC1 │ │ │ │ │ -000000dc 00000603 R_ARM_REL32 00000024 .LC2 │ │ │ │ │ -000000f4 00001b1c R_ARM_CALL 00000000 fftwf_mpi_dtensor_copy │ │ │ │ │ -00000124 00001c1c R_ARM_CALL 00000000 MPI_Comm_rank │ │ │ │ │ -00000138 00001d1c R_ARM_CALL 00000000 fftwf_mpi_total_block │ │ │ │ │ -00000144 0000151c R_ARM_CALL 00000000 fftwf_mpi_dtensor_destroy │ │ │ │ │ -0000015c 00001e1c R_ARM_CALL 00000000 memset │ │ │ │ │ -00000184 00001f1c R_ARM_CALL 00000000 fftwf_md5puts │ │ │ │ │ -000001a0 0000201c R_ARM_CALL 00000000 fftwf_md5int │ │ │ │ │ -000001ac 0000211c R_ARM_CALL 00000000 fftwf_mpi_dtensor_md5 │ │ │ │ │ -000001b8 0000221c R_ARM_CALL 00000000 fftwf_md5INT │ │ │ │ │ -000001c4 0000201c R_ARM_CALL 00000000 fftwf_md5int │ │ │ │ │ -000001d0 0000201c R_ARM_CALL 00000000 fftwf_md5int │ │ │ │ │ -000001dc 00001a1c R_ARM_CALL 00000000 MPI_Comm_size │ │ │ │ │ -000001e8 0000201c R_ARM_CALL 00000000 fftwf_md5int │ │ │ │ │ -000001f4 00000b03 R_ARM_REL32 0000002c .LC3 │ │ │ │ │ -00000220 0000241c R_ARM_CALL 00000000 fftwf_mkproblem │ │ │ │ │ -00000230 00001a1c R_ARM_CALL 00000000 MPI_Comm_size │ │ │ │ │ -0000023c 0000251c R_ARM_CALL 00000000 fftwf_mpi_dtensor_canonical │ │ │ │ │ -00000264 0000261c R_ARM_CALL 00000000 MPI_Comm_dup │ │ │ │ │ -00000274 00001203 R_ARM_REL32 00000000 .data.rel.ro.local │ │ │ │ │ -000002a0 0000241c R_ARM_CALL 00000000 fftwf_mkproblem │ │ │ │ │ -000002b0 00001a1c R_ARM_CALL 00000000 MPI_Comm_size │ │ │ │ │ -000002bc 0000251c R_ARM_CALL 00000000 fftwf_mpi_dtensor_canonical │ │ │ │ │ -000002e4 0000261c R_ARM_CALL 00000000 MPI_Comm_dup │ │ │ │ │ -000002ec 0000151c R_ARM_CALL 00000000 fftwf_mpi_dtensor_destroy │ │ │ │ │ -000002fc 00001203 R_ARM_REL32 00000000 .data.rel.ro.local │ │ │ │ │ +00000010 0000151c R_ARM_CALL 00000000 fftwf_mpi_dtensor_destroy │ │ │ │ │ +00000018 0000161c R_ARM_CALL 00000000 MPI_Comm_free │ │ │ │ │ +0000002c 0000171d R_ARM_JUMP24 00000000 fftwf_ifree │ │ │ │ │ +0000005c 0000181c R_ARM_CALL 00000000 fftwf_ialignment_of │ │ │ │ │ +0000006c 0000181c R_ARM_CALL 00000000 fftwf_ialignment_of │ │ │ │ │ +00000098 0000191c R_ARM_CALL 00000000 fftwf_mpi_dtensor_print │ │ │ │ │ +000000c8 00001a1c R_ARM_CALL 00000000 MPI_Comm_size │ │ │ │ │ +000000fc 00000403 R_ARM_REL32 00000000 .LC0 │ │ │ │ │ +00000100 00000503 R_ARM_REL32 00000018 .LC1 │ │ │ │ │ +00000104 00000603 R_ARM_REL32 00000024 .LC2 │ │ │ │ │ +00000124 00001b1c R_ARM_CALL 00000000 fftwf_mpi_dtensor_copy │ │ │ │ │ +00000154 00001c1c R_ARM_CALL 00000000 MPI_Comm_rank │ │ │ │ │ +00000168 00001d1c R_ARM_CALL 00000000 fftwf_mpi_total_block │ │ │ │ │ +00000174 0000151c R_ARM_CALL 00000000 fftwf_mpi_dtensor_destroy │ │ │ │ │ +0000018c 00001e1c R_ARM_CALL 00000000 memset │ │ │ │ │ +000001c4 00001f1c R_ARM_CALL 00000000 fftwf_md5puts │ │ │ │ │ +000001e0 0000201c R_ARM_CALL 00000000 fftwf_md5int │ │ │ │ │ +000001ec 0000211c R_ARM_CALL 00000000 fftwf_mpi_dtensor_md5 │ │ │ │ │ +000001f8 0000221c R_ARM_CALL 00000000 fftwf_md5INT │ │ │ │ │ +00000204 0000201c R_ARM_CALL 00000000 fftwf_md5int │ │ │ │ │ +00000210 0000201c R_ARM_CALL 00000000 fftwf_md5int │ │ │ │ │ +0000021c 00001a1c R_ARM_CALL 00000000 MPI_Comm_size │ │ │ │ │ +00000228 0000201c R_ARM_CALL 00000000 fftwf_md5int │ │ │ │ │ +0000023c 00000b03 R_ARM_REL32 0000002c .LC3 │ │ │ │ │ +00000274 0000241c R_ARM_CALL 00000000 fftwf_mkproblem │ │ │ │ │ +00000284 00001a1c R_ARM_CALL 00000000 MPI_Comm_size │ │ │ │ │ +00000290 0000251c R_ARM_CALL 00000000 fftwf_mpi_dtensor_canonical │ │ │ │ │ +000002b8 0000261c R_ARM_CALL 00000000 MPI_Comm_dup │ │ │ │ │ +000002d8 00001203 R_ARM_REL32 00000000 .data.rel.ro.local │ │ │ │ │ +00000310 0000241c R_ARM_CALL 00000000 fftwf_mkproblem │ │ │ │ │ +00000320 00001a1c R_ARM_CALL 00000000 MPI_Comm_size │ │ │ │ │ +0000032c 0000251c R_ARM_CALL 00000000 fftwf_mpi_dtensor_canonical │ │ │ │ │ +00000354 0000261c R_ARM_CALL 00000000 MPI_Comm_dup │ │ │ │ │ +0000035c 0000151c R_ARM_CALL 00000000 fftwf_mpi_dtensor_destroy │ │ │ │ │ +0000037c 00001203 R_ARM_REL32 00000000 .data.rel.ro.local │ │ │ │ │ │ │ │ │ │ -Relocation section '.rel.data.rel.ro.local' at offset 0x8cc contains 4 entries: │ │ │ │ │ +Relocation section '.rel.data.rel.ro.local' at offset 0x94c contains 4 entries: │ │ │ │ │ Offset Info Type Sym. Value Symbol's Name │ │ │ │ │ -00000004 00000c02 R_ARM_ABS32 00000168 hash │ │ │ │ │ -00000008 00000a02 R_ARM_ABS32 000000e0 zero │ │ │ │ │ -0000000c 00000702 R_ARM_ABS32 00000024 print │ │ │ │ │ +00000004 00000c02 R_ARM_ABS32 000001a4 hash │ │ │ │ │ +00000008 00000a02 R_ARM_ABS32 00000108 zero │ │ │ │ │ +0000000c 00000702 R_ARM_ABS32 00000030 print │ │ │ │ │ 00000010 00000202 R_ARM_ABS32 00000000 destroy │ │ │ │ ├── objdump --line-numbers --disassemble --demangle --reloc --no-show-raw-insn --section=.text {} │ │ │ │ │ @@ -1,140 +1,156 @@ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ Disassembly of section .text: │ │ │ │ │ │ │ │ │ │ 00000000 : │ │ │ │ │ destroy(): │ │ │ │ │ - push {r4, lr} │ │ │ │ │ + str r4, [sp, #-8]! │ │ │ │ │ mov r4, r0 │ │ │ │ │ ldr r0, [r0, #4] │ │ │ │ │ + str lr, [sp, #4] │ │ │ │ │ bl 0 │ │ │ │ │ R_ARM_CALL fftwf_mpi_dtensor_destroy │ │ │ │ │ add r0, r4, #28 │ │ │ │ │ bl 0 │ │ │ │ │ R_ARM_CALL MPI_Comm_free │ │ │ │ │ + ldr lr, [sp, #4] │ │ │ │ │ mov r0, r4 │ │ │ │ │ - pop {r4, lr} │ │ │ │ │ + ldr r4, [sp] │ │ │ │ │ + add sp, sp, #8 │ │ │ │ │ b 0 │ │ │ │ │ R_ARM_JUMP24 fftwf_ifree │ │ │ │ │ │ │ │ │ │ -00000024 : │ │ │ │ │ +00000030 : │ │ │ │ │ print(): │ │ │ │ │ - push {r4, r5, r6, r7, r8, lr} │ │ │ │ │ + strd r4, [sp, #-24]! @ 0xffffffe8 │ │ │ │ │ mov r4, r0 │ │ │ │ │ - ldr r6, [r4, #16] │ │ │ │ │ + mov r5, r1 │ │ │ │ │ ldr r0, [r0, #12] │ │ │ │ │ + strd r6, [sp, #8] │ │ │ │ │ + ldr r6, [r4, #16] │ │ │ │ │ + str r8, [sp, #16] │ │ │ │ │ + str lr, [sp, #20] │ │ │ │ │ sub sp, sp, #16 │ │ │ │ │ - mov r5, r1 │ │ │ │ │ ldr r8, [r1] │ │ │ │ │ sub r6, r6, r0 │ │ │ │ │ bl 0 │ │ │ │ │ R_ARM_CALL fftwf_ialignment_of │ │ │ │ │ - clz r6, r6 │ │ │ │ │ - lsr r6, r6, #5 │ │ │ │ │ mov r7, r0 │ │ │ │ │ ldr r0, [r4, #16] │ │ │ │ │ + clz r6, r6 │ │ │ │ │ bl 0 │ │ │ │ │ R_ARM_CALL fftwf_ialignment_of │ │ │ │ │ - ldr r1, [pc, #112] @ d4 │ │ │ │ │ + ldr r1, [pc, #132] @ fc │ │ │ │ │ + lsr r6, r6, #5 │ │ │ │ │ mov r3, r7 │ │ │ │ │ - mov r2, r6 │ │ │ │ │ - add r1, pc, r1 │ │ │ │ │ str r0, [sp] │ │ │ │ │ mov r0, r5 │ │ │ │ │ + mov r2, r6 │ │ │ │ │ + add r1, pc, r1 │ │ │ │ │ blx r8 │ │ │ │ │ ldr r0, [r4, #4] │ │ │ │ │ mov r1, r5 │ │ │ │ │ bl 0 │ │ │ │ │ R_ARM_CALL fftwf_mpi_dtensor_print │ │ │ │ │ - ldr r1, [pc, #76] @ d8 │ │ │ │ │ ldr r3, [r4, #24] │ │ │ │ │ - str r3, [sp] │ │ │ │ │ mov r0, r5 │ │ │ │ │ - ldr r3, [r4, #20] │ │ │ │ │ - ldr r2, [r4, #8] │ │ │ │ │ + ldr r1, [pc, #84] @ 100 │ │ │ │ │ + str r3, [sp] │ │ │ │ │ ldr r6, [r5] │ │ │ │ │ add r1, pc, r1 │ │ │ │ │ + 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_CALL MPI_Comm_size │ │ │ │ │ - ldr r1, [pc, #32] @ dc │ │ │ │ │ + ldr r1, [pc, #48] @ 104 │ │ │ │ │ + mov r0, r5 │ │ │ │ │ ldr r3, [r5] │ │ │ │ │ ldr r2, [sp, #12] │ │ │ │ │ add r1, pc, r1 │ │ │ │ │ - mov r0, r5 │ │ │ │ │ blx r3 │ │ │ │ │ add sp, sp, #16 │ │ │ │ │ - pop {r4, r5, r6, r7, r8, pc} │ │ │ │ │ - .word 0x00000064 │ │ │ │ │ + ldrd r4, [sp] │ │ │ │ │ + ldrd r6, [sp, #8] │ │ │ │ │ + ldr r8, [sp, #16] │ │ │ │ │ + add sp, sp, #20 │ │ │ │ │ + pop {pc} @ (ldr pc, [sp], #4) │ │ │ │ │ + .word 0x0000006c │ │ │ │ │ R_ARM_REL32 .LC0 │ │ │ │ │ - .word 0x00000030 │ │ │ │ │ + .word 0x00000048 │ │ │ │ │ R_ARM_REL32 .LC1 │ │ │ │ │ - .word 0x00000014 │ │ │ │ │ + .word 0x00000020 │ │ │ │ │ R_ARM_REL32 .LC2 │ │ │ │ │ │ │ │ │ │ -000000e0 : │ │ │ │ │ +00000108 : │ │ │ │ │ zero(): │ │ │ │ │ - push {r4, r5, r6, lr} │ │ │ │ │ - mov r6, r0 │ │ │ │ │ - sub sp, sp, #8 │ │ │ │ │ + strd r4, [sp, #-16]! │ │ │ │ │ ldr r4, [r0, #12] │ │ │ │ │ + str r6, [sp, #8] │ │ │ │ │ + mov r6, r0 │ │ │ │ │ ldr r0, [r0, #4] │ │ │ │ │ + str lr, [sp, #12] │ │ │ │ │ + sub sp, sp, #8 │ │ │ │ │ bl 0 │ │ │ │ │ R_ARM_CALL fftwf_mpi_dtensor_copy │ │ │ │ │ - add r1, sp, #4 │ │ │ │ │ ldr r2, [r0] │ │ │ │ │ mov r5, r0 │ │ │ │ │ + add r1, sp, #4 │ │ │ │ │ add r2, r2, r2, lsl #1 │ │ │ │ │ add r2, r0, r2, lsl #2 │ │ │ │ │ - ldr r3, [r2, #-8] │ │ │ │ │ ldr r0, [r6, #28] │ │ │ │ │ + ldr r3, [r2, #-8] │ │ │ │ │ add r3, r3, r3, lsr #31 │ │ │ │ │ asr r3, r3, #1 │ │ │ │ │ add r3, r3, #1 │ │ │ │ │ str r3, [r2, #-8] │ │ │ │ │ bl 0 │ │ │ │ │ R_ARM_CALL MPI_Comm_rank │ │ │ │ │ - ldr r2, [sp, #4] │ │ │ │ │ + ldr r6, [r6, #8] │ │ │ │ │ mov r1, #0 │ │ │ │ │ mov r0, r5 │ │ │ │ │ - ldr r6, [r6, #8] │ │ │ │ │ + ldr r2, [sp, #4] │ │ │ │ │ bl 0 │ │ │ │ │ R_ARM_CALL fftwf_mpi_total_block │ │ │ │ │ mul r6, r0, r6 │ │ │ │ │ mov r0, r5 │ │ │ │ │ bl 0 │ │ │ │ │ R_ARM_CALL fftwf_mpi_dtensor_destroy │ │ │ │ │ cmp r6, #0 │ │ │ │ │ - ble 160 │ │ │ │ │ + ble 190 │ │ │ │ │ lsl r2, r6, #3 │ │ │ │ │ mov r1, #0 │ │ │ │ │ mov r0, r4 │ │ │ │ │ bl 0 │ │ │ │ │ R_ARM_CALL memset │ │ │ │ │ add sp, sp, #8 │ │ │ │ │ - pop {r4, r5, r6, pc} │ │ │ │ │ + ldrd r4, [sp] │ │ │ │ │ + ldr r6, [sp, #8] │ │ │ │ │ + add sp, sp, #12 │ │ │ │ │ + pop {pc} @ (ldr pc, [sp], #4) │ │ │ │ │ │ │ │ │ │ -00000168 : │ │ │ │ │ +000001a4 : │ │ │ │ │ hash(): │ │ │ │ │ - push {r4, r5, lr} │ │ │ │ │ + strd r4, [sp, #-12]! │ │ │ │ │ mov r4, r1 │ │ │ │ │ - ldr r1, [pc, #124] @ 1f4 │ │ │ │ │ - sub sp, sp, #12 │ │ │ │ │ mov r5, r0 │ │ │ │ │ - add r1, pc, r1 │ │ │ │ │ + ldr r1, [pc, #132] @ 23c │ │ │ │ │ mov r0, r4 │ │ │ │ │ + str lr, [sp, #8] │ │ │ │ │ + sub sp, sp, #12 │ │ │ │ │ + add r1, pc, r1 │ │ │ │ │ bl 0 │ │ │ │ │ R_ARM_CALL fftwf_md5puts │ │ │ │ │ - ldr r3, [r5, #16] │ │ │ │ │ ldr r1, [r5, #12] │ │ │ │ │ mov r0, r4 │ │ │ │ │ + ldr r3, [r5, #16] │ │ │ │ │ sub r1, r1, r3 │ │ │ │ │ clz r1, r1 │ │ │ │ │ lsr r1, r1, #5 │ │ │ │ │ bl 0 │ │ │ │ │ R_ARM_CALL fftwf_md5int │ │ │ │ │ ldr r1, [r5, #4] │ │ │ │ │ mov r0, r4 │ │ │ │ │ @@ -148,102 +164,118 @@ │ │ │ │ │ mov r0, r4 │ │ │ │ │ bl 0 │ │ │ │ │ R_ARM_CALL fftwf_md5int │ │ │ │ │ ldr r1, [r5, #24] │ │ │ │ │ mov r0, r4 │ │ │ │ │ bl 0 │ │ │ │ │ R_ARM_CALL fftwf_md5int │ │ │ │ │ - add r1, sp, #4 │ │ │ │ │ ldr r0, [r5, #28] │ │ │ │ │ + add r1, sp, #4 │ │ │ │ │ bl 0 │ │ │ │ │ R_ARM_CALL MPI_Comm_size │ │ │ │ │ ldr r1, [sp, #4] │ │ │ │ │ mov r0, r4 │ │ │ │ │ bl 0 │ │ │ │ │ R_ARM_CALL fftwf_md5int │ │ │ │ │ add sp, sp, #12 │ │ │ │ │ - pop {r4, r5, pc} │ │ │ │ │ - .word 0x00000070 │ │ │ │ │ + ldrd r4, [sp] │ │ │ │ │ + add sp, sp, #8 │ │ │ │ │ + pop {pc} @ (ldr pc, [sp], #4) │ │ │ │ │ + .word 0x00000074 │ │ │ │ │ R_ARM_REL32 .LC3 │ │ │ │ │ │ │ │ │ │ -000001f8 : │ │ │ │ │ +00000240 : │ │ │ │ │ fftwf_mpi_mkproblem_rdft2(): │ │ │ │ │ - push {r4, r5, r6, r7, r8, r9, lr} │ │ │ │ │ + strd r4, [sp, #-28]! @ 0xffffffe4 │ │ │ │ │ + mov r5, r3 │ │ │ │ │ + strd r6, [sp, #8] │ │ │ │ │ mov r7, r1 │ │ │ │ │ - ldr r1, [pc, #108] @ 274 │ │ │ │ │ - sub sp, sp, #12 │ │ │ │ │ + mov r6, r2 │ │ │ │ │ + ldr r1, [pc, #124] @ 2d8 │ │ │ │ │ + strd r8, [sp, #16] │ │ │ │ │ mov r8, r0 │ │ │ │ │ - add r1, pc, r1 │ │ │ │ │ mov r0, #32 │ │ │ │ │ - mov r6, r2 │ │ │ │ │ - mov r5, r3 │ │ │ │ │ + str lr, [sp, #24] │ │ │ │ │ + sub sp, sp, #12 │ │ │ │ │ ldr r9, [sp, #40] @ 0x28 │ │ │ │ │ + add r1, pc, r1 │ │ │ │ │ bl 0 │ │ │ │ │ R_ARM_CALL fftwf_mkproblem │ │ │ │ │ - add r1, sp, #4 │ │ │ │ │ mov r4, r0 │ │ │ │ │ + add r1, sp, #4 │ │ │ │ │ mov r0, r9 │ │ │ │ │ bl 0 │ │ │ │ │ R_ARM_CALL MPI_Comm_size │ │ │ │ │ mov r1, #0 │ │ │ │ │ mov r0, r8 │ │ │ │ │ bl 0 │ │ │ │ │ R_ARM_CALL fftwf_mpi_dtensor_canonical │ │ │ │ │ ldr r3, [sp, #44] @ 0x2c │ │ │ │ │ - str r3, [r4, #20] │ │ │ │ │ - ldr r3, [sp, #48] @ 0x30 │ │ │ │ │ add r1, r4, #28 │ │ │ │ │ + stmib r4, {r0, r7} │ │ │ │ │ + mov r0, r9 │ │ │ │ │ str r6, [r4, #12] │ │ │ │ │ str r5, [r4, #16] │ │ │ │ │ + str r3, [r4, #20] │ │ │ │ │ + ldr r3, [sp, #48] @ 0x30 │ │ │ │ │ str r3, [r4, #24] │ │ │ │ │ - stmib r4, {r0, r7} │ │ │ │ │ - mov r0, r9 │ │ │ │ │ bl 0 │ │ │ │ │ R_ARM_CALL MPI_Comm_dup │ │ │ │ │ mov r0, r4 │ │ │ │ │ add sp, sp, #12 │ │ │ │ │ - pop {r4, r5, r6, r7, r8, r9, pc} │ │ │ │ │ + ldrd r4, [sp] │ │ │ │ │ + ldrd r6, [sp, #8] │ │ │ │ │ + ldrd r8, [sp, #16] │ │ │ │ │ + add sp, sp, #24 │ │ │ │ │ + pop {pc} @ (ldr pc, [sp], #4) │ │ │ │ │ .word 0x00000060 │ │ │ │ │ R_ARM_REL32 .data.rel.ro.local │ │ │ │ │ │ │ │ │ │ -00000278 : │ │ │ │ │ +000002dc : │ │ │ │ │ fftwf_mpi_mkproblem_rdft2_d(): │ │ │ │ │ - push {r4, r5, r6, r7, r8, r9, lr} │ │ │ │ │ - mov r8, r1 │ │ │ │ │ - ldr r1, [pc, #116] @ 2fc │ │ │ │ │ - sub sp, sp, #12 │ │ │ │ │ + strd r4, [sp, #-28]! @ 0xffffffe4 │ │ │ │ │ mov r5, r0 │ │ │ │ │ - add r1, pc, r1 │ │ │ │ │ mov r0, #32 │ │ │ │ │ + strd r6, [sp, #8] │ │ │ │ │ mov r7, r2 │ │ │ │ │ mov r6, r3 │ │ │ │ │ + strd r8, [sp, #16] │ │ │ │ │ + mov r8, r1 │ │ │ │ │ + ldr r1, [pc, #120] @ 37c │ │ │ │ │ + str lr, [sp, #24] │ │ │ │ │ + sub sp, sp, #12 │ │ │ │ │ ldr r9, [sp, #40] @ 0x28 │ │ │ │ │ + add r1, pc, r1 │ │ │ │ │ bl 0 │ │ │ │ │ R_ARM_CALL fftwf_mkproblem │ │ │ │ │ - add r1, sp, #4 │ │ │ │ │ mov r4, r0 │ │ │ │ │ + add r1, sp, #4 │ │ │ │ │ mov r0, r9 │ │ │ │ │ bl 0 │ │ │ │ │ R_ARM_CALL MPI_Comm_size │ │ │ │ │ mov r1, #0 │ │ │ │ │ mov r0, r5 │ │ │ │ │ bl 0 │ │ │ │ │ R_ARM_CALL fftwf_mpi_dtensor_canonical │ │ │ │ │ ldr r3, [sp, #44] @ 0x2c │ │ │ │ │ - str r3, [r4, #20] │ │ │ │ │ - ldr r3, [sp, #48] @ 0x30 │ │ │ │ │ add r1, r4, #28 │ │ │ │ │ - str r3, [r4, #24] │ │ │ │ │ - str r7, [r4, #12] │ │ │ │ │ - str r6, [r4, #16] │ │ │ │ │ stmib r4, {r0, r8} │ │ │ │ │ mov r0, r9 │ │ │ │ │ + str r7, [r4, #12] │ │ │ │ │ + str r6, [r4, #16] │ │ │ │ │ + str r3, [r4, #20] │ │ │ │ │ + ldr r3, [sp, #48] @ 0x30 │ │ │ │ │ + str r3, [r4, #24] │ │ │ │ │ bl 0 │ │ │ │ │ R_ARM_CALL MPI_Comm_dup │ │ │ │ │ mov r0, r5 │ │ │ │ │ bl 0 │ │ │ │ │ R_ARM_CALL fftwf_mpi_dtensor_destroy │ │ │ │ │ mov r0, r4 │ │ │ │ │ add sp, sp, #12 │ │ │ │ │ - pop {r4, r5, r6, r7, r8, r9, pc} │ │ │ │ │ + ldrd r4, [sp] │ │ │ │ │ + ldrd r6, [sp, #8] │ │ │ │ │ + ldrd r8, [sp, #16] │ │ │ │ │ + add sp, sp, #24 │ │ │ │ │ + pop {pc} @ (ldr pc, [sp], #4) │ │ │ │ │ .word 0x00000068 │ │ │ │ │ R_ARM_REL32 .data.rel.ro.local │ │ │ ├── rdft2-solve.o │ │ │ │ ├── objdump --line-numbers --disassemble --demangle --reloc --no-show-raw-insn --section=.text {} │ │ │ │ │ @@ -2,10 +2,10 @@ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ Disassembly of section .text: │ │ │ │ │ │ │ │ │ │ 00000000 : │ │ │ │ │ fftwf_mpi_rdft2_solve(): │ │ │ │ │ ldr r2, [r1, #16] │ │ │ │ │ - ldr r3, [r0, #56] @ 0x38 │ │ │ │ │ ldr r1, [r1, #12] │ │ │ │ │ + ldr r3, [r0, #56] @ 0x38 │ │ │ │ │ bx r3