On 21/05/17 16:08, Florian Klämpfl wrote:
Am 21.05.2017 um 13:21 schrieb C Western:
On 21/05/17 11:56, Florian Klämpfl wrote:
Am 21.05.2017 um 11:23 schrieb C Western:
On 21/05/17 08:45, Florian Klämpfl wrote:
Am 20.05.2017 um 10:50 schrieb C Western:
The following revision seems to be generating bad code for me on linux/x86_64:

Can you please change line 26 in fpc compiler/x86/aoptx86.pas from
{ $define DEBUG_AOPTCPU}
to
{$define DEBUG_AOPTCPU}

and post the assembler output again?

See below.

Thanks. Last request ;): please send me the same output but compile 
additionally with -Oonopeephole

This code doesn't crash:

Can you please test without the -Oonopeephole and r36284?

This now works - excellent!

.section .text.n_logunit$_$tlogform_$__$$_formcreate$tobject
        .balign 16,0x90
.globl  LOGUNIT$_$TLOGFORM_$__$$_FORMCREATE$TOBJECT
        .type   LOGUNIT$_$TLOGFORM_$__$$_FORMCREATE$TOBJECT,@function
LOGUNIT$_$TLOGFORM_$__$$_FORMCREATE$TOBJECT:
.Lc1:
        # Register rsp allocated
.Ll1:
# [LogUnit.pas]
# [95] begin
        pushq   %rbx
        pushq   %r12
        pushq   %r13
        pushq   %r14
        pushq   %r15
.Lc3:
        # Register rdi,rsi,rax,r15,r15 allocated
        movq    %rdi,%r15
# Var $self located in register rax
        # Register rsi released
# Var Sender located in register rsi
        # Register rax released
# Var $self located in register r15
        # Register sil allocated
.Ll2:
# [96] DragAcceptFiles(Self, True);
        movb    $1,%sil
        # Register rax,rcx,rdx,rsi,rdi,r8,r9,r10,r11 allocated
        call    WCOMPAT_$$_DRAGACCEPTFILES$TCUSTOMFORM$BOOLEAN@PLT
        # Register rcx,rdx,rsi,rdi,r8,r9,r10,r11 released
        # Register rax allocated
.Ll3:
# [98] OnDropFiles := @FormDropFiles;
movq LOGUNIT$_$TLOGFORM_$__$$_FORMDROPFILES$TOBJECT$array_of_ANSISTRING@GOTPCREL(%rip),%rax
        movq    %rax,1736(%r15)
        # Register rax released
        movq    %r15,1744(%r15)
        # Register rax,rcx,rdx,rsi,rdi,r8,r9,r10,r11 allocated
.Ll4:
# [100] GlobalMixture.GetEnumNames(GlobalMixture.IndexOfSetting('PrintLevel'),OutputComboBox.Items);
        call    GLOBAL_$$_GLOBALMIXTURE$$TMIXTURE@PLT
        # Register rcx,rdx,rsi,rdi,r8,r9,r10,r11 released
        # Register r13 allocated
        movq    %rax,%r13
        # Register rax released
        # Register rax,rcx,rdx,rsi,rdi,r8,r9,r10,r11 allocated
        call    GLOBAL_$$_GLOBALMIXTURE$$TMIXTURE@PLT
        # Register rcx,rdx,rsi,r8,r9,r10,r11 released
        # Register rdi allocated
        movq    %rax,%rdi
        # Register rax released
        # Register rsi allocated
        leaq    .Ld2(%rip),%rsi
        # Register rax,rcx,rdx,rsi,rdi,r8,r9,r10,r11 allocated
        call    MNODE$_$TMNODE_$__$$_INDEXOFSETTING$ANSISTRING$$LONGINT@PLT
        # Register rcx,rdx,rsi,rdi,r8,r9,r10,r11 released
        # Register r12d allocated
        movl    %eax,%r12d
        # Register eax released
        # Register rax allocated
        movq    2048(%r15),%rax
        # Register rbx allocated
        movq    1424(%rax),%rbx
        # Register rax released
        # Register rax,r14,r14 allocated
        movq    %r13,%r14
        # Register rax released
        testq   %r13,%r13
        jne     .Lj6
        # Register rflags released
        # Register rax,rcx,rdx,rsi,rdi,r8,r9,r10,r11 allocated
        call    fpc_objecterror@PLT
        # Register rax,rcx,rdx,rsi,rdi,r8,r9,r10,r11 released
.Lj6:
        # Register rax allocated
        movq    (%r14),%r14
        # Register r14 released
        # Register r14 allocated
        # Register rax released
        # Register rdi allocated
        movq    %r14,%rdi
        # Register rax,rcx,rdx,rsi,rdi,r8,r9,r10,r11 allocated
        call    fpc_check_object@PLT
        # Register rax,rcx,rdx,rsi,r8,r9,r10,r11 released
        # Register rdi allocated
        movq    %r13,%rdi
        # Register r13 released
        # Register rdx allocated
        movq    %rbx,%rdx
        # Register rbx released
        # Register esi allocated
        movl    %r12d,%esi
        # Register rax,rcx,rdx,rsi,rdi,r8,r9,r10,r11 allocated
        call    *744(%r14)
        # Register rax,rcx,rdx,rsi,rdi,r8,r9,r10,r11 allocated
.Ll5:

_______________________________________________
fpc-devel maillist  -  fpc-devel@lists.freepascal.org
http://lists.freepascal.org/cgi-bin/mailman/listinfo/fpc-devel

Reply via email to