// File: acliusBackHome[P]kamaya/dist/IR.cpp
// Function: IR::getConstValueStr[abi:cxx11](ParseExpression const&)
string IR::getConstValueStr(const ParseExpression &init_expr) {
  const ParseConstant &E = init_expr.get_const();
  ConstValueType con_type = E.get_type();
  string arg1;
  switch (con_type) {
  case ConstValueType::C_SIGNED:
    return to_string((int)E.get_signed());
  case ConstValueType::C_UNSIGNED:
    return to_string((int)E.get_unsigned());
  case ConstValueType::C_FLOAT:
    return to_string((int)E.get_float());
  case ConstValueType::C_BOOL:
    return to_string((int)E.get_bool());
  case ConstValueType::C_STRING:
    return E.get_string();
  default:
    log("other constant type");
    break;
  }
  return "BadValue";
}

// Assembly:
pushq %rbp
movq %rsp, %rbp
subq $0xd0, %rsp
movq %rdi, -0x98(%rbp)
movq %rdi, %rax
movq %rax, -0x90(%rbp)
movq %rdi, -0x8(%rbp)
movq %rsi, -0x10(%rbp)
movq -0x10(%rbp), %rdi
callq 0x63e50
movq %rax, -0x18(%rbp)
movq -0x18(%rbp), %rdi
callq 0x6a020
movl %eax, -0x1c(%rbp)
leaq -0x40(%rbp), %rdi
callq 0x4460
movl -0x1c(%rbp), %eax
movq %rax, -0x88(%rbp)
subq $0x4, %rax
ja 0x84eee
movq -0x88(%rbp), %rax
leaq 0xcbfc(%rip), %rcx      # 0x919c4
movslq (%rcx,%rax,4), %rax
addq %rcx, %rax
jmpq *%rax
movq -0x18(%rbp), %rdi
callq 0x69310
movq %rax, -0xa0(%rbp)
jmp 0x84de3
movq -0x98(%rbp), %rdi
movq -0xa0(%rbp), %rax
movl %eax, %esi
callq 0x15f20
jmp 0x84dfa
movl $0x1, -0x50(%rbp)
jmp 0x84fb9
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x48(%rbp)
movl %eax, -0x4c(%rbp)
jmp 0x84fd2
movq -0x18(%rbp), %rdi
callq 0x693d0
movq %rax, -0xa8(%rbp)
jmp 0x84e29
movq -0x98(%rbp), %rdi
movq -0xa8(%rbp), %rax
movl %eax, %esi
callq 0x15f20
jmp 0x84e40
movl $0x1, -0x50(%rbp)
jmp 0x84fb9
movq -0x18(%rbp), %rdi
callq 0x694c0
fstpt -0xb4(%rbp)
jmp 0x84e5d
movq -0x98(%rbp), %rdi
fldt -0xb4(%rbp)
fnstcw -0x7a(%rbp)
movzwl -0x7a(%rbp), %eax
orl $0xc00, %eax            # imm = 0xC00
movw %ax, -0x7c(%rbp)
fldcw -0x7c(%rbp)
fistpl -0x78(%rbp)
fldcw -0x7a(%rbp)
movl -0x78(%rbp), %esi
callq 0x15f20
jmp 0x84e8d
movl $0x1, -0x50(%rbp)
jmp 0x84fb9
movq -0x18(%rbp), %rdi
callq 0x69590
movb %al, -0xb5(%rbp)
jmp 0x84eaa
movq -0x98(%rbp), %rdi
movb -0xb5(%rbp), %al
movzbl %al, %esi
andl $0x1, %esi
callq 0x15f20
jmp 0x84ec4
movl $0x1, -0x50(%rbp)
jmp 0x84fb9
movq -0x98(%rbp), %rdi
movq -0x18(%rbp), %rsi
callq 0x69640
jmp 0x84ee2
movl $0x1, -0x50(%rbp)
jmp 0x84fb9
leaq -0x71(%rbp), %rdi
movq %rdi, -0xc0(%rbp)
callq 0x45f0
movq -0xc0(%rbp), %rdx
leaq 0xcba5(%rip), %rsi      # 0x91ab1
leaq -0x70(%rbp), %rdi
callq 0x4450
jmp 0x84f17
leaq -0x70(%rbp), %rdi
callq 0x87a40
jmp 0x84f22
leaq -0x70(%rbp), %rdi
callq 0x4688
leaq -0x71(%rbp), %rdi
callq 0x4380
jmp 0x84f64
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x48(%rbp)
movl %eax, -0x4c(%rbp)
jmp 0x84f59
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x48(%rbp)
movl %eax, -0x4c(%rbp)
leaq -0x70(%rbp), %rdi
callq 0x4688
leaq -0x71(%rbp), %rdi
callq 0x4380
jmp 0x84fd2
leaq -0x72(%rbp), %rdi
movq %rdi, -0xc8(%rbp)
callq 0x45f0
movq -0x98(%rbp), %rdi
movq -0xc8(%rbp), %rdx
leaq 0xcb3c(%rip), %rsi      # 0x91ac5
callq 0x4450
jmp 0x84f90
leaq -0x72(%rbp), %rdi
callq 0x4380
movl $0x1, -0x50(%rbp)
jmp 0x84fb9
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x48(%rbp)
movl %eax, -0x4c(%rbp)
leaq -0x72(%rbp), %rdi
callq 0x4380
jmp 0x84fd2
leaq -0x40(%rbp), %rdi
callq 0x4688
movq -0x90(%rbp), %rax
addq $0xd0, %rsp
popq %rbp
retq
leaq -0x40(%rbp), %rdi
callq 0x4688
movq -0x48(%rbp), %rdi
callq 0x45e0
nopw %cs:(%rax,%rax)