Bug#813529: gdk-pixbuf: endless loop in pixops_process

Marc Lehmann debian-reportbug at plan9.de
Tue Feb 2 20:00:34 UTC 2016


Source: gdk-pixbuf
Version: 2.32.3-1
Severity: normal

Dear Maintainer,

A (perl) script of mine that does a lot of image resizing with gdk-pixbuf
started to freeze a while ago. I tracked it down to gdk_pixbuf_scale never
returning. it happens rather randomly, but usually when a very large image
(thousands x thousands) is scaled to a small size (e.g. 16x16).

This almost certainly started after upgrading from some older version,
very likely from jessie.

The reason why I suspect it is gdk-pixbuf is that the script worked for
years without these freezes, and there is a correlation between upgrading
the pixbuf package.

A backtrace looks as follws:

(gdb) bt
#0  0x0000003a41216084 in pixops_process () from /usr/lib/x86_64-linux-gnu/libgdk_pixbuf-2.0.so.0
#1  0x0000003a41216be4 in _pixops_scale () from /usr/lib/x86_64-linux-gnu/libgdk_pixbuf-2.0.so.0
#2  0x0000003a4120e7b9 in gdk_pixbuf_scale () from /usr/lib/x86_64-linux-gnu/libgdk_pixbuf-2.0.so.0
#3  0x00007fffee9cb045 in XS_Gtk2__Gdk__Pixbuf_scale () from /opt/perl/lib/perl5/auto/Gtk2/Gtk2.so
#4  0x0000000000000002 in ?? ()
#5  0x00007fffee9cb00b in XS_Gtk2__Gdk__Pixbuf_scale () from /opt/perl/lib/perl5/auto/Gtk2/Gtk2.so
#6  0x0000000000000000 in ?? ()

Using "fin" to get out of pixops_process never returns (even after
minutes), so it looks liked an endless loop in pixops_process.

I toyed around with it, and found it regularly reaches insn
0x0000003a41216099, but not insn 0x3a412160ac, and $ecx always contains
the same value (in the most recent case, -20504) at the jump just before
the latter insn.

A disassembly follows, for reference:

