// File: /workspace/github_c_makefile_star2_O2/genometools[P]genometools/src/match/ft-front-generation.c
// Function: front_trace_add_trace
void front_trace_add_trace(GtFrontTrace *front_trace,
                           uint8_t backreference,
                           uint32_t localmatch_count)
{
  gt_assert (front_trace != NULL);
  if (front_trace->backref_nextfree >= front_trace->backref_allocated)
  {
    front_trace->backref_allocated
      = front_trace->backref_allocated * 1.2 + 128UL;
    front_trace->backref_table
      = gt_realloc(front_trace->backref_table,
                   sizeof *front_trace->backref_table
                   * front_trace->backref_allocated);
    gt_assert(front_trace->backref_table != NULL);
  }
  gt_assert(front_trace->backref_nextfree < front_trace->backref_allocated);
  front_trace->backref_table[front_trace->backref_nextfree].bits
    = backreference;
  gt_assert(localmatch_count <= front_trace->maxlcs);
  front_trace->backref_table[front_trace->backref_nextfree++].lcs
    = localmatch_count;
#ifdef WITHDISTRIBUTION
  distribution_add(front_trace->lcs_dist,lcs);
#endif
}

// Assembly:
pushq %rbp
pushq %r14
pushq %rbx
testq %rdi, %rdi
je 0x2ba7dd
movl %edx, %ebx
movl %esi, %ebp
movq %rdi, %r14
movq 0x10(%rdi), %rax
movq 0x18(%rdi), %rcx
cmpq %rcx, %rax
jb 0x2ba79a
movq %rcx, %xmm0
punpckldq 0x2d1b9(%rip), %xmm0 # xmm0 = xmm0[0],mem[0],xmm0[1],mem[1]
subpd 0x2d1c1(%rip), %xmm0    # 0x2e78f0
movapd %xmm0, %xmm1
unpckhpd %xmm0, %xmm1            # xmm1 = xmm1[1],xmm0[1]
addsd %xmm0, %xmm1
mulsd 0x2d5d5(%rip), %xmm1    # 0x2e7d18
addsd 0x8ca65(%rip), %xmm1    # 0x3471b0
cvttsd2si %xmm1, %rax
movq %rax, %rcx
subsd 0x2d5c5(%rip), %xmm1    # 0x2e7d20
sarq $0x3f, %rcx
cvttsd2si %xmm1, %rsi
andq %rcx, %rsi
orq %rax, %rsi
movq %rsi, 0x18(%r14)
movq (%r14), %rdi
shlq $0x2, %rsi
leaq 0xc8f25(%rip), %rdx     # 0x3836a1
movl $0xd1, %ecx
callq 0x93472
movq %rax, (%r14)
testq %rax, %rax
je 0x2ba86a
movq 0x10(%r14), %rax
movq 0x18(%r14), %rcx
cmpq %rcx, %rax
jae 0x2ba80e
movq (%r14), %rcx
movl (%rcx,%rax,4), %edx
andb $0x7, %bpl
movzbl %bpl, %esi
andl $-0x8, %edx
orl %esi, %edx
movl %edx, (%rcx,%rax,4)
movl %ebx, %eax
cmpq %rax, 0x8(%r14)
jb 0x2ba83c
movq (%r14), %rax
movq 0x10(%r14), %rcx
leaq 0x1(%rcx), %rdx
movq %rdx, 0x10(%r14)
movl (%rax,%rcx,4), %edx
andl $0x7, %edx
leal (%rdx,%rbx,8), %edx
movl %edx, (%rax,%rcx,4)
popq %rbx
popq %r14
popq %rbp
retq
movq 0x17d784(%rip), %rax    # 0x437f68
movq (%rax), %rdi
leaq 0x2a825(%rip), %rsi     # 0x2e5013
leaq 0x8fab6(%rip), %rdx     # 0x34a2ab
leaq 0xc8fcf(%rip), %rcx     # 0x3837cb
leaq 0xc8e9e(%rip), %r8      # 0x3836a1
movl $0xc9, %r9d
jmp 0x2ba896
movq 0x17d753(%rip), %rax    # 0x437f68
movq (%rax), %rdi
leaq 0x2a7f4(%rip), %rsi     # 0x2e5013
leaq 0xc8fde(%rip), %rdx     # 0x383804
leaq 0xc8f9e(%rip), %rcx     # 0x3837cb
leaq 0xc8e6d(%rip), %r8      # 0x3836a1
movl $0xd4, %r9d
jmp 0x2ba896
movq 0x17d725(%rip), %rax    # 0x437f68
movq (%rax), %rdi
leaq 0x2a7c6(%rip), %rsi     # 0x2e5013
leaq 0xc8fef(%rip), %rdx     # 0x383843
leaq 0xc8f70(%rip), %rcx     # 0x3837cb
leaq 0xc8e3f(%rip), %r8      # 0x3836a1
movl $0xd7, %r9d
jmp 0x2ba896
movq 0x17d6f7(%rip), %rax    # 0x437f68
movq (%rax), %rdi
leaq 0x2a798(%rip), %rsi     # 0x2e5013
leaq 0xc8f5f(%rip), %rdx     # 0x3837e1
leaq 0xc8f42(%rip), %rcx     # 0x3837cb
leaq 0xc8e11(%rip), %r8      # 0x3836a1
movl $0xd2, %r9d
xorl %eax, %eax
callq 0x17a50
callq 0x17390