1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75
| (gdb) disas 0x0000aaaaaaab60a8 Dump of assembler code for function _ZN6OpenMP10dotProductERKSt6vectorIfSaIfEES4_._omp_fn.0(void): 0x0000aaaaaaab60a8 <+0>: stp x29, x30, [sp, #-80]! 0x0000aaaaaaab60ac <+4>: mov x29, sp 0x0000aaaaaaab60b0 <+8>: stp x19, x20, [sp, #16] 0x0000aaaaaaab60b4 <+12>: str d8, [sp, #32] 0x0000aaaaaaab60b8 <+16>: str x0, [x29, #56] 0x0000aaaaaaab60bc <+20>: str wzr, [x29, #68] 0x0000aaaaaaab60c0 <+24>: ldr x0, [x29, #56] 0x0000aaaaaaab60c4 <+28>: ldr w0, [x0, #16] 0x0000aaaaaaab60c8 <+32>: str w0, [x29, #76] 0x0000aaaaaaab60cc <+36>: ldr w19, [x29, #76] 0x0000aaaaaaab60d0 <+40>: bl 0xaaaaaaab2750 <omp_get_num_threads@plt> 0x0000aaaaaaab60d4 <+44>: mov w20, w0 0x0000aaaaaaab60d8 <+48>: bl 0xaaaaaaab26d0 <omp_get_thread_num@plt> 0x0000aaaaaaab60dc <+52>: mov w2, w0 0x0000aaaaaaab60e0 <+56>: sdiv w0, w19, w20 0x0000aaaaaaab60e4 <+60>: sdiv w1, w19, w20 0x0000aaaaaaab60e8 <+64>: mul w1, w1, w20 0x0000aaaaaaab60ec <+68>: sub w1, w19, w1 0x0000aaaaaaab60f0 <+72>: cmp w2, w1 0x0000aaaaaaab60f4 <+76>: b.lt 0xaaaaaaab61ac <_ZN6OpenMP10dotProductERKSt6vectorIfSaIfEES4_._omp_fn.0(void)+260> // b.tstop 0x0000aaaaaaab60f8 <+80>: mul w2, w0, w2 0x0000aaaaaaab60fc <+84>: add w1, w2, w1 0x0000aaaaaaab6100 <+88>: add w19, w1, w0 0x0000aaaaaaab6104 <+92>: cmp w1, w19 0x0000aaaaaaab6108 <+96>: b.ge 0xaaaaaaab6160 <_ZN6OpenMP10dotProductERKSt6vectorIfSaIfEES4_._omp_fn.0(void)+184> // b.tcont 0x0000aaaaaaab610c <+100>: str w1, [x29, #72] 0x0000aaaaaaab6110 <+104>: ldrsw x1, [x29, #72] 0x0000aaaaaaab6114 <+108>: ldr x0, [x29, #56] 0x0000aaaaaaab6118 <+112>: ldr x0, [x0] 0x0000aaaaaaab611c <+116>: bl 0xaaaaaaab6370 <std::vector<float, std::allocator<float> >::operator[](unsigned long) const> 0x0000aaaaaaab6120 <+120>: ldr s8, [x0] 0x0000aaaaaaab6124 <+124>: ldrsw x1, [x29, #72] 0x0000aaaaaaab6128 <+128>: ldr x0, [x29, #56] 0x0000aaaaaaab612c <+132>: ldr x0, [x0, #8] 0x0000aaaaaaab6130 <+136>: bl 0xaaaaaaab6370 <std::vector<float, std::allocator<float> >::operator[](unsigned long) const> 0x0000aaaaaaab6134 <+140>: ldr s0, [x0] 0x0000aaaaaaab6138 <+144>: fmul s0, s8, s0 0x0000aaaaaaab613c <+148>: ldr s1, [x29, #68] 0x0000aaaaaaab6140 <+152>: fadd s0, s1, s0 0x0000aaaaaaab6144 <+156>: str s0, [x29, #68] 0x0000aaaaaaab6148 <+160>: ldr w0, [x29, #72] 0x0000aaaaaaab614c <+164>: add w0, w0, #0x1 0x0000aaaaaaab6150 <+168>: str w0, [x29, #72] 0x0000aaaaaaab6154 <+172>: ldr w0, [x29, #72] 0x0000aaaaaaab6158 <+176>: cmp w0, w19 0x0000aaaaaaab615c <+180>: b.lt 0xaaaaaaab6110 <_ZN6OpenMP10dotProductERKSt6vectorIfSaIfEES4_._omp_fn.0+104> // b.tstop 0x0000aaaaaaab6160 <+184>: ldr x0, [x29, #56] 0x0000aaaaaaab6164 <+188>: add x0, x0, #0x14 0x0000aaaaaaab6168 <+192>: mov x1, x0 0x0000aaaaaaab616c <+196>: ldr w0, [x1] 0x0000aaaaaaab6170 <+200>: fmov s1, w0 0x0000aaaaaaab6174 <+204>: ldr s0, [x29, #68] 0x0000aaaaaaab6178 <+208>: fadd s0, s1, s0 0x0000aaaaaaab617c <+212>: fmov w3, s0 0x0000aaaaaaab6180 <+216>: ldxr w2, [x1] 0x0000aaaaaaab6184 <+220>: cmp w2, w0 0x0000aaaaaaab6188 <+224>: b.ne 0xaaaaaaab6194 <_ZN6OpenMP10dotProductERKSt6vectorIfSaIfEES4_._omp_fn.0(void)+236> // b.any 0x0000aaaaaaab618c <+228>: stlxr w4, w3, [x1] 0x0000aaaaaaab6190 <+232>: cbnz w4, 0xaaaaaaab6180 <_ZN6OpenMP10dotProductERKSt6vectorIfSaIfEES4_._omp_fn.0(void)+216> 0x0000aaaaaaab6194 <+236>: dmb ish 0x0000aaaaaaab6198 <+240>: mov w3, w0 0x0000aaaaaaab619c <+244>: mov w0, w2 0x0000aaaaaaab61a0 <+248>: cmp w2, w3 0x0000aaaaaaab61a4 <+252>: b.ne 0xaaaaaaab6170 <_ZN6OpenMP10dotProductERKSt6vectorIfSaIfEES4_._omp_fn.0(void)+200> // b.any 0x0000aaaaaaab61a8 <+256>: b 0xaaaaaaab61b8 <_ZN6OpenMP10dotProductERKSt6vectorIfSaIfEES4_._omp_fn.0(void)+272> 0x0000aaaaaaab61ac <+260>: mov w1, #0x0 // #0 0x0000aaaaaaab61b0 <+264>: add w0, w0, #0x1 0x0000aaaaaaab61b4 <+268>: b 0xaaaaaaab60f8 <_ZN6OpenMP10dotProductERKSt6vectorIfSaIfEES4_._omp_fn.0+80> 0x0000aaaaaaab61b8 <+272>: ldp x19, x20, [sp, #16] 0x0000aaaaaaab61bc <+276>: ldr d8, [sp, #32] 0x0000aaaaaaab61c0 <+280>: ldp x29, x30, [sp], #80 0x0000aaaaaaab61c4 <+284>: ret End of assembler dump.
|