Dump of assembler code for function pixops_process:
   0x0000003a41215d40 <+0>:     push   %r15
   0x0000003a41215d42 <+2>:     push   %r14
   0x0000003a41215d44 <+4>:     push   %r13
   0x0000003a41215d46 <+6>:     push   %r12
   0x0000003a41215d48 <+8>:     push   %rbp
   0x0000003a41215d49 <+9>:     push   %rbx
   0x0000003a41215d4a <+10>:    sub    $0x108,%rsp
   0x0000003a41215d51 <+17>:    mov    0x140(%rsp),%eax
   0x0000003a41215d58 <+24>:    mov    %eax,0x24(%rsp)
   0x0000003a41215d5c <+28>:    mov    0x148(%rsp),%eax
   0x0000003a41215d63 <+35>:    mov    %eax,0x2c(%rsp)
   0x0000003a41215d67 <+39>:    mov    0x150(%rsp),%rax
   0x0000003a41215d6f <+47>:    mov    %rax,0x60(%rsp)
   0x0000003a41215d74 <+52>:    mov    0x158(%rsp),%eax
   0x0000003a41215d7b <+59>:    mov    %eax,0x28(%rsp)
   0x0000003a41215d7f <+63>:    mov    0x160(%rsp),%eax
   0x0000003a41215d86 <+70>:    mov    %eax,0x68(%rsp)
   0x0000003a41215d8a <+74>:    mov    0x168(%rsp),%eax
   0x0000003a41215d91 <+81>:    mov    %eax,0x98(%rsp)
   0x0000003a41215d98 <+88>:    mov    0x170(%rsp),%eax
   0x0000003a41215d9f <+95>:    mov    %eax,0x30(%rsp)
   0x0000003a41215da3 <+99>:    mov    0x178(%rsp),%eax
   0x0000003a41215daa <+106>:   mov    %eax,0x34(%rsp)
   0x0000003a41215dae <+110>:   mov    0x180(%rsp),%eax
   0x0000003a41215db5 <+117>:   mov    %eax,0x6c(%rsp)
   0x0000003a41215db9 <+121>:   mov    0x188(%rsp),%eax
   0x0000003a41215dc0 <+128>:   mov    %eax,0xe8(%rsp)
   0x0000003a41215dc7 <+135>:   mov    0x190(%rsp),%eax
   0x0000003a41215dce <+142>:   mov    %eax,0x20(%rsp)
   0x0000003a41215dd2 <+146>:   mov    0x198(%rsp),%eax
   0x0000003a41215dd9 <+153>:   mov    %eax,0x90(%rsp)
   0x0000003a41215de0 <+160>:   mov    0x1a0(%rsp),%eax
   0x0000003a41215de7 <+167>:   mov    %eax,0x94(%rsp)
   0x0000003a41215dee <+174>:   movsd  0x625a(%rip),%xmm2        # 0x3a4121c050
   0x0000003a41215df6 <+182>:   mov    0x1b0(%rsp),%rax
   0x0000003a41215dfe <+190>:   mov    0x1a8(%rsp),%rbp
   0x0000003a41215e06 <+198>:   movapd %xmm2,%xmm5
   0x0000003a41215e0a <+202>:   movsd  %xmm2,(%rsp)
   0x0000003a41215e0f <+207>:   divsd  %xmm0,%xmm5
   0x0000003a41215e13 <+211>:   movapd %xmm2,%xmm0
   0x0000003a41215e17 <+215>:   mov    %rax,0xf0(%rsp)
   0x0000003a41215e1f <+223>:   mov    0x1b8(%rsp),%rax
   0x0000003a41215e27 <+231>:   mov    %rax,0x40(%rsp)
   0x0000003a41215e2c <+236>:   divsd  %xmm1,%xmm0
   0x0000003a41215e30 <+240>:   cvttsd2si %xmm5,%rax
   0x0000003a41215e35 <+245>:   test   %rax,%rax
   0x0000003a41215e38 <+248>:   mov    %rax,0x10(%rsp)
   0x0000003a41215e3d <+253>:   cvttsd2si %xmm0,%rbx
   0x0000003a41215e42 <+258>:   mov    %rbx,0x70(%rsp)
   0x0000003a41215e47 <+263>:   je     0x3a41216660 <pixops_process+2336>
   0x0000003a41215e4d <+269>:   test   %rbx,%rbx
   0x0000003a41215e50 <+272>:   je     0x3a41216660 <pixops_process+2336>
   0x0000003a41215e56 <+278>:   mov    0x0(%rbp),%ebx
   0x0000003a41215e59 <+281>:   mov    0x18(%rbp),%eax
   0x0000003a41215e5c <+284>:   cmp    $0x7fffff,%ebx
   0x0000003a41215e62 <+290>:   mov    %eax,%r15d
   0x0000003a41215e65 <+293>:   mov    %eax,0x18(%rsp)
   0x0000003a41215e69 <+297>:   jg     0x3a41216660 <pixops_process+2336>
   0x0000003a41215e6f <+303>:   mov    $0x7fffffff,%eax
   0x0000003a41215e74 <+308>:   mov    %ebx,%r11d
   0x0000003a41215e77 <+311>:   mov    %rdi,%r10
   0x0000003a41215e7a <+314>:   shl    $0x8,%r11d
   0x0000003a41215e7e <+318>:   mov    %esi,%edi
   0x0000003a41215e80 <+320>:   mov    %edx,%esi
   0x0000003a41215e82 <+322>:   cltd   
   0x0000003a41215e83 <+323>:   idiv   %r11d
   0x0000003a41215e86 <+326>:   cmp    %eax,%r15d
   0x0000003a41215e89 <+329>:   jg     0x3a41216660 <pixops_process+2336>
   0x0000003a41215e8f <+335>:   mov    %edi,0xc8(%rsp)
   0x0000003a41215e96 <+342>:   mov    %r11d,%edi
   0x0000003a41215e99 <+345>:   mov    %esi,0xa8(%rsp)
   0x0000003a41215ea0 <+352>:   imul   %r15d,%edi
   0x0000003a41215ea4 <+356>:   mov    $0x4,%esi
   0x0000003a41215ea9 <+361>:   mov    %r9d,0xc0(%rsp)
   0x0000003a41215eb1 <+369>:   mov    %r8d,0xb8(%rsp)
   0x0000003a41215eb9 <+377>:   mov    %ecx,0xb0(%rsp)
   0x0000003a41215ec0 <+384>:   mov    %r10,0xf8(%rsp)
   0x0000003a41215ec8 <+392>:   movslq %edi,%rdi
   0x0000003a41215ecb <+395>:   callq  0x3a41205840 <g_try_malloc_n at plt>
   0x0000003a41215ed0 <+400>:   test   %rax,%rax
   0x0000003a41215ed3 <+403>:   mov    %rax,0x58(%rsp)
   0x0000003a41215ed8 <+408>:   movsd  (%rsp),%xmm2
   0x0000003a41215edd <+413>:   je     0x3a41216660 <pixops_process+2336>
   0x0000003a41215ee3 <+419>:   mov    0x18(%rsp),%esi
   0x0000003a41215ee7 <+423>:   movslq %ebx,%r8
   0x0000003a41215eea <+426>:   movl   $0x0,0x78(%rsp)
   0x0000003a41215ef2 <+434>:   movsd  0x30(%rbp),%xmm4
   0x0000003a41215ef7 <+439>:   shl    $0x2,%r8
   0x0000003a41215efb <+443>:   movsd  0x462d(%rip),%xmm3        # 0x3a4121a530
   0x0000003a41215f03 <+451>:   movl   $0x10,0x88(%rsp)
   0x0000003a41215f0e <+462>:   mov    %esi,%edx
   0x0000003a41215f10 <+464>:   imul   %ebx,%edx
   0x0000003a41215f13 <+467>:   lea    -0x1(%rdx),%eax
   0x0000003a41215f16 <+470>:   movslq %edx,%rdx
   0x0000003a41215f19 <+473>:   mov    %eax,%edi
   0x0000003a41215f1b <+475>:   mov    %eax,(%rsp)
   0x0000003a41215f1e <+478>:   not    %eax
   0x0000003a41215f20 <+480>:   shr    $0x1f,%eax
   0x0000003a41215f23 <+483>:   mov    %eax,%r11d
   0x0000003a41215f26 <+486>:   mov    %ebx,%eax
   0x0000003a41215f28 <+488>:   shl    $0x4,%eax
   0x0000003a41215f2b <+491>:   imul   %esi,%eax
   0x0000003a41215f2e <+494>:   cltq   
   0x0000003a41215f30 <+496>:   shl    $0x2,%rax
   0x0000003a41215f34 <+500>:   mov    %rax,0x80(%rsp)
   0x0000003a41215f3c <+508>:   movslq %edi,%rax
   0x0000003a41215f3f <+511>:   mov    0x58(%rsp),%rdi
   0x0000003a41215f44 <+516>:   lea    (%rdi,%rax,4),%rdi
   0x0000003a41215f48 <+520>:   neg    %rax
   0x0000003a41215f4b <+523>:   shl    $0x2,%rax
   0x0000003a41215f4f <+527>:   mov    %rax,0x48(%rsp)
   0x0000003a41215f54 <+532>:   lea    -0x1(%rsi),%eax
   0x0000003a41215f57 <+535>:   mov    %rdi,0x50(%rsp)
   0x0000003a41215f5c <+540>:   lea    0x0(,%rdx,4),%rdi
   0x0000003a41215f64 <+548>:   add    $0x1,%rax
   0x0000003a41215f68 <+552>:   mov    %rdi,0x8(%rsp)
   0x0000003a41215f6d <+557>:   mov    %rax,0xa0(%rsp)
   0x0000003a41215f75 <+565>:   movslq 0x78(%rsp),%rax
   0x0000003a41215f7a <+570>:   xor    %r10d,%r10d
   0x0000003a41215f7d <+573>:   mov    $0x10,%r9d
   0x0000003a41215f83 <+579>:   lea    0x0(,%rax,8),%rsi
   0x0000003a41215f8b <+587>:   add    0xa0(%rsp),%rax
   0x0000003a41215f93 <+595>:   mov    %rsi,0x38(%rsp)
   0x0000003a41215f98 <+600>:   mov    0x50(%rsp),%rsi
   0x0000003a41215f9d <+605>:   lea    0x0(,%rax,8),%rdi
   0x0000003a41215fa5 <+613>:   nopl   (%rax)
   0x0000003a41215fa8 <+616>:   mov    0x18(%rsp),%edx
   0x0000003a41215fac <+620>:   test   %edx,%edx
   0x0000003a41215fae <+622>:   jle    0x3a4121662b <pixops_process+2283>
   0x0000003a41215fb4 <+628>:   mov    0x48(%rsp),%rax
   0x0000003a41215fb9 <+633>:   mov    0x38(%rsp),%r14
   0x0000003a41215fbe <+638>:   movslq %r10d,%r15
   0x0000003a41215fc1 <+641>:   shl    $0x3,%r15
   0x0000003a41215fc5 <+645>:   xor    %ecx,%ecx
   0x0000003a41215fc7 <+647>:   lea    (%rsi,%rax,1),%r12
   0x0000003a41215fcb <+651>:   nopl   0x0(%rax,%rax,1)
   0x0000003a41215fd0 <+656>:   test   %ebx,%ebx
   0x0000003a41215fd2 <+658>:   jle    0x3a41216019 <pixops_process+729>
   0x0000003a41215fd4 <+660>:   mov    0x28(%rbp),%rax
   0x0000003a41215fd8 <+664>:   mov    %r15,%r13
   0x0000003a41215fdb <+667>:   add    0x10(%rbp),%r13
   0x0000003a41215fdf <+671>:   movsd  (%rax,%r14,1),%xmm1
   0x0000003a41215fe5 <+677>:   xor    %eax,%eax
   0x0000003a41215fe7 <+679>:   nopw   0x0(%rax,%rax,1)
   0x0000003a41215ff0 <+688>:   movsd  0x0(%r13,%rax,8),%xmm0
   0x0000003a41215ff7 <+695>:   mulsd  %xmm1,%xmm0
   0x0000003a41215ffb <+699>:   mulsd  %xmm4,%xmm0
   0x0000003a41215fff <+703>:   mulsd  %xmm2,%xmm0
   0x0000003a41216003 <+707>:   addsd  %xmm3,%xmm0
   0x0000003a41216007 <+711>:   cvttsd2si %xmm0,%edx
   0x0000003a4121600b <+715>:   mov    %edx,(%r12,%rax,4)
   0x0000003a4121600f <+719>:   add    $0x1,%rax
   0x0000003a41216013 <+723>:   add    %edx,%ecx
   0x0000003a41216015 <+725>:   cmp    %eax,%ebx
   0x0000003a41216017 <+727>:   jg     0x3a41215ff0 <pixops_process+688>
   0x0000003a41216019 <+729>:   add    $0x8,%r14
   0x0000003a4121601d <+733>:   add    %r8,%r12
   0x0000003a41216020 <+736>:   cmp    %rdi,%r14
   0x0000003a41216023 <+739>:   jne    0x3a41215fd0 <pixops_process+656>
   0x0000003a41216025 <+741>:   movapd %xmm4,%xmm0
   0x0000003a41216029 <+745>:   mulsd  %xmm2,%xmm0
   0x0000003a4121602d <+749>:   addsd  %xmm3,%xmm0
   0x0000003a41216031 <+753>:   cvttsd2si %xmm0,%r12d
   0x0000003a41216036 <+758>:   sub    %ecx,%r12d
   0x0000003a41216039 <+761>:   je     0x3a412160b0 <pixops_process+880>
   0x0000003a4121603b <+763>:   mov    %r12d,%ecx
   0x0000003a4121603e <+766>:   mov    %r12d,%eax
   0x0000003a41216041 <+769>:   mov    $0x1,%r13d
   0x0000003a41216047 <+775>:   nopw   0x0(%rax,%rax,1)
   0x0000003a41216050 <+784>:   test   %eax,%eax
   0x0000003a41216052 <+786>:   je     0x3a41216099 <pixops_process+857>
   0x0000003a41216054 <+788>:   test   %r11b,%r11b
   0x0000003a41216057 <+791>:   mov    %rsi,%r14
   0x0000003a4121605a <+794>:   mov    (%rsp),%r15d
   0x0000003a4121605e <+798>:   je     0x3a41216099 <pixops_process+857>
   0x0000003a41216060 <+800>:   mov    %eax,%edx
   0x0000003a41216062 <+802>:   add    (%r14),%edx
   0x0000003a41216065 <+805>:   js     0x3a41216091 <pixops_process+849>
   0x0000003a41216067 <+807>:   sub    %eax,%ecx
   0x0000003a41216069 <+809>:   mov    %edx,(%r14)
   0x0000003a4121606c <+812>:   test   %ecx,%ecx
   0x0000003a4121606e <+814>:   mov    %ecx,%edx
   0x0000003a41216070 <+816>:   jle    0x3a412165f8 <pixops_process+2232>
   0x0000003a41216076 <+822>:   cmp    %eax,%ecx
   0x0000003a41216078 <+824>:   jge    0x3a412165f8 <pixops_process+2232>
   0x0000003a4121607e <+830>:   sub    $0x1,%r15d
   0x0000003a41216082 <+834>:   js     0x3a41216099 <pixops_process+857>
   0x0000003a41216084 <+836>:   sub    $0x4,%r14
   0x0000003a41216088 <+840>:   mov    %edx,%eax
   0x0000003a4121608a <+842>:   mov    %eax,%edx
   0x0000003a4121608c <+844>:   add    (%r14),%edx
   0x0000003a4121608f <+847>:   jns    0x3a41216067 <pixops_process+807>
   0x0000003a41216091 <+849>:   sub    $0x1,%r15d
   0x0000003a41216095 <+853>:   mov    %eax,%edx
   0x0000003a41216097 <+855>:   jns    0x3a41216084 <pixops_process+836>
   0x0000003a41216099 <+857>:   mov    %r12d,%eax
   0x0000003a4121609c <+860>:   add    $0x1,%r13d
   0x0000003a412160a0 <+864>:   cltd   
   0x0000003a412160a1 <+865>:   idiv   %r13d
   0x0000003a412160a4 <+868>:   test   %eax,%eax
   0x0000003a412160a6 <+870>:   je     0x3a412160b0 <pixops_process+880>
