[mythtv] dynamic_cast generated code

Peter Bennett pb.mythtv at gmail.com
Mon Jan 27 22:24:58 UTC 2020


Hi Mark

Does this help?
It calls a function __dynamic_cast and puts the result in sp #120 which 
must be the location of dce. I can't see what __dynamic_cast is doing.

Peter

_the source_

795 void StandardSettingDialog::customEvent(QEvent *event)
796 {
797    if (event->type() == DialogCompletionEvent::kEventType)
798    {
799        auto dce = dynamic_cast<DialogCompletionEvent*>(event);
800        if (dce == nullptr)
801            return;

_the assembler from -S option_

         .text
         .globl  _ZN21StandardSettingDialog11customEventEP6QEvent // -- 
Begin function _ZN21StandardSettingDialog11customEventEP6QEvent
         .p2align        2
         .type _ZN21StandardSettingDialog11customEventEP6QEvent, at function
_ZN21StandardSettingDialog11customEventEP6QEvent: // 
@_ZN21StandardSettingDialog11customEventEP6QEvent
.Lfunc_begin167:
         .loc    68 796 0 is_stmt 1      // standardsettings.cpp:796:0
         .cfi_startproc
         .cfi_personality 156, DW.ref.__gxx_personality_v0
         .cfi_lsda 28, .Lexception51
// %bb.0:
         sub     sp, sp, #192            // =192
         str     x30, [sp, #176]         // 8-byte Folded Spill
         .cfi_def_cfa_offset 192
         .cfi_offset w30, -16
         mrs     x8, TPIDR_EL0
         ldr     x8, [x8, #40]
         str     x8, [sp, #168]
         str     x0, [sp, #136]
         str     x1, [sp, #128]
         ldr     x8, [sp, #136]
.Ltmp2139:
         .loc    68 797 9 prologue_end   // standardsettings.cpp:797:9
         ldr     x0, [sp, #128]
         str     x8, [sp, #72]           // 8-byte Folded Spill
         .loc    68 797 16 is_stmt 0     // standardsettings.cpp:797:16
         bl      _ZNK6QEvent4typeEv
         .loc    68 797 26               // standardsettings.cpp:797:26
         adrp    x8, :got:_ZN21DialogCompletionEvent10kEventTypeE
         ldr     x8, [x8, :got_lo12:_ZN21DialogCompletionEvent10kEventTypeE]
         ldr     w9, [x8]
.Ltmp2140:
         .loc    68 797 9                // standardsettings.cpp:797:9
         subs    w9, w0, w9
         b.ne    .LBB167_42
         b       .LBB167_1
.LBB167_1:
.Ltmp2141:
         .loc    68 799 57 is_stmt 1     // standardsettings.cpp:799:57
         ldr     x8, [sp, #128]
         mov     x0, x8
         str     x0, [sp, #64]           // 8-byte Folded Spill
         .loc    68 799 20 is_stmt 0     // standardsettings.cpp:799:20
         cbz     x8, .LBB167_3
         b       .LBB167_2
.LBB167_2:
         adrp    x1, :got:_ZTI6QEvent
         ldr     x1, [x1, :got_lo12:_ZTI6QEvent]
         adrp    x2, :got:_ZTI21DialogCompletionEvent
         ldr     x2, [x2, :got_lo12:_ZTI21DialogCompletionEvent]
         mov     x0, xzr
         ldr     x3, [sp, #64]           // 8-byte Folded Reload
         str     x0, [sp, #56]           // 8-byte Folded Spill
         mov     x0, x3
         ldr     x3, [sp, #56]           // 8-byte Folded Reload
         bl      __dynamic_cast
         str     x0, [sp, #48]           // 8-byte Folded Spill
         b       .LBB167_4
.LBB167_3:
         .loc    68 0 20                 // standardsettings.cpp:0:20
         mov     x0, xzr
         str     x0, [sp, #48]           // 8-byte Folded Spill
         .loc    68 799 20               // standardsettings.cpp:799:20
         b       .LBB167_4
.LBB167_4:
         .loc    68 0 20                 // standardsettings.cpp:0:20
         ldr     x8, [sp, #48]           // 8-byte Folded Reload
         .loc    68 799 14               // standardsettings.cpp:799:14
         str     x8, [sp, #120]
.Ltmp2142:
         .loc    68 800 13 is_stmt 1     // standardsettings.cpp:800:13
         ldr     x8, [sp, #120]
.Ltmp2143:
         .loc    68 800 13 is_stmt 0     // standardsettings.cpp:800:13
         cbnz    x8, .LBB167_6
         b       .LBB167_5
.LBB167_5:
.Ltmp2144:

-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.mythtv.org/pipermail/mythtv-dev/attachments/20200127/83f53e90/attachment.htm>


More information about the mythtv-dev mailing list