This is the mail archive of the gcc@gcc.gnu.org mailing list for the GCC project.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]
Other format: [Raw text]

Re: [i386] Scalar DImode instructions on XMM registers


2015-05-22 11:53 GMT+03:00 Ilya Enkovich <enkovich.gnu@gmail.com>:
> 2015-05-21 22:08 GMT+03:00 Vladimir Makarov <vmakarov@redhat.com>:
>> So, Ilya, to solve the problem you need to avoid sharing subregs for the
>> correct LRA/reload work.
>>
>>
>
> Thanks a lot for your help! I'll fix it.
>
> Ilya

I've fixed SUBREG sharing and got a missing spill. I added
--enable-checking=rtl to check other possible bugs. Spill/fill code
still seems incorrect because different sizes are used.  Shouldn't
block me though.

.L5:
        movl    16(%esp), %eax
        addl    $8, %esi
        movl    20(%esp), %edx
        movl    %eax, (%esp)
        movl    %edx, 4(%esp)
        call    counter@PLT
        movq    -8(%esi), %xmm0
        **movdqa  16(%esp), %xmm2**
        pand    %xmm0, %xmm2
        movdqa  %xmm2, %xmm0
        movd    %xmm2, %edx
        **movq    %xmm2, 16(%esp)**
        psrlq   $32, %xmm0
        movd    %xmm0, %eax
        orl     %edx, %eax
        jne     .L5

Thanks,
Ilya


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]