=> 0x0000003a412160a8 <+872>:   test   %ecx,%ecx
   0x0000003a412160aa <+874>:   jne    0x3a41216050 <pixops_process+784>
   0x0000003a412160ac <+876>:   nopl   0x0(%rax)
   0x0000003a412160b0 <+880>:   add    0x8(%rsp),%rsi
   0x0000003a412160b5 <+885>:   add    %ebx,%r10d
   0x0000003a412160b8 <+888>:   sub    $0x1,%r9d
   0x0000003a412160bc <+892>:   jne    0x3a41215fa8 <pixops_process+616>
   0x0000003a412160c2 <+898>:   mov    0x80(%rsp),%rsi
   0x0000003a412160ca <+906>:   add    %rsi,0x50(%rsp)
   0x0000003a412160cf <+911>:   mov    0x18(%rsp),%esi
   0x0000003a412160d3 <+915>:   add    %esi,0x78(%rsp)
   0x0000003a412160d7 <+919>:   subl   $0x1,0x88(%rsp)
   0x0000003a412160df <+927>:   jne    0x3a41215f75 <pixops_process+565>
   0x0000003a412160e5 <+933>:   movslq 0x18(%rbp),%rdi
   0x0000003a412160e9 <+937>:   mov    $0x8,%esi
   0x0000003a412160ee <+942>:   movsd  %xmm2,(%rsp)
   0x0000003a412160f3 <+947>:   xor    %ebx,%ebx
   0x0000003a412160f5 <+949>:   callq  0x3a41205ed0 <g_malloc_n at plt>
   0x0000003a412160fa <+954>:   mov    %rax,%r15
   0x0000003a412160fd <+957>:   mov    0x20(%rsp),%eax
   0x0000003a41216101 <+961>:   movsd  (%rsp),%xmm2
   0x0000003a41216106 <+966>:   test   %eax,%eax
   0x0000003a41216108 <+968>:   je     0x3a4121611f <pixops_process+991>
   0x0000003a4121610a <+970>:   mov    0x20(%rsp),%edi
   0x0000003a4121610e <+974>:   movsd  %xmm2,(%rsp)
   0x0000003a41216113 <+979>:   callq  0x3a41215900 <get_check_shift>
   0x0000003a41216118 <+984>:   movsd  (%rsp),%xmm2
   0x0000003a4121611d <+989>:   mov    %eax,%ebx
   0x0000003a4121611f <+991>:   movapd %xmm2,%xmm0
   0x0000003a41216123 <+995>:   movsd  %xmm2,(%rsp)
   0x0000003a41216128 <+1000>:  mulsd  0x8(%rbp),%xmm0
   0x0000003a4121612d <+1005>:  callq  0x3a41205f30 <floor at plt>
   0x0000003a41216132 <+1010>:  cvttsd2si %xmm0,%rax
   0x0000003a41216137 <+1015>:  mov    0x0(%rbp),%esi
   0x0000003a4121613a <+1018>:  movsd  (%rsp),%xmm2
   0x0000003a4121613f <+1023>:  mov    %rax,%rdi
   0x0000003a41216142 <+1026>:  mov    %rax,0x78(%rsp)
   0x0000003a41216147 <+1031>:  mov    0x28(%rsp),%eax
   0x0000003a4121614b <+1035>:  sub    %esi,%eax
   0x0000003a4121614d <+1037>:  add    $0x1,%eax
   0x0000003a41216150 <+1040>:  shl    $0x10,%eax
   0x0000003a41216153 <+1043>:  cltq   
   0x0000003a41216155 <+1045>:  sub    %rdi,%rax
   0x0000003a41216158 <+1048>:  mov    0x10(%rsp),%rdi
   0x0000003a4121615d <+1053>:  add    %rdi,%rax
   0x0000003a41216160 <+1056>:  cmp    $0x1,%rax
   0x0000003a41216164 <+1060>:  jle    0x3a412166c9 <pixops_process+2441>
   0x0000003a4121616a <+1066>:  sub    $0x1,%rax
   0x0000003a4121616e <+1070>:  cqto   
   0x0000003a41216170 <+1072>:  idiv   %rdi
   0x0000003a41216173 <+1075>:  movslq 0xc8(%rsp),%r12
   0x0000003a4121617b <+1083>:  mulsd  0x20(%rbp),%xmm2
   0x0000003a41216180 <+1088>:  mov    0xb0(%rsp),%r14d
   0x0000003a41216188 <+1096>:  mov    %esi,(%rsp)
   0x0000003a4121618b <+1099>:  sub    %r12d,%r14d
   0x0000003a4121618e <+1102>:  sub    %r12,%rax
   0x0000003a41216191 <+1105>:  movslq %r14d,%rdi
   0x0000003a41216194 <+1108>:  cmp    %rax,%rdi
   0x0000003a41216197 <+1111>:  movapd %xmm2,%xmm0
   0x0000003a4121619b <+1115>:  cmovle %rdi,%rax
   0x0000003a4121619f <+1119>:  mov    %rax,%r13
   0x0000003a412161a2 <+1122>:  callq  0x3a41205f30 <floor at plt>
   0x0000003a412161a7 <+1127>:  movslq 0xa8(%rsp),%rdx
   0x0000003a412161af <+1135>:  pxor   %xmm1,%xmm1
   0x0000003a412161b3 <+1139>:  mov    0xb8(%rsp),%r8d
   0x0000003a412161bb <+1147>:  mov    %rdx,%rax
   0x0000003a412161be <+1150>:  imul   0x70(%rsp),%rdx
   0x0000003a412161c4 <+1156>:  sub    %eax,%r8d
   0x0000003a412161c7 <+1159>:  movslq %r8d,%rax
   0x0000003a412161ca <+1162>:  test   %rax,%rax
   0x0000003a412161cd <+1165>:  mov    %rax,0xa8(%rsp)
   0x0000003a412161d5 <+1173>:  cvtsi2sd %rdx,%xmm1
   0x0000003a412161da <+1178>:  addsd  %xmm0,%xmm1
   0x0000003a412161de <+1182>:  cvttsd2si %xmm1,%rsi
   0x0000003a412161e3 <+1187>:  mov    %rsi,0x80(%rsp)
   0x0000003a412161eb <+1195>:  mov    (%rsp),%esi
   0x0000003a412161ee <+1198>:  jle    0x3a412166a6 <pixops_process+2406>
   0x0000003a412161f4 <+1204>:  movslq 0x24(%rsp),%rdi
   0x0000003a412161f9 <+1209>:  movslq 0xc0(%rsp),%rax
   0x0000003a41216201 <+1217>:  mov    %r14d,%ecx
   0x0000003a41216204 <+1220>:  mov    %r12,%rdx
   0x0000003a41216207 <+1223>:  movq   $0x0,0x50(%rsp)
   0x0000003a41216210 <+1232>:  imul   %edi,%ecx
   0x0000003a41216213 <+1235>:  mov    %rax,0xb8(%rsp)
   0x0000003a4121621b <+1243>:  mov    %rdi,0x18(%rsp)
   0x0000003a41216220 <+1248>:  imul   %rdi,%r13
   0x0000003a41216224 <+1252>:  movslq %ecx,%rax
   0x0000003a41216227 <+1255>:  mov    0x10(%rsp),%rcx
   0x0000003a4121622c <+1260>:  mov    %rax,0xc0(%rsp)
   0x0000003a41216234 <+1268>:  mov    %r13,0xe0(%rsp)
   0x0000003a4121623c <+1276>:  imul   %rcx,%rdx
   0x0000003a41216240 <+1280>:  mov    %ecx,0xcc(%rsp)
   0x0000003a41216247 <+1287>:  mov    %ebx,%ecx
   0x0000003a41216249 <+1289>:  add    0x78(%rsp),%rdx
   0x0000003a4121624e <+1294>:  mov    %rdx,%rax
   0x0000003a41216251 <+1297>:  mov    %rdx,0x88(%rsp)
   0x0000003a41216259 <+1305>:  sar    $0x10,%rax
   0x0000003a4121625d <+1309>:  shr    $0x1f,%eax
   0x0000003a41216260 <+1312>:  mov    %eax,0xd0(%rsp)
   0x0000003a41216267 <+1319>:  mov    $0x1,%eax
   0x0000003a4121626c <+1324>:  shl    %cl,%rax
   0x0000003a4121626f <+1327>:  mov    %rax,0xb0(%rsp)
   0x0000003a41216277 <+1335>:  movslq 0x98(%rsp),%rax
   0x0000003a4121627f <+1343>:  mov    %rax,%rdi
   0x0000003a41216282 <+1346>:  mov    %rax,0x98(%rsp)
   0x0000003a4121628a <+1354>:  mov    0x68(%rsp),%eax
   0x0000003a4121628e <+1358>:  sub    $0x1,%eax
   0x0000003a41216291 <+1361>:  cltq   
   0x0000003a41216293 <+1363>:  imul   %rdi,%rax
   0x0000003a41216297 <+1367>:  add    0x60(%rsp),%rax
   0x0000003a4121629c <+1372>:  mov    %rax,0xa0(%rsp)
   0x0000003a412162a4 <+1380>:  mov    0xf8(%rsp),%rax
   0x0000003a412162ac <+1388>:  mov    %rax,0x48(%rsp)
   0x0000003a412162b1 <+1393>:  movslq 0xe8(%rsp),%rax
   0x0000003a412162b9 <+1401>:  mov    %rax,0xe8(%rsp)
   0x0000003a412162c1 <+1409>:  mov    0x80(%rsp),%r12
   0x0000003a412162c9 <+1417>:  movslq %esi,%rcx
   0x0000003a412162cc <+1420>:  movslq 0x18(%rbp),%r8
   0x0000003a412162d0 <+1424>:  mov    0x48(%rsp),%rbx
   0x0000003a412162d5 <+1429>:  mov    %r12,%rax
   0x0000003a412162d8 <+1432>:  sar    $0xc,%r12
   0x0000003a412162dc <+1436>:  and    $0xf,%r12d
   0x0000003a412162e0 <+1440>:  sar    $0x10,%rax
   0x0000003a412162e4 <+1444>:  mov    %rbx,%r10
   0x0000003a412162e7 <+1447>:  imul   %rcx,%r12
   0x0000003a412162eb <+1451>:  mov    0xe8(%rsp),%rcx
   0x0000003a412162f3 <+1459>:  add    0x50(%rsp),%rcx
   0x0000003a412162f8 <+1464>:  add    0xc0(%rsp),%rbx
   0x0000003a41216300 <+1472>:  mov    %eax,%edi
   0x0000003a41216302 <+1474>:  mov    %r8,%rdx
   0x0000003a41216305 <+1477>:  imul   %r8,%r12
   0x0000003a41216309 <+1481>:  mov    %rbx,0x8(%rsp)
   0x0000003a4121630e <+1486>:  shl    $0x6,%r12
   0x0000003a41216312 <+1490>:  add    0x58(%rsp),%r12
   0x0000003a41216317 <+1495>:  test   %rcx,0xb0(%rsp)
   0x0000003a4121631f <+1503>:  mov    %r12,(%rsp)
   0x0000003a41216323 <+1507>:  je     0x3a4121667f <pixops_process+2367>
   0x0000003a41216329 <+1513>:  mov    0x90(%rsp),%r14d
   0x0000003a41216331 <+1521>:  mov    0x94(%rsp),%r13d
   0x0000003a41216339 <+1529>:  test   %r8,%r8
   0x0000003a4121633c <+1532>:  jle    0x3a41216398 <pixops_process+1624>
   0x0000003a4121633e <+1534>:  mov    0x98(%rsp),%rbx
   0x0000003a41216346 <+1542>:  cltq   
   0x0000003a41216348 <+1544>:  mov    %r15,%rcx
   0x0000003a4121634b <+1547>:  lea    (%r15,%r8,8),%r8
   0x0000003a4121634f <+1551>:  imul   %rbx,%rax
   0x0000003a41216353 <+1555>:  mov    %rbx,%r9
   0x0000003a41216356 <+1558>:  add    0x60(%rsp),%rax
   0x0000003a4121635b <+1563>:  jmp    0x3a4121636f <pixops_process+1583>
   0x0000003a4121635d <+1565>:  mov    %rax,(%rcx)
   0x0000003a41216360 <+1568>:  add    $0x8,%rcx
   0x0000003a41216364 <+1572>:  add    $0x1,%edi
   0x0000003a41216367 <+1575>:  add    %r9,%rax
   0x0000003a4121636a <+1578>:  cmp    %rcx,%r8
   0x0000003a4121636d <+1581>:  je     0x3a41216398 <pixops_process+1624>
   0x0000003a4121636f <+1583>:  test   %edi,%edi
   0x0000003a41216371 <+1585>:  js     0x3a41216672 <pixops_process+2354>
   0x0000003a41216377 <+1591>:  cmp    %edi,0x68(%rsp)
   0x0000003a4121637b <+1595>:  jg     0x3a4121635d <pixops_process+1565>
   0x0000003a4121637d <+1597>:  mov    0xa0(%rsp),%rbx
   0x0000003a41216385 <+1605>:  add    $0x8,%rcx
   0x0000003a41216389 <+1609>:  add    $0x1,%edi
   0x0000003a4121638c <+1612>:  add    %r9,%rax
   0x0000003a4121638f <+1615>:  mov    %rbx,-0x8(%rcx)
   0x0000003a41216393 <+1619>:  cmp    %rcx,%r8
   0x0000003a41216396 <+1622>:  jne    0x3a4121636f <pixops_process+1583>
   0x0000003a41216398 <+1624>:  mov    0x48(%rsp),%rdi
   0x0000003a4121639d <+1629>:  cmp    %rdi,0x8(%rsp)
   0x0000003a412163a2 <+1634>:  jbe    0x3a41216694 <pixops_process+2388>
   0x0000003a412163a8 <+1640>:  cmpb   $0x0,0xd0(%rsp)
   0x0000003a412163b0 <+1648>:  mov    0x6c(%rsp),%r12d
   0x0000003a412163b5 <+1653>:  mov    0x88(%rsp),%rbx
   0x0000003a412163bd <+1661>:  je     0x3a41216694 <pixops_process+2388>
   0x0000003a412163c3 <+1667>:  mov    %r13d,0x38(%rsp)
   0x0000003a412163c8 <+1672>:  mov    %rbp,%r13
   0x0000003a412163cb <+1675>:  mov    %r12d,%ebp
   0x0000003a412163ce <+1678>:  mov    %r10,%r12
   0x0000003a412163d1 <+1681>:  jmp    0x3a412163e6 <pixops_process+1702>
   0x0000003a412163d3 <+1683>:  cmp    0x8(%rsp),%r12
   0x0000003a412163d8 <+1688>:  jae    0x3a41216465 <pixops_process+1829>
   0x0000003a412163de <+1694>:  mov    0x0(%r13),%esi
   0x0000003a412163e2 <+1698>:  mov    0x18(%r13),%edx
   0x0000003a412163e6 <+1702>:  mov    %esi,%edi
   0x0000003a412163e8 <+1704>:  mov    %rbx,%rcx
   0x0000003a412163eb <+1707>:  mov    (%rsp),%rax
   0x0000003a412163ef <+1711>:  imul   %edx,%edi
   0x0000003a412163f2 <+1714>:  sar    $0xc,%rcx
   0x0000003a412163f6 <+1718>:  pushq  0x40(%rsp)
   0x0000003a412163fa <+1722>:  and    $0xf,%ecx
   0x0000003a412163fd <+1725>:  push   %r14
   0x0000003a412163ff <+1727>:  mov    %rcx,%r8
   0x0000003a41216402 <+1730>:  movslq %edi,%rcx
   0x0000003a41216405 <+1733>:  imul   %r8,%rcx
   0x0000003a41216409 <+1737>:  mov    %ebp,%r8d
   0x0000003a4121640c <+1740>:  add    $0x1,%ebp
   0x0000003a4121640f <+1743>:  lea    (%rax,%rcx,4),%rdi
   0x0000003a41216413 <+1747>:  mov    0x48(%rsp),%eax
   0x0000003a41216417 <+1751>:  mov    %rbx,%rcx
   0x0000003a4121641a <+1754>:  sar    $0x10,%rcx
   0x0000003a4121641e <+1758>:  push   %rax
   0x0000003a4121641f <+1759>:  mov    0x38(%rsp),%eax
   0x0000003a41216423 <+1763>:  push   %rax
   0x0000003a41216424 <+1764>:  mov    0x48(%rsp),%eax
   0x0000003a41216428 <+1768>:  push   %rax
   0x0000003a41216429 <+1769>:  push   %rcx
   0x0000003a4121642a <+1770>:  mov    %r12,%rcx
   0x0000003a4121642d <+1773>:  mov    0x64(%rsp),%eax
   0x0000003a41216431 <+1777>:  push   %rax
   0x0000003a41216432 <+1778>:  mov    0x68(%rsp),%eax
   0x0000003a41216436 <+1782>:  push   %rax
   0x0000003a41216437 <+1783>:  push   %r15
   0x0000003a41216439 <+1785>:  mov    0x74(%rsp),%eax
   0x0000003a4121643d <+1789>:  push   %rax
   0x0000003a4121643e <+1790>:  mov    0x74(%rsp),%r9d
   0x0000003a41216443 <+1795>:  callq  0x3a41214d10 <process_pixel>
   0x0000003a41216448 <+1800>:  add    0x60(%rsp),%rbx
   0x0000003a4121644d <+1805>:  add    0x68(%rsp),%r12
   0x0000003a41216452 <+1810>:  add    $0x50,%rsp
   0x0000003a41216456 <+1814>:  mov    %rbx,%rdx
   0x0000003a41216459 <+1817>:  shr    $0x10,%rdx
   0x0000003a4121645d <+1821>:  test   %edx,%edx
   0x0000003a4121645f <+1823>:  js     0x3a412163d3 <pixops_process+1683>
   0x0000003a41216465 <+1829>:  mov    %r12,%r10
   0x0000003a41216468 <+1832>:  mov    %ebp,%r12d
   0x0000003a4121646b <+1835>:  mov    %r13,%rbp
   0x0000003a4121646e <+1838>:  mov    0x18(%rbp),%edx
   0x0000003a41216471 <+1841>:  mov    0x38(%rsp),%r13d
   0x0000003a41216476 <+1846>:  mov    0x0(%rbp),%esi
   0x0000003a41216479 <+1849>:  sub    $0x8,%rsp
   0x0000003a4121647d <+1853>:  mov    %r10,%rcx
   0x0000003a41216480 <+1856>:  mov    %r12d,%r8d
   0x0000003a41216483 <+1859>:  push   %r14
   0x0000003a41216485 <+1861>:  push   %r13
   0x0000003a41216487 <+1863>:  mov    0x38(%rsp),%eax
   0x0000003a4121648b <+1867>:  push   %rax
   0x0000003a4121648c <+1868>:  mov    0x48(%rsp),%eax
   0x0000003a41216490 <+1872>:  push   %rax
   0x0000003a41216491 <+1873>:  mov    0xf4(%rsp),%eax
   0x0000003a41216498 <+1880>:  push   %rax
   0x0000003a41216499 <+1881>:  push   %rbx
   0x0000003a4121649a <+1882>:  mov    0x6c(%rsp),%eax
   0x0000003a4121649e <+1886>:  push   %rax
   0x0000003a4121649f <+1887>:  mov    0x70(%rsp),%eax
   0x0000003a412164a3 <+1891>:  push   %rax
   0x0000003a412164a4 <+1892>:  push   %r15
   0x0000003a412164a6 <+1894>:  mov    0x7c(%rsp),%eax
   0x0000003a412164aa <+1898>:  push   %rax
   0x0000003a412164ab <+1899>:  mov    0x7c(%rsp),%eax
   0x0000003a412164af <+1903>:  push   %rax
   0x0000003a412164b0 <+1904>:  mov    0xa8(%rsp),%rax
   0x0000003a412164b8 <+1912>:  mov    0x140(%rsp),%rdi
   0x0000003a412164c0 <+1920>:  mov    %r10,0x98(%rsp)
   0x0000003a412164c8 <+1928>:  lea    (%rax,%rdi,1),%r9
   0x0000003a412164cc <+1932>:  mov    0x60(%rsp),%rdi
   0x0000003a412164d1 <+1937>:  mov    0x150(%rsp),%rax
   0x0000003a412164d9 <+1945>:  callq  *%rax
   0x0000003a412164db <+1947>:  mov    0x98(%rsp),%r10
   0x0000003a412164e3 <+1955>:  mov    %rax,%rbx
   0x0000003a412164e6 <+1958>:  sub    %r10,%rax
   0x0000003a412164e9 <+1961>:  cqto   
   0x0000003a412164eb <+1963>:  idivq  0x78(%rsp)
   0x0000003a412164f0 <+1968>:  lea    (%r12,%rax,1),%r11d
   0x0000003a412164f4 <+1972>:  mov    %r11d,%eax
   0x0000003a412164f7 <+1975>:  sub    0xcc(%rsp),%eax
   0x0000003a412164fe <+1982>:  add    0x128(%rsp),%eax
   0x0000003a41216505 <+1989>:  cltq   
   0x0000003a41216507 <+1991>:  imul   0x70(%rsp),%rax
   0x0000003a4121650d <+1997>:  add    0xd8(%rsp),%rax
   0x0000003a41216515 <+2005>:  add    $0x60,%rsp
   0x0000003a41216519 <+2009>:  cmp    0x8(%rsp),%rbx
   0x0000003a4121651e <+2014>:  jae    0x3a412165b7 <pixops_process+2167>
   0x0000003a41216524 <+2020>:  mov    %r13d,0x38(%rsp)
   0x0000003a41216529 <+2025>:  mov    %rax,%r12
   0x0000003a4121652c <+2028>:  mov    %rbp,%r13
   0x0000003a4121652f <+2031>:  mov    %rbx,%rbp
   0x0000003a41216532 <+2034>:  mov    %r11d,%ebx
   0x0000003a41216535 <+2037>:  mov    0x0(%r13),%esi
   0x0000003a41216539 <+2041>:  mov    0x18(%r13),%edx
   0x0000003a4121653d <+2045>:  mov    %r12,%rcx
   0x0000003a41216540 <+2048>:  sar    $0xc,%rcx
   0x0000003a41216544 <+2052>:  mov    (%rsp),%rax
   0x0000003a41216548 <+2056>:  pushq  0x40(%rsp)
   0x0000003a4121654c <+2060>:  and    $0xf,%ecx
   0x0000003a4121654f <+2063>:  push   %r14
   0x0000003a41216551 <+2065>:  mov    %esi,%edi
   0x0000003a41216553 <+2067>:  mov    %rcx,%r8
   0x0000003a41216556 <+2070>:  imul   %edx,%edi
   0x0000003a41216559 <+2073>:  movslq %edi,%rcx
   0x0000003a4121655c <+2076>:  imul   %r8,%rcx
   0x0000003a41216560 <+2080>:  mov    %ebx,%r8d
   0x0000003a41216563 <+2083>:  add    $0x1,%ebx
   0x0000003a41216566 <+2086>:  lea    (%rax,%rcx,4),%rdi
   0x0000003a4121656a <+2090>:  mov    0x48(%rsp),%eax
   0x0000003a4121656e <+2094>:  mov    %r12,%rcx
   0x0000003a41216571 <+2097>:  sar    $0x10,%rcx
   0x0000003a41216575 <+2101>:  push   %rax
   0x0000003a41216576 <+2102>:  mov    0x38(%rsp),%eax
   0x0000003a4121657a <+2106>:  push   %rax
   0x0000003a4121657b <+2107>:  mov    0x48(%rsp),%eax
   0x0000003a4121657f <+2111>:  push   %rax
   0x0000003a41216580 <+2112>:  push   %rcx
   0x0000003a41216581 <+2113>:  mov    %rbp,%rcx
   0x0000003a41216584 <+2116>:  mov    0x64(%rsp),%eax
   0x0000003a41216588 <+2120>:  push   %rax
   0x0000003a41216589 <+2121>:  mov    0x68(%rsp),%eax
   0x0000003a4121658d <+2125>:  push   %rax
   0x0000003a4121658e <+2126>:  push   %r15
   0x0000003a41216590 <+2128>:  mov    0x74(%rsp),%eax
   0x0000003a41216594 <+2132>:  push   %rax
   0x0000003a41216595 <+2133>:  mov    0x74(%rsp),%r9d
   0x0000003a4121659a <+2138>:  callq  0x3a41214d10 <process_pixel>
   0x0000003a4121659f <+2143>:  add    0x60(%rsp),%r12
   0x0000003a412165a4 <+2148>:  add    0x68(%rsp),%rbp
   0x0000003a412165a9 <+2153>:  add    $0x50,%rsp
   0x0000003a412165ad <+2157>:  cmp    0x8(%rsp),%rbp
   0x0000003a412165b2 <+2162>:  jb     0x3a41216535 <pixops_process+2037>
   0x0000003a412165b4 <+2164>:  mov    %r13,%rbp
   0x0000003a412165b7 <+2167>:  addq   $0x1,0x50(%rsp)
   0x0000003a412165bd <+2173>:  mov    0x70(%rsp),%rsi
   0x0000003a412165c2 <+2178>:  mov    0x50(%rsp),%rax
   0x0000003a412165c7 <+2183>:  add    %rsi,0x80(%rsp)
   0x0000003a412165cf <+2191>:  mov    0xb8(%rsp),%rdi
   0x0000003a412165d7 <+2199>:  add    %rdi,0x48(%rsp)
   0x0000003a412165dc <+2204>:  cmp    0xa8(%rsp),%rax
   0x0000003a412165e4 <+2212>:  je     0x3a412166a6 <pixops_process+2406>
   0x0000003a412165ea <+2218>:  mov    0x0(%rbp),%esi
   0x0000003a412165ed <+2221>:  jmpq   0x3a412162c1 <pixops_process+1409>
   0x0000003a412165f2 <+2226>:  nopw   0x0(%rax,%rax,1)
   0x0000003a412165f8 <+2232>:  mov    %edx,%ecx
   0x0000003a412165fa <+2234>:  shr    $0x1f,%ecx
   0x0000003a412165fd <+2237>:  test   %cl,%cl
   0x0000003a412165ff <+2239>:  je     0x3a4121660b <pixops_process+2251>
   0x0000003a41216601 <+2241>:  cmp    %eax,%edx
   0x0000003a41216603 <+2243>:  mov    %edx,%ecx
   0x0000003a41216605 <+2245>:  jg     0x3a4121607e <pixops_process+830>
   0x0000003a4121660b <+2251>:  sub    $0x1,%r15d
   0x0000003a4121660f <+2255>:  js     0x3a41216624 <pixops_process+2276>
   0x0000003a41216611 <+2257>:  sub    $0x4,%r14
   0x0000003a41216615 <+2261>:  test   %edx,%edx
   0x0000003a41216617 <+2263>:  je     0x3a412160b0 <pixops_process+880>
   0x0000003a4121661d <+2269>:  mov    %edx,%ecx
   0x0000003a4121661f <+2271>:  jmpq   0x3a41216060 <pixops_process+800>
   0x0000003a41216624 <+2276>:  mov    %edx,%ecx
   0x0000003a41216626 <+2278>:  jmpq   0x3a41216099 <pixops_process+857>
   0x0000003a4121662b <+2283>:  movapd %xmm4,%xmm0
   0x0000003a4121662f <+2287>:  mulsd  %xmm2,%xmm0
   0x0000003a41216633 <+2291>:  addsd  %xmm3,%xmm0
   0x0000003a41216637 <+2295>:  cvttsd2si %xmm0,%r12d
   0x0000003a4121663c <+2300>:  test   %r12d,%r12d
   0x0000003a4121663f <+2303>:  jne    0x3a4121603b <pixops_process+763>
   0x0000003a41216645 <+2309>:  add    0x8(%rsp),%rsi
   0x0000003a4121664a <+2314>:  add    %ebx,%r10d
   0x0000003a4121664d <+2317>:  sub    $0x1,%r9d
   0x0000003a41216651 <+2321>:  jne    0x3a41215fa8 <pixops_process+616>
   0x0000003a41216657 <+2327>:  jmpq   0x3a412160c2 <pixops_process+898>
   0x0000003a4121665c <+2332>:  nopl   0x0(%rax)
   0x0000003a41216660 <+2336>:  add    $0x108,%rsp
   0x0000003a41216667 <+2343>:  pop    %rbx
   0x0000003a41216668 <+2344>:  pop    %rbp
   0x0000003a41216669 <+2345>:  pop    %r12
   0x0000003a4121666b <+2347>:  pop    %r13
   0x0000003a4121666d <+2349>:  pop    %r14
   0x0000003a4121666f <+2351>:  pop    %r15
   0x0000003a41216671 <+2353>:  retq   
   0x0000003a41216672 <+2354>:  mov    0x60(%rsp),%rbx
   0x0000003a41216677 <+2359>:  mov    %rbx,(%rcx)
   0x0000003a4121667a <+2362>:  jmpq   0x3a41216360 <pixops_process+1568>
   0x0000003a4121667f <+2367>:  mov    0x94(%rsp),%r14d
   0x0000003a41216687 <+2375>:  mov    0x90(%rsp),%r13d
   0x0000003a4121668f <+2383>:  jmpq   0x3a41216339 <pixops_process+1529>
   0x0000003a41216694 <+2388>:  mov    0x6c(%rsp),%r12d
   0x0000003a41216699 <+2393>:  mov    0x88(%rsp),%rbx
   0x0000003a412166a1 <+2401>:  jmpq   0x3a41216479 <pixops_process+1849>
   0x0000003a412166a6 <+2406>:  mov    %r15,%rdi
   0x0000003a412166a9 <+2409>:  callq  0x3a41206080
   0x0000003a412166ae <+2414>:  mov    0x58(%rsp),%rdi
   0x0000003a412166b3 <+2419>:  add    $0x108,%rsp
   0x0000003a412166ba <+2426>:  pop    %rbx
   0x0000003a412166bb <+2427>:  pop    %rbp
   0x0000003a412166bc <+2428>:  pop    %r12
   0x0000003a412166be <+2430>:  pop    %r13
   0x0000003a412166c0 <+2432>:  pop    %r14
   0x0000003a412166c2 <+2434>:  pop    %r15
   0x0000003a412166c4 <+2436>:  jmpq   0x3a41206080
   0x0000003a412166c9 <+2441>:  mov    0x10(%rsp),%rdi
   0x0000003a412166ce <+2446>:  sub    %rdi,%rax
   0x0000003a412166d1 <+2449>:  cqto   
   0x0000003a412166d3 <+2451>:  idiv   %rdi
   0x0000003a412166d6 <+2454>:  jmpq   0x3a41216173 <pixops_process+1075>

-- System Information:
Debian Release: 8.2
  APT prefers stable
  APT policy: (990, 'stable'), (500, 'unstable'), (500, 'testing'), (500, 'oldstable'), (1, 'experimental')
Architecture: amd64 (x86_64)
Foreign Architectures: i386

Kernel: Linux 4.1.13-040113-generic (SMP w/12 CPU cores)
Locale: LANG=C, LC_CTYPE=en_US.UTF-8 (charmap=UTF-8)
Shell: /bin/sh linked to /bin/bash
Init: systemd (via /run/systemd/system)



More information about the pkg-gnome-maintainers mailing list