ARM GAS /tmp/ccHLWtTw.s page 1 1 .cpu cortex-m4 2 .eabi_attribute 27, 1 3 .eabi_attribute 28, 1 4 .eabi_attribute 20, 1 5 .eabi_attribute 21, 1 6 .eabi_attribute 23, 3 7 .eabi_attribute 24, 1 8 .eabi_attribute 25, 1 9 .eabi_attribute 26, 1 10 .eabi_attribute 30, 2 11 .eabi_attribute 34, 1 12 .eabi_attribute 18, 4 13 .file "DistanceFunctions.c" 14 .text 15 .section .text.arm_boolean_distance_TT_TF_FT,"ax",%progbits 16 .align 1 17 .p2align 2,,3 18 .global arm_boolean_distance_TT_TF_FT 19 .arch armv7e-m 20 .syntax unified 21 .thumb 22 .thumb_func 23 .fpu fpv4-sp-d16 25 arm_boolean_distance_TT_TF_FT: 26 @ args = 8, pretend = 0, frame = 8 27 @ frame_needed = 0, uses_anonymous_args = 0 28 0000 2DE9F04F push {r4, r5, r6, r7, r8, r9, r10, fp, lr} 29 0004 83B0 sub sp, sp, #12 30 0006 1F2A cmp r2, #31 31 0008 1646 mov r6, r2 32 000a 0746 mov r7, r0 33 000c 8A46 mov r10, r1 34 000e 0193 str r3, [sp, #4] 35 0010 57D9 bls .L15 36 0012 A2F12009 sub r9, r2, #32 37 0016 4FEA5919 lsr r9, r9, #5 38 001a 09F10109 add r9, r9, #1 39 001e 4FF0000C mov ip, #0 40 0022 4FEA890B lsl fp, r9, #2 41 0026 8846 mov r8, r1 42 0028 00EB8909 add r9, r0, r9, lsl #2 43 002c E646 mov lr, ip 44 002e 6546 mov r5, ip 45 .L8: 46 0030 57F8041B ldr r1, [r7], #4 47 0034 58F8042B ldr r2, [r8], #4 48 0038 2023 movs r3, #32 49 003a 04E0 b .L7 50 .L31: 51 003c 0CB1 cbz r4, .L5 52 003e 0CF1010C add ip, ip, #1 53 .L5: 54 0042 013B subs r3, r3, #1 55 0044 0CD0 beq .L30 56 .L7: 57 0046 01F00100 and r0, r1, #1 58 004a 02F00104 and r4, r2, #1 ARM GAS /tmp/ccHLWtTw.s page 2 59 004e 4908 lsrs r1, r1, #1 60 0050 5208 lsrs r2, r2, #1 61 0052 0028 cmp r0, #0 62 0054 F2D0 beq .L31 63 0056 7CBB cbnz r4, .L6 64 0058 013B subs r3, r3, #1 65 005a 0EF1010E add lr, lr, #1 66 005e F2D1 bne .L7 67 .L30: 68 0060 4F45 cmp r7, r9 69 0062 E5D1 bne .L8 70 0064 DA44 add r10, r10, fp 71 0066 06F01F06 and r6, r6, #31 72 .L2: 73 006a D9F80020 ldr r2, [r9] 74 006e DAF80030 ldr r3, [r10] 75 0072 C6F12001 rsb r1, r6, #32 76 0076 CA40 lsrs r2, r2, r1 77 0078 CB40 lsrs r3, r3, r1 78 007a 26B9 cbnz r6, .L14 79 007c 11E0 b .L9 80 .L32: 81 007e E9B1 cbz r1, .L11 82 0080 0135 adds r5, r5, #1 83 .L13: 84 0082 013E subs r6, r6, #1 85 0084 0DD0 beq .L9 86 .L14: 87 0086 02F00100 and r0, r2, #1 88 008a 03F00101 and r1, r3, #1 89 008e 5208 lsrs r2, r2, #1 90 0090 5B08 lsrs r3, r3, #1 91 0092 0028 cmp r0, #0 92 0094 F3D1 bne .L32 93 0096 0029 cmp r1, #0 94 0098 F3D0 beq .L13 95 009a 013E subs r6, r6, #1 96 009c 0CF1010C add ip, ip, #1 97 00a0 F1D1 bne .L14 98 .L9: 99 00a2 019B ldr r3, [sp, #4] 100 00a4 1D60 str r5, [r3] 101 00a6 0C9B ldr r3, [sp, #48] 102 00a8 C3F800E0 str lr, [r3] 103 00ac 0D9B ldr r3, [sp, #52] 104 00ae C3F800C0 str ip, [r3] 105 00b2 03B0 add sp, sp, #12 106 @ sp needed 107 00b4 BDE8F08F pop {r4, r5, r6, r7, r8, r9, r10, fp, pc} 108 .L6: 109 00b8 0135 adds r5, r5, #1 110 00ba C2E7 b .L5 111 .L11: 112 00bc 0EF1010E add lr, lr, #1 113 00c0 DFE7 b .L13 114 .L15: 115 00c2 4FF0000C mov ip, #0 ARM GAS /tmp/ccHLWtTw.s page 3 116 00c6 8146 mov r9, r0 117 00c8 E646 mov lr, ip 118 00ca 6546 mov r5, ip 119 00cc CDE7 b .L2 121 00ce 00BF .section .text.arm_boolean_distance_TF_FT,"ax",%progbits 122 .align 1 123 .p2align 2,,3 124 .global arm_boolean_distance_TF_FT 125 .syntax unified 126 .thumb 127 .thumb_func 128 .fpu fpv4-sp-d16 130 arm_boolean_distance_TF_FT: 131 @ args = 4, pretend = 0, frame = 0 132 @ frame_needed = 0, uses_anonymous_args = 0 133 0000 1F2A cmp r2, #31 134 0002 2DE9F04F push {r4, r5, r6, r7, r8, r9, r10, fp, lr} 135 0006 1546 mov r5, r2 136 0008 8946 mov r9, r1 137 000a 9A46 mov r10, r3 138 000c 4AD9 bls .L43 139 000e A2F12008 sub r8, r2, #32 140 0012 4FEA5818 lsr r8, r8, #5 141 0016 08F10108 add r8, r8, #1 142 001a 4FF0000E mov lr, #0 143 001e 4FEA880B lsl fp, r8, #2 144 0022 0F46 mov r7, r1 145 0024 00EB8808 add r8, r0, r8, lsl #2 146 0028 7446 mov r4, lr 147 002a 8446 mov ip, r0 148 .L38: 149 002c 5CF8041B ldr r1, [ip], #4 150 0030 57F8042B ldr r2, [r7], #4 151 0034 2023 movs r3, #32 152 0036 02E0 b .L37 153 .L52: 154 0038 B644 add lr, lr, r6 155 .L36: 156 003a 013B subs r3, r3, #1 157 003c 0DD0 beq .L51 158 .L37: 159 003e 01F00100 and r0, r1, #1 160 0042 02F00106 and r6, r2, #1 161 0046 4908 lsrs r1, r1, #1 162 0048 5208 lsrs r2, r2, #1 163 004a 0028 cmp r0, #0 164 004c F4D0 beq .L52 165 004e 002E cmp r6, #0 166 0050 F3D1 bne .L36 167 0052 013B subs r3, r3, #1 168 0054 04F10104 add r4, r4, #1 169 0058 F1D1 bne .L37 170 .L51: 171 005a C445 cmp ip, r8 172 005c E6D1 bne .L38 173 005e D944 add r9, r9, fp 174 0060 05F01F05 and r5, r5, #31 ARM GAS /tmp/ccHLWtTw.s page 4 175 .L34: 176 0064 D8F80020 ldr r2, [r8] 177 0068 D9F80030 ldr r3, [r9] 178 006c C5F12001 rsb r1, r5, #32 179 0070 CA40 lsrs r2, r2, r1 180 0072 CB40 lsrs r3, r3, r1 181 0074 25B9 cbnz r5, .L42 182 0076 0EE0 b .L39 183 .L53: 184 0078 01B9 cbnz r1, .L41 185 007a 0134 adds r4, r4, #1 186 .L41: 187 007c 013D subs r5, r5, #1 188 007e 0AD0 beq .L39 189 .L42: 190 0080 02F00100 and r0, r2, #1 191 0084 03F00101 and r1, r3, #1 192 0088 5208 lsrs r2, r2, #1 193 008a 5B08 lsrs r3, r3, #1 194 008c 0028 cmp r0, #0 195 008e F3D1 bne .L53 196 0090 013D subs r5, r5, #1 197 0092 8E44 add lr, lr, r1 198 0094 F4D1 bne .L42 199 .L39: 200 0096 099B ldr r3, [sp, #36] 201 0098 CAF80040 str r4, [r10] 202 009c C3F800E0 str lr, [r3] 203 00a0 BDE8F08F pop {r4, r5, r6, r7, r8, r9, r10, fp, pc} 204 .L43: 205 00a4 4FF0000E mov lr, #0 206 00a8 8046 mov r8, r0 207 00aa 7446 mov r4, lr 208 00ac DAE7 b .L34 210 00ae 00BF .section .text.arm_boolean_distance_TT_FF_TF_FT,"ax",%progbits 211 .align 1 212 .p2align 2,,3 213 .global arm_boolean_distance_TT_FF_TF_FT 214 .syntax unified 215 .thumb 216 .thumb_func 217 .fpu fpv4-sp-d16 219 arm_boolean_distance_TT_FF_TF_FT: 220 @ args = 12, pretend = 0, frame = 8 221 @ frame_needed = 0, uses_anonymous_args = 0 222 0000 2DE9F04F push {r4, r5, r6, r7, r8, r9, r10, fp, lr} 223 0004 83B0 sub sp, sp, #12 224 0006 1F2A cmp r2, #31 225 0008 1746 mov r7, r2 226 000a 8046 mov r8, r0 227 000c 8B46 mov fp, r1 228 000e 0193 str r3, [sp, #4] 229 0010 61D9 bls .L68 230 0012 A2F1200A sub r10, r2, #32 231 0016 4FEA5A1A lsr r10, r10, #5 232 001a 0AF1010A add r10, r10, #1 233 001e 4FF0000C mov ip, #0 ARM GAS /tmp/ccHLWtTw.s page 5 234 0022 4FEA8A03 lsl r3, r10, #2 235 0026 0093 str r3, [sp] 236 0028 00EB8A0A add r10, r0, r10, lsl #2 237 002c 8946 mov r9, r1 238 002e E646 mov lr, ip 239 0030 6546 mov r5, ip 240 0032 6646 mov r6, ip 241 .L61: 242 0034 58F8041B ldr r1, [r8], #4 243 0038 59F8042B ldr r2, [r9], #4 244 003c 2023 movs r3, #32 245 003e 05E0 b .L60 246 .L77: 247 0040 002C cmp r4, #0 248 0042 3ED0 beq .L57 249 0044 0CF1010C add ip, ip, #1 250 .L58: 251 0048 013B subs r3, r3, #1 252 004a 0CD0 beq .L76 253 .L60: 254 004c 01F00100 and r0, r1, #1 255 0050 02F00104 and r4, r2, #1 256 0054 4908 lsrs r1, r1, #1 257 0056 5208 lsrs r2, r2, #1 258 0058 0028 cmp r0, #0 259 005a F1D0 beq .L77 260 005c 9CBB cbnz r4, .L59 261 005e 013B subs r3, r3, #1 262 0060 0EF1010E add lr, lr, #1 263 0064 F2D1 bne .L60 264 .L76: 265 0066 D045 cmp r8, r10 266 0068 E4D1 bne .L61 267 006a 009B ldr r3, [sp] 268 006c 07F01F07 and r7, r7, #31 269 0070 9B44 add fp, fp, r3 270 .L55: 271 0072 DAF80020 ldr r2, [r10] 272 0076 DBF80030 ldr r3, [fp] 273 007a C7F12001 rsb r1, r7, #32 274 007e CA40 lsrs r2, r2, r1 275 0080 CB40 lsrs r3, r3, r1 276 0082 27B9 cbnz r7, .L67 277 0084 10E0 b .L62 278 .L78: 279 0086 01B3 cbz r1, .L64 280 0088 0136 adds r6, r6, #1 281 .L65: 282 008a 013F subs r7, r7, #1 283 008c 0CD0 beq .L62 284 .L67: 285 008e 02F00100 and r0, r2, #1 286 0092 03F00101 and r1, r3, #1 287 0096 5208 lsrs r2, r2, #1 288 0098 5B08 lsrs r3, r3, #1 289 009a 0028 cmp r0, #0 290 009c F3D1 bne .L78 ARM GAS /tmp/ccHLWtTw.s page 6 291 009e B9B9 cbnz r1, .L66 292 00a0 013F subs r7, r7, #1 293 00a2 05F10105 add r5, r5, #1 294 00a6 F2D1 bne .L67 295 .L62: 296 00a8 019B ldr r3, [sp, #4] 297 00aa 1E60 str r6, [r3] 298 00ac 0C9B ldr r3, [sp, #48] 299 00ae 1D60 str r5, [r3] 300 00b0 0D9B ldr r3, [sp, #52] 301 00b2 C3F800E0 str lr, [r3] 302 00b6 0E9B ldr r3, [sp, #56] 303 00b8 C3F800C0 str ip, [r3] 304 00bc 03B0 add sp, sp, #12 305 @ sp needed 306 00be BDE8F08F pop {r4, r5, r6, r7, r8, r9, r10, fp, pc} 307 .L57: 308 00c2 0135 adds r5, r5, #1 309 00c4 C0E7 b .L58 310 .L59: 311 00c6 0136 adds r6, r6, #1 312 00c8 BEE7 b .L58 313 .L64: 314 00ca 0EF1010E add lr, lr, #1 315 00ce DCE7 b .L65 316 .L66: 317 00d0 0CF1010C add ip, ip, #1 318 00d4 D9E7 b .L65 319 .L68: 320 00d6 4FF0000C mov ip, #0 321 00da 8246 mov r10, r0 322 00dc E646 mov lr, ip 323 00de 6546 mov r5, ip 324 00e0 6646 mov r6, ip 325 00e2 C6E7 b .L55 327 .section .text.arm_boolean_distance_TT,"ax",%progbits 328 .align 1 329 .p2align 2,,3 330 .global arm_boolean_distance_TT 331 .syntax unified 332 .thumb 333 .thumb_func 334 .fpu fpv4-sp-d16 336 arm_boolean_distance_TT: 337 @ args = 0, pretend = 0, frame = 0 338 @ frame_needed = 0, uses_anonymous_args = 0 339 0000 1F2A cmp r2, #31 340 0002 2DE9F047 push {r4, r5, r6, r7, r8, r9, r10, lr} 341 0006 1446 mov r4, r2 342 0008 0546 mov r5, r0 343 000a 8946 mov r9, r1 344 000c 1F46 mov r7, r3 345 000e 3AD9 bls .L87 346 0010 A2F12008 sub r8, r2, #32 347 0014 4FEA5818 lsr r8, r8, #5 348 0018 08F10108 add r8, r8, #1 349 001c 4FEA880A lsl r10, r8, #2 ARM GAS /tmp/ccHLWtTw.s page 7 350 0020 0E46 mov r6, r1 351 0022 00EB8808 add r8, r0, r8, lsl #2 352 0026 0020 movs r0, #0 353 .L83: 354 0028 55F8042B ldr r2, [r5], #4 355 002c 56F8043B ldr r3, [r6], #4 356 0030 4FF0200C mov ip, #32 357 .L82: 358 0034 02F00101 and r1, r2, #1 359 0038 9E46 mov lr, r3 360 003a 5208 lsrs r2, r2, #1 361 003c 5B08 lsrs r3, r3, #1 362 003e 19B1 cbz r1, .L81 363 0040 1EF0010F tst lr, #1 364 0044 18BF it ne 365 0046 0130 addne r0, r0, #1 366 .L81: 367 0048 BCF1010C subs ip, ip, #1 368 004c F2D1 bne .L82 369 004e 4545 cmp r5, r8 370 0050 EAD1 bne .L83 371 0052 D144 add r9, r9, r10 372 0054 04F01F04 and r4, r4, #31 373 .L80: 374 0058 D8F80010 ldr r1, [r8] 375 005c D9F80020 ldr r2, [r9] 376 0060 C4F12003 rsb r3, r4, #32 377 0064 D940 lsrs r1, r1, r3 378 0066 DA40 lsrs r2, r2, r3 379 0068 54B1 cbz r4, .L84 380 .L86: 381 006a 01F00103 and r3, r1, #1 382 006e 1546 mov r5, r2 383 0070 4908 lsrs r1, r1, #1 384 0072 5208 lsrs r2, r2, #1 385 0074 13B1 cbz r3, .L85 386 0076 EB07 lsls r3, r5, #31 387 0078 48BF it mi 388 007a 0130 addmi r0, r0, #1 389 .L85: 390 007c 013C subs r4, r4, #1 391 007e F4D1 bne .L86 392 .L84: 393 0080 3860 str r0, [r7] 394 0082 BDE8F087 pop {r4, r5, r6, r7, r8, r9, r10, pc} 395 .L87: 396 0086 8046 mov r8, r0 397 0088 0020 movs r0, #0 398 008a E5E7 b .L80 400 .section .text.arm_braycurtis_distance_f32,"ax",%progbits 401 .align 1 402 .p2align 2,,3 403 .global arm_braycurtis_distance_f32 404 .syntax unified 405 .thumb 406 .thumb_func 407 .fpu fpv4-sp-d16 ARM GAS /tmp/ccHLWtTw.s page 8 409 arm_braycurtis_distance_f32: 410 @ args = 0, pretend = 0, frame = 0 411 @ frame_needed = 0, uses_anonymous_args = 0 412 @ link register save eliminated. 413 0000 9FED0C6A vldr.32 s12, .L112 414 0004 B0EE460A vmov.f32 s0, s12 415 0008 8AB1 cbz r2, .L108 416 .L109: 417 000a F0EC017A vldmia.32 r0!, {s15} 418 000e F1EC016A vldmia.32 r1!, {s13} 419 0012 37EEE67A vsub.f32 s14, s15, s13 420 0016 77EEA67A vadd.f32 s15, s15, s13 421 001a B0EEC77A vabs.f32 s14, s14 422 001e F0EEE77A vabs.f32 s15, s15 423 0022 013A subs r2, r2, #1 424 0024 30EE070A vadd.f32 s0, s0, s14 425 0028 36EE276A vadd.f32 s12, s12, s15 426 002c EDD1 bne .L109 427 .L108: 428 002e 80EE060A vdiv.f32 s0, s0, s12 429 0032 7047 bx lr 430 .L113: 431 .align 2 432 .L112: 433 0034 00000000 .word 0 435 .section .text.arm_canberra_distance_f32,"ax",%progbits 436 .align 1 437 .p2align 2,,3 438 .global arm_canberra_distance_f32 439 .syntax unified 440 .thumb 441 .thumb_func 442 .fpu fpv4-sp-d16 444 arm_canberra_distance_f32: 445 @ args = 0, pretend = 0, frame = 0 446 @ frame_needed = 0, uses_anonymous_args = 0 447 @ link register save eliminated. 448 0000 9FED110A vldr.32 s0, .L121 449 0004 F2B1 cbz r2, .L119 450 .L118: 451 0006 F0EC017A vldmia.32 r0!, {s15} 452 000a B1EC016A vldmia.32 r1!, {s12} 453 000e F5EE407A vcmp.f32 s15, #0 454 0012 77EEC66A vsub.f32 s13, s15, s12 455 0016 F0EEC65A vabs.f32 s11, s12 456 001a B0EEE77A vabs.f32 s14, s15 457 001e F1EE10FA vmrs APSR_nzcv, FPSCR 458 0022 37EE257A vadd.f32 s14, s14, s11 459 0026 F0EEE66A vabs.f32 s13, s13 460 002a 04D1 bne .L116 461 002c B5EE406A vcmp.f32 s12, #0 462 0030 F1EE10FA vmrs APSR_nzcv, FPSCR 463 0034 03D0 beq .L117 464 .L116: 465 0036 C6EE877A vdiv.f32 s15, s13, s14 466 003a 30EE270A vadd.f32 s0, s0, s15 467 .L117: ARM GAS /tmp/ccHLWtTw.s page 9 468 003e 013A subs r2, r2, #1 469 0040 E1D1 bne .L118 470 0042 7047 bx lr 471 .L119: 472 0044 7047 bx lr 473 .L122: 474 0046 00BF .align 2 475 .L121: 476 0048 00000000 .word 0 478 .section .text.arm_chebyshev_distance_f32,"ax",%progbits 479 .align 1 480 .p2align 2,,3 481 .global arm_chebyshev_distance_f32 482 .syntax unified 483 .thumb 484 .thumb_func 485 .fpu fpv4-sp-d16 487 arm_chebyshev_distance_f32: 488 @ args = 0, pretend = 0, frame = 0 489 @ frame_needed = 0, uses_anonymous_args = 0 490 @ link register save eliminated. 491 0000 B0EC010A vldmia.32 r0!, {s0} 492 0004 F1EC017A vldmia.32 r1!, {s15} 493 0008 30EE670A vsub.f32 s0, s0, s15 494 000c 013A subs r2, r2, #1 495 000e B0EEC00A vabs.f32 s0, s0 496 0012 10D0 beq .L123 497 .L126: 498 0014 F0EC017A vldmia.32 r0!, {s15} 499 0018 B1EC017A vldmia.32 r1!, {s14} 500 001c 77EEC77A vsub.f32 s15, s15, s14 501 0020 F0EEE77A vabs.f32 s15, s15 502 0024 B4EE670A vcmp.f32 s0, s15 503 0028 F1EE10FA vmrs APSR_nzcv, FPSCR 504 002c 48BF it mi 505 002e B0EE670A vmovmi.f32 s0, s15 506 0032 013A subs r2, r2, #1 507 0034 EED1 bne .L126 508 .L123: 509 0036 7047 bx lr 511 .section .text.arm_cityblock_distance_f32,"ax",%progbits 512 .align 1 513 .p2align 2,,3 514 .global arm_cityblock_distance_f32 515 .syntax unified 516 .thumb 517 .thumb_func 518 .fpu fpv4-sp-d16 520 arm_cityblock_distance_f32: 521 @ args = 0, pretend = 0, frame = 0 522 @ frame_needed = 0, uses_anonymous_args = 0 523 @ link register save eliminated. 524 0000 9FED080A vldr.32 s0, .L137 525 0004 62B1 cbz r2, .L135 526 .L134: 527 0006 F0EC017A vldmia.32 r0!, {s15} 528 000a B1EC017A vldmia.32 r1!, {s14} ARM GAS /tmp/ccHLWtTw.s page 10 529 000e 77EEC77A vsub.f32 s15, s15, s14 530 0012 013A subs r2, r2, #1 531 0014 F0EEE77A vabs.f32 s15, s15 532 0018 30EE270A vadd.f32 s0, s0, s15 533 001c F3D1 bne .L134 534 001e 7047 bx lr 535 .L135: 536 0020 7047 bx lr 537 .L138: 538 0022 00BF .align 2 539 .L137: 540 0024 00000000 .word 0 542 .section .text.arm_correlation_distance_f32,"ax",%progbits 543 .align 1 544 .p2align 2,,3 545 .global arm_correlation_distance_f32 546 .syntax unified 547 .thumb 548 .thumb_func 549 .fpu fpv4-sp-d16 551 arm_correlation_distance_f32: 552 @ args = 0, pretend = 0, frame = 24 553 @ frame_needed = 0, uses_anonymous_args = 0 554 0000 70B5 push {r4, r5, r6, lr} 555 0002 1446 mov r4, r2 556 0004 86B0 sub sp, sp, #24 557 0006 0D46 mov r5, r1 558 0008 01AA add r2, sp, #4 559 000a 2146 mov r1, r4 560 000c 0646 mov r6, r0 561 000e FFF7FEFF bl arm_mean_f32 562 0012 02AA add r2, sp, #8 563 0014 2146 mov r1, r4 564 0016 2846 mov r0, r5 565 0018 FFF7FEFF bl arm_mean_f32 566 001c 9DED010A vldr.32 s0, [sp, #4] 567 0020 2246 mov r2, r4 568 0022 3146 mov r1, r6 569 0024 B1EE400A vneg.f32 s0, s0 570 0028 3046 mov r0, r6 571 002a FFF7FEFF bl arm_offset_f32 572 002e 9DED020A vldr.32 s0, [sp, #8] 573 0032 2246 mov r2, r4 574 0034 B1EE400A vneg.f32 s0, s0 575 0038 2946 mov r1, r5 576 003a 2846 mov r0, r5 577 003c FFF7FEFF bl arm_offset_f32 578 0040 03AA add r2, sp, #12 579 0042 2146 mov r1, r4 580 0044 3046 mov r0, r6 581 0046 FFF7FEFF bl arm_power_f32 582 004a 04AA add r2, sp, #16 583 004c 2146 mov r1, r4 584 004e 2846 mov r0, r5 585 0050 FFF7FEFF bl arm_power_f32 586 0054 05AB add r3, sp, #20 587 0056 2246 mov r2, r4 ARM GAS /tmp/ccHLWtTw.s page 11 588 0058 2946 mov r1, r5 589 005a 3046 mov r0, r6 590 005c FFF7FEFF bl arm_dot_prod_f32 591 0060 07EE904A vmov s15, r4 @ int 592 0064 DDED036A vldr.32 s13, [sp, #12] 593 0068 9DED047A vldr.32 s14, [sp, #16] 594 006c 9DED056A vldr.32 s12, [sp, #20] 595 0070 F8EE677A vcvt.f32.u32 s15, s15 596 0074 86EEA70A vdiv.f32 s0, s13, s15 597 0078 C7EE276A vdiv.f32 s13, s14, s15 598 007c 86EE277A vdiv.f32 s14, s12, s15 599 0080 8DED030A vstr.32 s0, [sp, #12] 600 0084 20EE260A vmul.f32 s0, s0, s13 601 0088 CDED046A vstr.32 s13, [sp, #16] 602 008c B5EEC00A vcmpe.f32 s0, #0 603 0090 F1EE10FA vmrs APSR_nzcv, FPSCR 604 0094 8DED057A vstr.32 s14, [sp, #20] 605 0098 0EDB blt .L147 606 009a B5EE400A vcmp.f32 s0, #0 607 009e F1EE10FA vmrs APSR_nzcv, FPSCR 608 00a2 0CD4 bmi .L148 609 00a4 F1EEC07A vsqrt.f32 s15, s0 610 .L140: 611 00a8 C7EE276A vdiv.f32 s13, s14, s15 612 00ac B7EE000A vmov.f32 s0, #1.0e+0 613 00b0 30EE660A vsub.f32 s0, s0, s13 614 00b4 06B0 add sp, sp, #24 615 @ sp needed 616 00b6 70BD pop {r4, r5, r6, pc} 617 .L147: 618 00b8 DFED047A vldr.32 s15, .L150 619 00bc F4E7 b .L140 620 .L148: 621 00be FFF7FEFF bl sqrtf 622 00c2 9DED057A vldr.32 s14, [sp, #20] 623 00c6 F0EE407A vmov.f32 s15, s0 624 00ca EDE7 b .L140 625 .L151: 626 .align 2 627 .L150: 628 00cc 00000000 .word 0 630 .section .text.arm_cosine_distance_f32,"ax",%progbits 631 .align 1 632 .p2align 2,,3 633 .global arm_cosine_distance_f32 634 .syntax unified 635 .thumb 636 .thumb_func 637 .fpu fpv4-sp-d16 639 arm_cosine_distance_f32: 640 @ args = 0, pretend = 0, frame = 16 641 @ frame_needed = 0, uses_anonymous_args = 0 642 0000 70B5 push {r4, r5, r6, lr} 643 0002 1446 mov r4, r2 644 0004 84B0 sub sp, sp, #16 645 0006 0D46 mov r5, r1 646 0008 01AA add r2, sp, #4 ARM GAS /tmp/ccHLWtTw.s page 12 647 000a 2146 mov r1, r4 648 000c 0646 mov r6, r0 649 000e FFF7FEFF bl arm_power_f32 650 0012 02AA add r2, sp, #8 651 0014 2146 mov r1, r4 652 0016 2846 mov r0, r5 653 0018 FFF7FEFF bl arm_power_f32 654 001c 03AB add r3, sp, #12 655 001e 2246 mov r2, r4 656 0020 2946 mov r1, r5 657 0022 3046 mov r0, r6 658 0024 FFF7FEFF bl arm_dot_prod_f32 659 0028 9DED010A vldr.32 s0, [sp, #4] 660 002c DDED027A vldr.32 s15, [sp, #8] 661 0030 20EE270A vmul.f32 s0, s0, s15 662 0034 B5EEC00A vcmpe.f32 s0, #0 663 0038 F1EE10FA vmrs APSR_nzcv, FPSCR 664 003c 10DB blt .L160 665 003e B5EE400A vcmp.f32 s0, #0 666 0042 F1EE10FA vmrs APSR_nzcv, FPSCR 667 0046 0ED4 bmi .L161 668 0048 F1EEC07A vsqrt.f32 s15, s0 669 .L153: 670 004c DDED036A vldr.32 s13, [sp, #12] 671 0050 86EEA77A vdiv.f32 s14, s13, s15 672 0054 B7EE000A vmov.f32 s0, #1.0e+0 673 0058 30EE470A vsub.f32 s0, s0, s14 674 005c 04B0 add sp, sp, #16 675 @ sp needed 676 005e 70BD pop {r4, r5, r6, pc} 677 .L160: 678 0060 DFED037A vldr.32 s15, .L163 679 0064 F2E7 b .L153 680 .L161: 681 0066 FFF7FEFF bl sqrtf 682 006a F0EE407A vmov.f32 s15, s0 683 006e EDE7 b .L153 684 .L164: 685 .align 2 686 .L163: 687 0070 00000000 .word 0 689 .global __aeabi_ui2d 690 .global __aeabi_dadd 691 .global __aeabi_ddiv 692 .global __aeabi_d2f 693 .section .text.arm_dice_distance,"ax",%progbits 694 .align 1 695 .p2align 2,,3 696 .global arm_dice_distance 697 .syntax unified 698 .thumb 699 .thumb_func 700 .fpu fpv4-sp-d16 702 arm_dice_distance: 703 @ args = 0, pretend = 0, frame = 16 704 @ frame_needed = 0, uses_anonymous_args = 0 705 0000 2DE9F041 push {r4, r5, r6, r7, r8, lr} ARM GAS /tmp/ccHLWtTw.s page 13 706 0004 86B0 sub sp, sp, #24 707 0006 05AD add r5, sp, #20 708 0008 04AB add r3, sp, #16 709 000a CDE90035 strd r3, r5, [sp] 710 000e 0024 movs r4, #0 711 0010 03AB add r3, sp, #12 712 0012 CDE90344 strd r4, r4, [sp, #12] 713 0016 0594 str r4, [sp, #20] 714 0018 FFF7FEFF bl arm_boolean_distance_TT_TF_FT 715 001c DDE90487 ldrd r8, r7, [sp, #16] 716 0020 08EB0700 add r0, r8, r7 717 0024 FFF7FEFF bl __aeabi_ui2d 718 0028 0446 mov r4, r0 719 002a 0398 ldr r0, [sp, #12] 720 002c 0D46 mov r5, r1 721 002e FFF7FEFF bl __aeabi_ui2d 722 0032 0B46 mov r3, r1 723 0034 0246 mov r2, r0 724 0036 FFF7FEFF bl __aeabi_dadd 725 003a 0246 mov r2, r0 726 003c 3846 mov r0, r7 727 003e 1646 mov r6, r2 728 0040 0F46 mov r7, r1 729 0042 FFF7FEFF bl __aeabi_ui2d 730 0046 0246 mov r2, r0 731 0048 0B46 mov r3, r1 732 004a 3046 mov r0, r6 733 004c 3946 mov r1, r7 734 004e FFF7FEFF bl __aeabi_dadd 735 0052 0646 mov r6, r0 736 0054 4046 mov r0, r8 737 0056 0F46 mov r7, r1 738 0058 FFF7FEFF bl __aeabi_ui2d 739 005c 0246 mov r2, r0 740 005e 0B46 mov r3, r1 741 0060 3046 mov r0, r6 742 0062 3946 mov r1, r7 743 0064 FFF7FEFF bl __aeabi_dadd 744 0068 0246 mov r2, r0 745 006a 0B46 mov r3, r1 746 006c 2046 mov r0, r4 747 006e 2946 mov r1, r5 748 0070 FFF7FEFF bl __aeabi_ddiv 749 0074 FFF7FEFF bl __aeabi_d2f 750 0078 00EE100A vmov s0, r0 751 007c 06B0 add sp, sp, #24 752 @ sp needed 753 007e BDE8F081 pop {r4, r5, r6, r7, r8, pc} 755 0082 00BF .section .text.arm_euclidean_distance_f32,"ax",%progbits 756 .align 1 757 .p2align 2,,3 758 .global arm_euclidean_distance_f32 759 .syntax unified 760 .thumb 761 .thumb_func 762 .fpu fpv4-sp-d16 764 arm_euclidean_distance_f32: ARM GAS /tmp/ccHLWtTw.s page 14 765 @ args = 0, pretend = 0, frame = 0 766 @ frame_needed = 0, uses_anonymous_args = 0 767 @ link register save eliminated. 768 0000 9FED107A vldr.32 s14, .L181 769 0004 9AB1 cbz r2, .L168 770 .L169: 771 0006 F0EC017A vldmia.32 r0!, {s15} 772 000a F1EC016A vldmia.32 r1!, {s13} 773 000e 77EEE67A vsub.f32 s15, s15, s13 774 0012 013A subs r2, r2, #1 775 0014 A7EEA77A vfma.f32 s14, s15, s15 776 0018 F5D1 bne .L169 777 001a B5EEC07A vcmpe.f32 s14, #0 778 001e F1EE10FA vmrs APSR_nzcv, FPSCR 779 0022 07DB blt .L178 780 0024 B5EE407A vcmp.f32 s14, #0 781 0028 F1EE10FA vmrs APSR_nzcv, FPSCR 782 002c 05D4 bmi .L180 783 .L168: 784 002e B1EEC70A vsqrt.f32 s0, s14 785 0032 7047 bx lr 786 .L178: 787 0034 9FED030A vldr.32 s0, .L181 788 0038 7047 bx lr 789 .L180: 790 003a B0EE470A vmov.f32 s0, s14 791 003e FFF7FEBF b sqrtf 792 .L182: 793 0042 00BF .align 2 794 .L181: 795 0044 00000000 .word 0 797 .section .text.arm_hamming_distance,"ax",%progbits 798 .align 1 799 .p2align 2,,3 800 .global arm_hamming_distance 801 .syntax unified 802 .thumb 803 .thumb_func 804 .fpu fpv4-sp-d16 806 arm_hamming_distance: 807 @ args = 0, pretend = 0, frame = 8 808 @ frame_needed = 0, uses_anonymous_args = 0 809 0000 70B5 push {r4, r5, r6, lr} 810 0002 0023 movs r3, #0 811 0004 84B0 sub sp, sp, #16 812 0006 CDE90233 strd r3, r3, [sp, #8] 813 000a 03AB add r3, sp, #12 814 000c 0093 str r3, [sp] 815 000e 02AB add r3, sp, #8 816 0010 1646 mov r6, r2 817 0012 FFF7FEFF bl arm_boolean_distance_TF_FT 818 0016 DDE90203 ldrd r0, r3, [sp, #8] 819 001a 1844 add r0, r0, r3 820 001c FFF7FEFF bl __aeabi_ui2d 821 0020 0446 mov r4, r0 822 0022 3046 mov r0, r6 823 0024 0D46 mov r5, r1 ARM GAS /tmp/ccHLWtTw.s page 15 824 0026 FFF7FEFF bl __aeabi_ui2d 825 002a 0246 mov r2, r0 826 002c 0B46 mov r3, r1 827 002e 2046 mov r0, r4 828 0030 2946 mov r1, r5 829 0032 FFF7FEFF bl __aeabi_ddiv 830 0036 FFF7FEFF bl __aeabi_d2f 831 003a 00EE100A vmov s0, r0 832 003e 04B0 add sp, sp, #16 833 @ sp needed 834 0040 70BD pop {r4, r5, r6, pc} 836 0042 00BF .section .text.arm_jaccard_distance,"ax",%progbits 837 .align 1 838 .p2align 2,,3 839 .global arm_jaccard_distance 840 .syntax unified 841 .thumb 842 .thumb_func 843 .fpu fpv4-sp-d16 845 arm_jaccard_distance: 846 @ args = 0, pretend = 0, frame = 16 847 @ frame_needed = 0, uses_anonymous_args = 0 848 0000 D0B5 push {r4, r6, r7, lr} 849 0002 86B0 sub sp, sp, #24 850 0004 05AE add r6, sp, #20 851 0006 04AB add r3, sp, #16 852 0008 CDE90036 strd r3, r6, [sp] 853 000c 0024 movs r4, #0 854 000e 03AB add r3, sp, #12 855 0010 CDE90344 strd r4, r4, [sp, #12] 856 0014 0594 str r4, [sp, #20] 857 0016 FFF7FEFF bl arm_boolean_distance_TT_TF_FT 858 001a DDE90443 ldrd r4, r3, [sp, #16] 859 001e 1C44 add r4, r4, r3 860 0020 2046 mov r0, r4 861 0022 FFF7FEFF bl __aeabi_ui2d 862 0026 039B ldr r3, [sp, #12] 863 0028 0646 mov r6, r0 864 002a E018 adds r0, r4, r3 865 002c 0F46 mov r7, r1 866 002e FFF7FEFF bl __aeabi_ui2d 867 0032 0246 mov r2, r0 868 0034 0B46 mov r3, r1 869 0036 3046 mov r0, r6 870 0038 3946 mov r1, r7 871 003a FFF7FEFF bl __aeabi_ddiv 872 003e FFF7FEFF bl __aeabi_d2f 873 0042 00EE100A vmov s0, r0 874 0046 06B0 add sp, sp, #24 875 @ sp needed 876 0048 D0BD pop {r4, r6, r7, pc} 878 004a 00BF .section .text.arm_jensenshannon_distance_f32,"ax",%progbits 879 .align 1 880 .p2align 2,,3 881 .global arm_jensenshannon_distance_f32 882 .syntax unified 883 .thumb ARM GAS /tmp/ccHLWtTw.s page 16 884 .thumb_func 885 .fpu fpv4-sp-d16 887 arm_jensenshannon_distance_f32: 888 @ args = 0, pretend = 0, frame = 0 889 @ frame_needed = 0, uses_anonymous_args = 0 890 0000 70B5 push {r4, r5, r6, lr} 891 0002 2DED068B vpush.64 {d8, d9, d10} 892 0006 A2B3 cbz r2, .L194 893 0008 9FED21AA vldr.32 s20, .L202 894 000c 0446 mov r4, r0 895 000e F0EE4A9A vmov.f32 s19, s20 896 0012 0D46 mov r5, r1 897 0014 00EB8206 add r6, r0, r2, lsl #2 898 0018 F6EE00AA vmov.f32 s21, #5.0e-1 899 .L189: 900 001c F4EC018A vldmia.32 r4!, {s17} 901 0020 95ED008A vldr.32 s16, [r5] 902 0024 38EE888A vadd.f32 s16, s17, s16 903 0028 28EE2A8A vmul.f32 s16, s16, s21 904 002c 88EE880A vdiv.f32 s0, s17, s16 905 0030 FFF7FEFF bl logf 906 0034 B5EC019A vldmia.32 r5!, {s18} 907 0038 E8EE809A vfma.f32 s19, s17, s0 908 003c 89EE080A vdiv.f32 s0, s18, s16 909 0040 FFF7FEFF bl logf 910 0044 B442 cmp r4, r6 911 0046 A9EE00AA vfma.f32 s20, s18, s0 912 004a E7D1 bne .L189 913 004c 79EE8A9A vadd.f32 s19, s19, s20 914 0050 69EEAA9A vmul.f32 s19, s19, s21 915 0054 F5EEC09A vcmpe.f32 s19, #0 916 0058 F1EE10FA vmrs APSR_nzcv, FPSCR 917 005c 0CDB blt .L198 918 005e F5EE409A vcmp.f32 s19, #0 919 0062 F1EE10FA vmrs APSR_nzcv, FPSCR 920 0066 0AD4 bmi .L201 921 .L188: 922 0068 B1EEE90A vsqrt.f32 s0, s19 923 .L187: 924 006c BDEC068B vldm sp!, {d8-d10} 925 0070 70BD pop {r4, r5, r6, pc} 926 .L194: 927 0072 DFED079A vldr.32 s19, .L202 928 0076 F7E7 b .L188 929 .L198: 930 0078 9FED050A vldr.32 s0, .L202 931 007c F6E7 b .L187 932 .L201: 933 007e B0EE690A vmov.f32 s0, s19 934 0082 BDEC068B vldm sp!, {d8-d10} 935 0086 BDE87040 pop {r4, r5, r6, lr} 936 008a FFF7FEBF b sqrtf 937 .L203: 938 008e 00BF .align 2 939 .L202: 940 0090 00000000 .word 0 942 .section .text.arm_kulsinski_distance,"ax",%progbits ARM GAS /tmp/ccHLWtTw.s page 17 943 .align 1 944 .p2align 2,,3 945 .global arm_kulsinski_distance 946 .syntax unified 947 .thumb 948 .thumb_func 949 .fpu fpv4-sp-d16 951 arm_kulsinski_distance: 952 @ args = 0, pretend = 0, frame = 16 953 @ frame_needed = 0, uses_anonymous_args = 0 954 0000 30B5 push {r4, r5, lr} 955 0002 87B0 sub sp, sp, #28 956 0004 0023 movs r3, #0 957 0006 CDE90333 strd r3, r3, [sp, #12] 958 000a 0593 str r3, [sp, #20] 959 000c 05AB add r3, sp, #20 960 000e 0193 str r3, [sp, #4] 961 0010 04AB add r3, sp, #16 962 0012 0093 str r3, [sp] 963 0014 03AB add r3, sp, #12 964 0016 1446 mov r4, r2 965 0018 FFF7FEFF bl arm_boolean_distance_TT_TF_FT 966 001c DDE90453 ldrd r5, r3, [sp, #16] 967 0020 0398 ldr r0, [sp, #12] 968 0022 1D44 add r5, r5, r3 969 0024 281A subs r0, r5, r0 970 0026 2044 add r0, r0, r4 971 0028 FFF7FEFF bl __aeabi_ui2d 972 002c 0246 mov r2, r0 973 002e 2819 adds r0, r5, r4 974 0030 1446 mov r4, r2 975 0032 0D46 mov r5, r1 976 0034 FFF7FEFF bl __aeabi_ui2d 977 0038 0246 mov r2, r0 978 003a 0B46 mov r3, r1 979 003c 2046 mov r0, r4 980 003e 2946 mov r1, r5 981 0040 FFF7FEFF bl __aeabi_ddiv 982 0044 FFF7FEFF bl __aeabi_d2f 983 0048 00EE100A vmov s0, r0 984 004c 07B0 add sp, sp, #28 985 @ sp needed 986 004e 30BD pop {r4, r5, pc} 988 .section .text.arm_minkowski_distance_f32,"ax",%progbits 989 .align 1 990 .p2align 2,,3 991 .global arm_minkowski_distance_f32 992 .syntax unified 993 .thumb 994 .thumb_func 995 .fpu fpv4-sp-d16 997 arm_minkowski_distance_f32: 998 @ args = 0, pretend = 0, frame = 0 999 @ frame_needed = 0, uses_anonymous_args = 0 1000 0000 70B5 push {r4, r5, r6, lr} 1001 0002 2DED028B vpush.64 {d8} 1002 0006 08EE902A vmov s17, r2 @ int ARM GAS /tmp/ccHLWtTw.s page 18 1003 000a 1BB3 cbz r3, .L207 1004 000c F8EEE88A vcvt.f32.s32 s17, s17 1005 0010 9FED138A vldr.32 s16, .L212 1006 0014 0446 mov r4, r0 1007 0016 0D46 mov r5, r1 1008 0018 00EB8306 add r6, r0, r3, lsl #2 1009 .L208: 1010 001c B4EC010A vldmia.32 r4!, {s0} 1011 0020 F5EC017A vldmia.32 r5!, {s15} 1012 0024 30EE670A vsub.f32 s0, s0, s15 1013 0028 F0EE680A vmov.f32 s1, s17 1014 002c B0EEC00A vabs.f32 s0, s0 1015 0030 FFF7FEFF bl powf 1016 0034 B442 cmp r4, r6 1017 0036 38EE008A vadd.f32 s16, s16, s0 1018 003a EFD1 bne .L208 1019 .L209: 1020 003c F7EE000A vmov.f32 s1, #1.0e+0 1021 0040 C0EEA80A vdiv.f32 s1, s1, s17 1022 0044 B0EE480A vmov.f32 s0, s16 1023 0048 BDEC028B vldm sp!, {d8} 1024 004c BDE87040 pop {r4, r5, r6, lr} 1025 0050 FFF7FEBF b powf 1026 .L207: 1027 0054 F8EEE88A vcvt.f32.s32 s17, s17 1028 0058 9FED018A vldr.32 s16, .L212 1029 005c EEE7 b .L209 1030 .L213: 1031 005e 00BF .align 2 1032 .L212: 1033 0060 00000000 .word 0 1035 .section .text.arm_rogerstanimoto_distance,"ax",%progbits 1036 .align 1 1037 .p2align 2,,3 1038 .global arm_rogerstanimoto_distance 1039 .syntax unified 1040 .thumb 1041 .thumb_func 1042 .fpu fpv4-sp-d16 1044 arm_rogerstanimoto_distance: 1045 @ args = 0, pretend = 0, frame = 16 1046 @ frame_needed = 0, uses_anonymous_args = 0 1047 0000 D0B5 push {r4, r6, r7, lr} 1048 0002 88B0 sub sp, sp, #32 1049 0004 07AE add r6, sp, #28 1050 0006 06AB add r3, sp, #24 1051 0008 CDE90136 strd r3, r6, [sp, #4] 1052 000c 05AB add r3, sp, #20 1053 000e 0024 movs r4, #0 1054 0010 0093 str r3, [sp] 1055 0012 04AB add r3, sp, #16 1056 0014 CDE90444 strd r4, r4, [sp, #16] 1057 0018 CDE90644 strd r4, r4, [sp, #24] 1058 001c FFF7FEFF bl arm_boolean_distance_TT_FF_TF_FT 1059 0020 DDE90643 ldrd r4, r3, [sp, #24] 1060 0024 1C44 add r4, r4, r3 1061 0026 6400 lsls r4, r4, #1 ARM GAS /tmp/ccHLWtTw.s page 19 1062 0028 2046 mov r0, r4 1063 002a FFF7FEFF bl __aeabi_ui2d 1064 002e DDE90432 ldrd r3, r2, [sp, #16] 1065 0032 0646 mov r6, r0 1066 0034 9818 adds r0, r3, r2 1067 0036 2044 add r0, r0, r4 1068 0038 0F46 mov r7, r1 1069 003a FFF7FEFF bl __aeabi_ui2d 1070 003e 0246 mov r2, r0 1071 0040 0B46 mov r3, r1 1072 0042 3046 mov r0, r6 1073 0044 3946 mov r1, r7 1074 0046 FFF7FEFF bl __aeabi_ddiv 1075 004a FFF7FEFF bl __aeabi_d2f 1076 004e 00EE100A vmov s0, r0 1077 0052 08B0 add sp, sp, #32 1078 @ sp needed 1079 0054 D0BD pop {r4, r6, r7, pc} 1081 .global __aeabi_f2d 1082 0056 00BF .section .text.arm_russellrao_distance,"ax",%progbits 1083 .align 1 1084 .p2align 2,,3 1085 .global arm_russellrao_distance 1086 .syntax unified 1087 .thumb 1088 .thumb_func 1089 .fpu fpv4-sp-d16 1091 arm_russellrao_distance: 1092 @ args = 0, pretend = 0, frame = 8 1093 @ frame_needed = 0, uses_anonymous_args = 0 1094 0000 30B5 push {r4, r5, lr} 1095 0002 83B0 sub sp, sp, #12 1096 0004 0023 movs r3, #0 1097 0006 0193 str r3, [sp, #4] 1098 0008 01AB add r3, sp, #4 1099 000a 1446 mov r4, r2 1100 000c FFF7FEFF bl arm_boolean_distance_TT 1101 0010 0198 ldr r0, [sp, #4] 1102 0012 201A subs r0, r4, r0 1103 0014 FFF7FEFF bl __aeabi_ui2d 1104 0018 07EE904A vmov s15, r4 @ int 1105 001c F8EE677A vcvt.f32.u32 s15, s15 1106 0020 0246 mov r2, r0 1107 0022 17EE900A vmov r0, s15 1108 0026 1446 mov r4, r2 1109 0028 0D46 mov r5, r1 1110 002a FFF7FEFF bl __aeabi_f2d 1111 002e 0246 mov r2, r0 1112 0030 0B46 mov r3, r1 1113 0032 2046 mov r0, r4 1114 0034 2946 mov r1, r5 1115 0036 FFF7FEFF bl __aeabi_ddiv 1116 003a FFF7FEFF bl __aeabi_d2f 1117 003e 00EE100A vmov s0, r0 1118 0042 03B0 add sp, sp, #12 1119 @ sp needed 1120 0044 30BD pop {r4, r5, pc} ARM GAS /tmp/ccHLWtTw.s page 20 1122 0046 00BF .section .text.arm_sokalmichener_distance,"ax",%progbits 1123 .align 1 1124 .p2align 2,,3 1125 .global arm_sokalmichener_distance 1126 .syntax unified 1127 .thumb 1128 .thumb_func 1129 .fpu fpv4-sp-d16 1131 arm_sokalmichener_distance: 1132 @ args = 0, pretend = 0, frame = 16 1133 @ frame_needed = 0, uses_anonymous_args = 0 1134 0000 30B5 push {r4, r5, lr} 1135 0002 2DED028B vpush.64 {d8} 1136 0006 89B0 sub sp, sp, #36 1137 0008 07AB add r3, sp, #28 1138 000a 06AD add r5, sp, #24 1139 000c CDE90135 strd r3, r5, [sp, #4] 1140 0010 05AB add r3, sp, #20 1141 0012 0024 movs r4, #0 1142 0014 0093 str r3, [sp] 1143 0016 04AB add r3, sp, #16 1144 0018 CDE90444 strd r4, r4, [sp, #16] 1145 001c CDE90644 strd r4, r4, [sp, #24] 1146 0020 FFF7FEFF bl arm_boolean_distance_TT_FF_TF_FT 1147 0024 DDE90630 ldrd r3, r0, [sp, #24] 1148 0028 1844 add r0, r0, r3 1149 002a FFF7FEFF bl __aeabi_ui2d 1150 002e 0246 mov r2, r0 1151 0030 0B46 mov r3, r1 1152 0032 FFF7FEFF bl __aeabi_dadd 1153 0036 FFF7FEFF bl __aeabi_d2f 1154 003a DDE90432 ldrd r3, r2, [sp, #16] 1155 003e 08EE100A vmov s16, r0 1156 0042 D018 adds r0, r2, r3 1157 0044 FFF7FEFF bl __aeabi_ui2d 1158 0048 FFF7FEFF bl __aeabi_d2f 1159 004c 07EE900A vmov s15, r0 1160 0050 37EE880A vadd.f32 s0, s15, s16 1161 0054 88EE000A vdiv.f32 s0, s16, s0 1162 0058 09B0 add sp, sp, #36 1163 @ sp needed 1164 005a BDEC028B vldm sp!, {d8} 1165 005e 30BD pop {r4, r5, pc} 1167 .section .text.arm_sokalsneath_distance,"ax",%progbits 1168 .align 1 1169 .p2align 2,,3 1170 .global arm_sokalsneath_distance 1171 .syntax unified 1172 .thumb 1173 .thumb_func 1174 .fpu fpv4-sp-d16 1176 arm_sokalsneath_distance: 1177 @ args = 0, pretend = 0, frame = 16 1178 @ frame_needed = 0, uses_anonymous_args = 0 1179 0000 30B5 push {r4, r5, lr} 1180 0002 87B0 sub sp, sp, #28 1181 0004 05AB add r3, sp, #20 ARM GAS /tmp/ccHLWtTw.s page 21 1182 0006 04AD add r5, sp, #16 1183 0008 CDE90035 strd r3, r5, [sp] 1184 000c 0024 movs r4, #0 1185 000e 03AB add r3, sp, #12 1186 0010 CDE90344 strd r4, r4, [sp, #12] 1187 0014 0594 str r4, [sp, #20] 1188 0016 FFF7FEFF bl arm_boolean_distance_TT_TF_FT 1189 001a DDE90430 ldrd r3, r0, [sp, #16] 1190 001e 1844 add r0, r0, r3 1191 0020 FFF7FEFF bl __aeabi_ui2d 1192 0024 0246 mov r2, r0 1193 0026 0B46 mov r3, r1 1194 0028 FFF7FEFF bl __aeabi_dadd 1195 002c FFF7FEFF bl __aeabi_d2f 1196 0030 DDED037A vldr.32 s15, [sp, #12] @ int 1197 0034 00EE100A vmov s0, r0 1198 0038 F8EE677A vcvt.f32.u32 s15, s15 1199 003c 77EE807A vadd.f32 s15, s15, s0 1200 0040 80EE270A vdiv.f32 s0, s0, s15 1201 0044 07B0 add sp, sp, #28 1202 @ sp needed 1203 0046 30BD pop {r4, r5, pc} 1205 .global __aeabi_dmul 1206 .section .text.arm_yule_distance,"ax",%progbits 1207 .align 1 1208 .p2align 2,,3 1209 .global arm_yule_distance 1210 .syntax unified 1211 .thumb 1212 .thumb_func 1213 .fpu fpv4-sp-d16 1215 arm_yule_distance: 1216 @ args = 0, pretend = 0, frame = 16 1217 @ frame_needed = 0, uses_anonymous_args = 0 1218 0000 F0B5 push {r4, r5, r6, r7, lr} 1219 0002 89B0 sub sp, sp, #36 1220 0004 07AD add r5, sp, #28 1221 0006 06AB add r3, sp, #24 1222 0008 CDE90135 strd r3, r5, [sp, #4] 1223 000c 05AB add r3, sp, #20 1224 000e 0024 movs r4, #0 1225 0010 0093 str r3, [sp] 1226 0012 04AB add r3, sp, #16 1227 0014 CDE90444 strd r4, r4, [sp, #16] 1228 0018 CDE90644 strd r4, r4, [sp, #24] 1229 001c FFF7FEFF bl arm_boolean_distance_TT_FF_TF_FT 1230 0020 DDE90603 ldrd r0, r3, [sp, #24] 1231 0024 03FB00F0 mul r0, r3, r0 1232 0028 4000 lsls r0, r0, #1 1233 002a FFF7FEFF bl __aeabi_ui2d 1234 002e DDE90432 ldrd r3, r2, [sp, #16] 1235 0032 0446 mov r4, r0 1236 0034 02FB03F0 mul r0, r2, r3 1237 0038 0D46 mov r5, r1 1238 003a FFF7FEFF bl __aeabi_ui2d 1239 003e 0D4B ldr r3, .L224 1240 0040 0646 mov r6, r0 ARM GAS /tmp/ccHLWtTw.s page 22 1241 0042 0F46 mov r7, r1 1242 0044 0022 movs r2, #0 1243 0046 2046 mov r0, r4 1244 0048 2946 mov r1, r5 1245 004a FFF7FEFF bl __aeabi_dmul 1246 004e 0246 mov r2, r0 1247 0050 0B46 mov r3, r1 1248 0052 3046 mov r0, r6 1249 0054 3946 mov r1, r7 1250 0056 FFF7FEFF bl __aeabi_dadd 1251 005a 0246 mov r2, r0 1252 005c 0B46 mov r3, r1 1253 005e 2046 mov r0, r4 1254 0060 2946 mov r1, r5 1255 0062 FFF7FEFF bl __aeabi_ddiv 1256 0066 FFF7FEFF bl __aeabi_d2f 1257 006a 00EE100A vmov s0, r0 1258 006e 09B0 add sp, sp, #36 1259 @ sp needed 1260 0070 F0BD pop {r4, r5, r6, r7, pc} 1261 .L225: 1262 0072 00BF .align 2 1263 .L224: 1264 0074 0000E03F .word 1071644672 1266 .ident "GCC: (15:10.3-2021.07-4) 10.3.1 20210621 (release)" ARM GAS /tmp/ccHLWtTw.s page 23 DEFINED SYMBOLS *ABS*:0000000000000000 DistanceFunctions.c /tmp/ccHLWtTw.s:16 .text.arm_boolean_distance_TT_TF_FT:0000000000000000 $t /tmp/ccHLWtTw.s:25 .text.arm_boolean_distance_TT_TF_FT:0000000000000000 arm_boolean_distance_TT_TF_FT /tmp/ccHLWtTw.s:122 .text.arm_boolean_distance_TF_FT:0000000000000000 $t /tmp/ccHLWtTw.s:130 .text.arm_boolean_distance_TF_FT:0000000000000000 arm_boolean_distance_TF_FT /tmp/ccHLWtTw.s:211 .text.arm_boolean_distance_TT_FF_TF_FT:0000000000000000 $t /tmp/ccHLWtTw.s:219 .text.arm_boolean_distance_TT_FF_TF_FT:0000000000000000 arm_boolean_distance_TT_FF_TF_FT /tmp/ccHLWtTw.s:328 .text.arm_boolean_distance_TT:0000000000000000 $t /tmp/ccHLWtTw.s:336 .text.arm_boolean_distance_TT:0000000000000000 arm_boolean_distance_TT /tmp/ccHLWtTw.s:401 .text.arm_braycurtis_distance_f32:0000000000000000 $t /tmp/ccHLWtTw.s:409 .text.arm_braycurtis_distance_f32:0000000000000000 arm_braycurtis_distance_f32 /tmp/ccHLWtTw.s:433 .text.arm_braycurtis_distance_f32:0000000000000034 $d /tmp/ccHLWtTw.s:436 .text.arm_canberra_distance_f32:0000000000000000 $t /tmp/ccHLWtTw.s:444 .text.arm_canberra_distance_f32:0000000000000000 arm_canberra_distance_f32 /tmp/ccHLWtTw.s:476 .text.arm_canberra_distance_f32:0000000000000048 $d /tmp/ccHLWtTw.s:479 .text.arm_chebyshev_distance_f32:0000000000000000 $t /tmp/ccHLWtTw.s:487 .text.arm_chebyshev_distance_f32:0000000000000000 arm_chebyshev_distance_f32 /tmp/ccHLWtTw.s:512 .text.arm_cityblock_distance_f32:0000000000000000 $t /tmp/ccHLWtTw.s:520 .text.arm_cityblock_distance_f32:0000000000000000 arm_cityblock_distance_f32 /tmp/ccHLWtTw.s:540 .text.arm_cityblock_distance_f32:0000000000000024 $d /tmp/ccHLWtTw.s:543 .text.arm_correlation_distance_f32:0000000000000000 $t /tmp/ccHLWtTw.s:551 .text.arm_correlation_distance_f32:0000000000000000 arm_correlation_distance_f32 /tmp/ccHLWtTw.s:628 .text.arm_correlation_distance_f32:00000000000000cc $d /tmp/ccHLWtTw.s:631 .text.arm_cosine_distance_f32:0000000000000000 $t /tmp/ccHLWtTw.s:639 .text.arm_cosine_distance_f32:0000000000000000 arm_cosine_distance_f32 /tmp/ccHLWtTw.s:687 .text.arm_cosine_distance_f32:0000000000000070 $d /tmp/ccHLWtTw.s:694 .text.arm_dice_distance:0000000000000000 $t /tmp/ccHLWtTw.s:702 .text.arm_dice_distance:0000000000000000 arm_dice_distance /tmp/ccHLWtTw.s:756 .text.arm_euclidean_distance_f32:0000000000000000 $t /tmp/ccHLWtTw.s:764 .text.arm_euclidean_distance_f32:0000000000000000 arm_euclidean_distance_f32 /tmp/ccHLWtTw.s:795 .text.arm_euclidean_distance_f32:0000000000000044 $d /tmp/ccHLWtTw.s:798 .text.arm_hamming_distance:0000000000000000 $t /tmp/ccHLWtTw.s:806 .text.arm_hamming_distance:0000000000000000 arm_hamming_distance /tmp/ccHLWtTw.s:837 .text.arm_jaccard_distance:0000000000000000 $t /tmp/ccHLWtTw.s:845 .text.arm_jaccard_distance:0000000000000000 arm_jaccard_distance /tmp/ccHLWtTw.s:879 .text.arm_jensenshannon_distance_f32:0000000000000000 $t /tmp/ccHLWtTw.s:887 .text.arm_jensenshannon_distance_f32:0000000000000000 arm_jensenshannon_distance_f32 /tmp/ccHLWtTw.s:940 .text.arm_jensenshannon_distance_f32:0000000000000090 $d /tmp/ccHLWtTw.s:943 .text.arm_kulsinski_distance:0000000000000000 $t /tmp/ccHLWtTw.s:951 .text.arm_kulsinski_distance:0000000000000000 arm_kulsinski_distance /tmp/ccHLWtTw.s:989 .text.arm_minkowski_distance_f32:0000000000000000 $t /tmp/ccHLWtTw.s:997 .text.arm_minkowski_distance_f32:0000000000000000 arm_minkowski_distance_f32 /tmp/ccHLWtTw.s:1033 .text.arm_minkowski_distance_f32:0000000000000060 $d /tmp/ccHLWtTw.s:1036 .text.arm_rogerstanimoto_distance:0000000000000000 $t /tmp/ccHLWtTw.s:1044 .text.arm_rogerstanimoto_distance:0000000000000000 arm_rogerstanimoto_distance /tmp/ccHLWtTw.s:1083 .text.arm_russellrao_distance:0000000000000000 $t /tmp/ccHLWtTw.s:1091 .text.arm_russellrao_distance:0000000000000000 arm_russellrao_distance /tmp/ccHLWtTw.s:1123 .text.arm_sokalmichener_distance:0000000000000000 $t /tmp/ccHLWtTw.s:1131 .text.arm_sokalmichener_distance:0000000000000000 arm_sokalmichener_distance /tmp/ccHLWtTw.s:1168 .text.arm_sokalsneath_distance:0000000000000000 $t /tmp/ccHLWtTw.s:1176 .text.arm_sokalsneath_distance:0000000000000000 arm_sokalsneath_distance /tmp/ccHLWtTw.s:1207 .text.arm_yule_distance:0000000000000000 $t /tmp/ccHLWtTw.s:1215 .text.arm_yule_distance:0000000000000000 arm_yule_distance /tmp/ccHLWtTw.s:1264 .text.arm_yule_distance:0000000000000074 $d UNDEFINED SYMBOLS ARM GAS /tmp/ccHLWtTw.s page 24 arm_mean_f32 arm_offset_f32 arm_power_f32 arm_dot_prod_f32 sqrtf __aeabi_ui2d __aeabi_dadd __aeabi_ddiv __aeabi_d2f logf powf __aeabi_f2d __aeabi_dmul