// File: /workspace/github_c_makefile_star2_O0/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:
subq $0x18, %rsp
movb %sil, %al
movq %rdi, 0x10(%rsp)
movb %al, 0xf(%rsp)
movl %edx, 0x8(%rsp)
cmpq $0x0, 0x10(%rsp)
jne 0x4c6d44
movq 0x17528d(%rip), %rax    # 0x63bfa0
movq (%rax), %rdi
leaq 0x4f2f6(%rip), %rsi     # 0x516013
leaq 0xb5c58(%rip), %rdx     # 0x57c97c
leaq 0xf1eb2(%rip), %rcx     # 0x5b8bdd
leaq 0xf1d81(%rip), %r8      # 0x5b8ab3
movl $0xc9, %r9d
movb $0x0, %al
callq 0x199f0
callq 0x19370
jmp 0x4c6d46
movq 0x10(%rsp), %rax
movq 0x10(%rax), %rax
movq 0x10(%rsp), %rcx
cmpq 0x18(%rcx), %rax
jb 0x4c6e49
movq 0x10(%rsp), %rax
movq 0x18(%rax), %xmm0
movaps 0x51bc1(%rip), %xmm1    # 0x518930
punpckldq %xmm1, %xmm0    # xmm0 = xmm0[0],xmm1[0],xmm0[1],xmm1[1]
movapd 0x51bc5(%rip), %xmm1    # 0x518940
subpd %xmm1, %xmm0
movaps %xmm0, %xmm1
unpckhpd %xmm0, %xmm0            # xmm0 = xmm0[1,1]
addsd %xmm1, %xmm0
movsd 0x51fd6(%rip), %xmm1    # 0x518d68
mulsd %xmm1, %xmm0
movsd 0xb2872(%rip), %xmm1    # 0x579610
addsd %xmm1, %xmm0
movaps %xmm0, %xmm1
cvttsd2si %xmm1, %rcx
movq %rcx, %rdx
sarq $0x3f, %rdx
movsd 0x51fb7(%rip), %xmm1    # 0x518d70
subsd %xmm1, %xmm0
cvttsd2si %xmm0, %rax
andq %rdx, %rax
orq %rax, %rcx
movq 0x10(%rsp), %rax
movq %rcx, 0x18(%rax)
movq 0x10(%rsp), %rax
movq (%rax), %rdi
movq 0x10(%rsp), %rax
movq 0x18(%rax), %rsi
shlq $0x2, %rsi
leaq 0xf1cc6(%rip), %rdx     # 0x5b8ab3
movl $0xd1, %ecx
callq 0xe8540
movq %rax, %rcx
movq 0x10(%rsp), %rax
movq %rcx, (%rax)
movq 0x10(%rsp), %rax
cmpq $0x0, (%rax)
jne 0x4c6e45
movq 0x17518c(%rip), %rax    # 0x63bfa0
movq (%rax), %rdi
leaq 0x4f1f5(%rip), %rsi     # 0x516013
leaq 0xf1dce(%rip), %rdx     # 0x5b8bf3
leaq 0xf1db1(%rip), %rcx     # 0x5b8bdd
leaq 0xf1c80(%rip), %r8      # 0x5b8ab3
movl $0xd2, %r9d
movb $0x0, %al
callq 0x199f0
callq 0x19370
jmp 0x4c6e47
jmp 0x4c6e49
jmp 0x4c6e4b
movq 0x10(%rsp), %rax
movq 0x10(%rax), %rax
movq 0x10(%rsp), %rcx
cmpq 0x18(%rcx), %rax
jb 0x4c6e97
movq 0x17513a(%rip), %rax    # 0x63bfa0
movq (%rax), %rdi
leaq 0x4f1a3(%rip), %rsi     # 0x516013
leaq 0xf1d9f(%rip), %rdx     # 0x5b8c16
leaq 0xf1d5f(%rip), %rcx     # 0x5b8bdd
leaq 0xf1c2e(%rip), %r8      # 0x5b8ab3
movl $0xd4, %r9d
movb $0x0, %al
callq 0x199f0
callq 0x19370
jmp 0x4c6e99
movzbl 0xf(%rsp), %esi
movq 0x10(%rsp), %rax
movq (%rax), %rax
movq 0x10(%rsp), %rcx
movq 0x10(%rcx), %rcx
movl (%rax,%rcx,4), %edx
andl $0x7, %esi
andl $-0x8, %edx
orl %esi, %edx
movl %edx, (%rax,%rcx,4)
movl 0x8(%rsp), %eax
movq 0x10(%rsp), %rcx
cmpq 0x8(%rcx), %rax
jbe 0x4c6f04
movq 0x1750cd(%rip), %rax    # 0x63bfa0
movq (%rax), %rdi
leaq 0x4f136(%rip), %rsi     # 0x516013
leaq 0xf1d71(%rip), %rdx     # 0x5b8c55
leaq 0xf1cf2(%rip), %rcx     # 0x5b8bdd
leaq 0xf1bc1(%rip), %r8      # 0x5b8ab3
movl $0xd7, %r9d
movb $0x0, %al
callq 0x199f0
callq 0x19370
jmp 0x4c6f06
movl 0x8(%rsp), %esi
movq 0x10(%rsp), %rax
movq (%rax), %rax
movq 0x10(%rsp), %rdx
movq 0x10(%rdx), %rcx
movq %rcx, %rdi
addq $0x1, %rdi
movq %rdi, 0x10(%rdx)
movl (%rax,%rcx,4), %edx
andl $0x1fffffff, %esi       # imm = 0x1FFFFFFF
shll $0x3, %esi
andl $0x7, %edx
orl %esi, %edx
movl %edx, (%rax,%rcx,4)
addq $0x18, %rsp
retq
nop