// File: /workspace/github_c_makefile_star2_O2/genometools[P]genometools/src/extended/intset_16.c
// Function: gt_intset_16_add
void gt_intset_16_add(GtIntset *intset, GtUword elem)
{
  GtIntset16 *intset_16 = gt_intset_16_cast(intset);
  GtIntsetMembers *members = intset->members;
  GtUword *sectionstart = members->sectionstart;
  gt_assert(members->nextfree < members->num_of_elems);
  gt_assert(elem <= members->maxelement);
  gt_assert(members->previouselem == ULONG_MAX || members->previouselem < elem);
  while (elem >= GT_SECTIONMINELEM(members->currentsectionnum + 1)) {
    gt_assert(members->currentsectionnum < members->numofsections);
    sectionstart[members->currentsectionnum + 1] = members->nextfree;
    members->currentsectionnum++;
  }
  gt_assert(GT_SECTIONMINELEM(members->currentsectionnum) <= elem &&
            elem < GT_SECTIONMINELEM(members->currentsectionnum+1) &&
            GT_ELEM2SECTION_M(elem) == members->currentsectionnum);
  intset_16->elements[members->nextfree++] = (uint16_t) elem;
  members->previouselem = elem;
}

// Assembly:
pushq %r14
pushq %rbx
pushq %rax
movq %rsi, %rbx
movq %rdi, %r14
callq 0x29c8a1
movq %rax, %rdi
movq %r14, %rsi
callq 0xf3576
movq 0x8(%r14), %rdx
movq 0x20(%rdx), %rsi
cmpq 0x28(%rdx), %rsi
jae 0x29ce10
cmpq %rbx, 0x18(%rdx)
jb 0x29ce3e
movq 0x38(%rdx), %rcx
cmpq $-0x1, %rcx
setne %dil
cmpq %rbx, %rcx
setae %cl
testb %cl, %dil
jne 0x29ce6c
movq (%rdx), %r8
movq 0x10(%rdx), %rdi
leaq 0x1(%rdi), %r9
movq 0x8(%rdx), %rcx
shlq %cl, %r9
cmpq %rbx, %r9
ja 0x29cd9e
cmpq 0x30(%rdx), %rdi
jae 0x29cdd8
movq %rsi, 0x8(%r8,%rdi,8)
movq 0x10(%rdx), %rdi
incq %rdi
movq %rdi, 0x10(%rdx)
jmp 0x29cd76
movq %rdi, %r9
shlq %cl, %r9
movq %rbx, %r8
shrq %cl, %r8
cmpq %rbx, %r9
ja 0x29ce9d
cmpq %rdi, %r8
jne 0x29ce9d
movq 0x10(%rax), %rax
leaq 0x1(%rsi), %rcx
movq %rcx, 0x20(%rdx)
movw %bx, (%rax,%rsi,2)
movq %rbx, 0x38(%rdx)
addq $0x8, %rsp
popq %rbx
popq %r14
retq
movq 0x19b189(%rip), %rax    # 0x437f68
movq (%rax), %rdi
leaq 0x4822a(%rip), %rsi     # 0x2e5013
leaq 0xe17d3(%rip), %rdx     # 0x37e5c3
leaq 0xe175c(%rip), %rcx     # 0x37e553
leaq 0xe1662(%rip), %r8      # 0x37e460
movl $0xdc, %r9d
xorl %eax, %eax
callq 0x17a50
callq 0x17390
movq 0x19b151(%rip), %rax    # 0x437f68
movq (%rax), %rdi
leaq 0x481f2(%rip), %rsi     # 0x2e5013
leaq 0xe1701(%rip), %rdx     # 0x37e529
leaq 0xe1724(%rip), %rcx     # 0x37e553
leaq 0xe162a(%rip), %r8      # 0x37e460
movl $0xd8, %r9d
jmp 0x29ce04
movq 0x19b123(%rip), %rax    # 0x437f68
movq (%rax), %rdi
leaq 0x481c4(%rip), %rsi     # 0x2e5013
leaq 0xe170e(%rip), %rdx     # 0x37e564
leaq 0xe16f6(%rip), %rcx     # 0x37e553
leaq 0xe15fc(%rip), %r8      # 0x37e460
movl $0xd9, %r9d
jmp 0x29ce04
movq 0x19b0f5(%rip), %rax    # 0x437f68
movq (%rax), %rdi
leaq 0x48196(%rip), %rsi     # 0x2e5013
leaq 0xe16fc(%rip), %rdx     # 0x37e580
leaq 0xe16c8(%rip), %rcx     # 0x37e553
leaq 0xe15ce(%rip), %r8      # 0x37e460
movl $0xda, %r9d
jmp 0x29ce04
movq 0x19b0c4(%rip), %rax    # 0x437f68
movq (%rax), %rdi
leaq 0x48165(%rip), %rsi     # 0x2e5013
leaq 0xe1742(%rip), %rdx     # 0x37e5f7
leaq 0xe1697(%rip), %rcx     # 0x37e553
leaq 0xe159d(%rip), %r8      # 0x37e460
movl $0xe2, %r9d
jmp 0x29ce04