// File: /workspace/github_c_makefile_star2_O0/genometools[P]genometools/src/match/eis-bwtseq-param.c
// Function: gt_registerPackedIndexOptions
void
gt_registerPackedIndexOptions(GtOptionParser *op,
                              struct bwtOptions *paramOutput,
                              int defaultOptimizationFlags,
                              const GtStr *projectName)
{
  GtOption *option;

  gt_registerEncIdxSeqOptions(op, &paramOutput->final.seqParams);

  paramOutput->final.featureToggles = BWTBaseFeatures;

  option = gt_option_new_uint(
    "locfreq", "specify the locate frequency\n"
    "parameter i means that each i-th position of input string is stored\n"
    "0 => no locate information", &paramOutput->final.locateInterval, 16U);
  gt_option_parser_add_option(op, option);

  option = gt_option_new_bool(
    "locbitmap", "marked/unmarked positions for locate are stored as bitmaps\n"
    "this gives faster location of hits but increases the index by 1 bit per"
    " symbol", &paramOutput->useLocateBitmap, true);
  gt_option_parser_add_option(op, option);
  paramOutput->useLocateBitmapOption = option;

  option = gt_option_new_bool(
    "sprank", "build rank table for special symbols\n"
    "this produces an index which can be used to regenerate the "
    "original sequence but increases the memory used during index creation",
    &paramOutput->useSourceRank, false);
  gt_option_parser_add_option(op, option);

  option = gt_option_new_int_min_max(
    "sprankilog", "specify the interval of rank sampling as log value\n"
    "parameter i means that each 2^i-th position of source is sampled for "
    "rank\nundefined => chooses default of log(log(sequence length))",
    &paramOutput->final.sourceRankInterval, -1, -1,
    sizeof (GtUword) * CHAR_BIT - 1);
  gt_option_parser_add_option(op, option);

  gt_registerCtxMapOptions(op, &paramOutput->final.ctxMapILog);

  paramOutput->final.projectName = projectName;

  paramOutput->defaultOptimizationFlags = defaultOptimizationFlags;
}

// Assembly:
subq $0x28, %rsp
movq %rdi, 0x20(%rsp)
movq %rsi, 0x18(%rsp)
movl %edx, 0x14(%rsp)
movq %rcx, 0x8(%rsp)
movq 0x20(%rsp), %rdi
movq 0x18(%rsp), %rsi
callq 0x2295e0
movq 0x18(%rsp), %rax
movl $0x0, 0x10(%rax)
movq 0x18(%rsp), %rdx
addq $0x14, %rdx
leaq 0x350492(%rip), %rdi    # 0x5750a4
leaq 0x350493(%rip), %rsi    # 0x5750ac
movl $0x10, %ecx
callq 0xf64b0
movq %rax, (%rsp)
movq 0x20(%rsp), %rdi
movq (%rsp), %rsi
callq 0xf1600
movq 0x18(%rsp), %rdx
addq $0x2c, %rdx
leaq 0x3504e3(%rip), %rdi    # 0x575128
leaq 0x3504e6(%rip), %rsi    # 0x575132
movl $0x1, %ecx
callq 0xf5f20
movq %rax, (%rsp)
movq 0x20(%rsp), %rdi
movq (%rsp), %rsi
callq 0xf1600
movq (%rsp), %rcx
movq 0x18(%rsp), %rax
movq %rcx, 0x30(%rax)
movq 0x18(%rsp), %rdx
addq $0x2d, %rdx
leaq 0x350537(%rip), %rdi    # 0x5751bc
leaq 0x350537(%rip), %rsi    # 0x5751c3
xorl %ecx, %ecx
callq 0xf5f20
movq %rax, (%rsp)
movq 0x20(%rsp), %rdi
movq (%rsp), %rsi
callq 0xf1600
movq 0x18(%rsp), %rdx
addq $0x18, %rdx
leaq 0x3505b4(%rip), %rdi    # 0x575269
leaq 0x3505b8(%rip), %rsi    # 0x575274
movl $0xffffffff, %r8d       # imm = 0xFFFFFFFF
movl $0x3f, %r9d
movl %r8d, %ecx
callq 0xf6430
movq %rax, (%rsp)
movq 0x20(%rsp), %rdi
movq (%rsp), %rsi
callq 0xf1600
movq 0x20(%rsp), %rdi
movq 0x18(%rsp), %rsi
addq $0x1c, %rsi
callq 0x21f520
movq 0x8(%rsp), %rcx
movq 0x18(%rsp), %rax
movq %rcx, 0x20(%rax)
movl 0x14(%rsp), %ecx
movq 0x18(%rsp), %rax
movl %ecx, 0x28(%rax)
addq $0x28, %rsp
retq
nopw %cs:(%rax,%rax)