// File: /workspace/github_c_makefile_star2_O0/mattn[P]orelang/ore.c
// Function: ore_value_ref
void
ore_value_ref(ore_value v) {
  switch (v.t) {
    case ORE_TYPE_STRING:
      v.v.s->ref++;
      if (verbose)
        printf("ref str %d %p\n", v.v.s->ref, v.v.s->p);
      break;
    case ORE_TYPE_ARRAY:
      v.v.a->ref++;
      if (verbose)
        printf("ref array %d %p\n", v.v.a->ref, v.v.a->p);
      break;
    case ORE_TYPE_HASH:
      v.v.h->ref++;
      if (verbose)
        printf("ref hash %d %p\n", v.v.h->ref, v.v.h->p);
      break;
    case ORE_TYPE_REGEXP:
      v.v.r->ref++;
      if (verbose)
        printf("ref regexp %d %p\n", v.v.r->ref, v.v.r->p);
      break;
    case ORE_TYPE_ENV:
      v.v.e->ref++;
      if (verbose)
        printf("ref env %d %p\n", v.v.e->ref, v.v.e->p);
      break;
    case ORE_TYPE_OBJECT:
      v.v.o->ref++;
      if (verbose)
        printf("ref object %d %p\n", v.v.o->ref, v.v.o);
      break;
    default: 
      break;
  }
}

// Assembly:
pushq %rbp
movq %rsp, %rbp
subq $0x10, %rsp
leaq 0x10(%rbp), %rax
movq %rax, -0x10(%rbp)
movl (%rax), %eax
addl $-0x4, %eax
movl %eax, %ecx
movq %rcx, -0x8(%rbp)
subl $0x9, %eax
ja 0x103f6
movq -0x8(%rbp), %rax
leaq 0xa741(%rip), %rcx      # 0x1a9c0
movslq (%rcx,%rax,4), %rax
addq %rcx, %rax
jmpq *%rax
movq -0x10(%rbp), %rax
movq 0x8(%rax), %rax
movl 0xc(%rax), %ecx
addl $0x1, %ecx
movl %ecx, 0xc(%rax)
cmpl $0x0, 0x10f50(%rip)     # 0x211f0
je 0x102c2
movq -0x10(%rbp), %rax
movq 0x8(%rax), %rcx
movl 0xc(%rcx), %esi
movq 0x8(%rax), %rax
movq (%rax), %rdx
leaq 0xa885(%rip), %rdi      # 0x1ab40
movb $0x0, %al
callq 0x20d0
jmp 0x103f8
movq -0x10(%rbp), %rax
movq 0x8(%rax), %rax
movl 0x8(%rax), %ecx
addl $0x1, %ecx
movl %ecx, 0x8(%rax)
cmpl $0x0, 0x10f11(%rip)     # 0x211f0
je 0x10301
movq -0x10(%rbp), %rax
movq 0x8(%rax), %rcx
movl 0x8(%rcx), %esi
movq 0x8(%rax), %rax
movq (%rax), %rdx
leaq 0xa868(%rip), %rdi      # 0x1ab62
movb $0x0, %al
callq 0x20d0
jmp 0x103f8
movq -0x10(%rbp), %rax
movq 0x8(%rax), %rax
movl 0x8(%rax), %ecx
addl $0x1, %ecx
movl %ecx, 0x8(%rax)
cmpl $0x0, 0x10ed2(%rip)     # 0x211f0
je 0x10340
movq -0x10(%rbp), %rax
movq 0x8(%rax), %rcx
movl 0x8(%rcx), %esi
movq 0x8(%rax), %rax
movq (%rax), %rdx
leaq 0xa83c(%rip), %rdi      # 0x1ab75
movb $0x0, %al
callq 0x20d0
jmp 0x103f8
movq -0x10(%rbp), %rax
movq 0x8(%rax), %rax
movl 0xc(%rax), %ecx
addl $0x1, %ecx
movl %ecx, 0xc(%rax)
cmpl $0x0, 0x10e93(%rip)     # 0x211f0
je 0x1037f
movq -0x10(%rbp), %rax
movq 0x8(%rax), %rcx
movl 0xc(%rcx), %esi
movq 0x8(%rax), %rax
movq (%rax), %rdx
leaq 0xa80f(%rip), %rdi      # 0x1ab87
movb $0x0, %al
callq 0x20d0
jmp 0x103f8
movq -0x10(%rbp), %rax
movq 0x8(%rax), %rax
movl 0x8(%rax), %ecx
addl $0x1, %ecx
movl %ecx, 0x8(%rax)
cmpl $0x0, 0x10e57(%rip)     # 0x211f0
je 0x103bb
movq -0x10(%rbp), %rax
movq 0x8(%rax), %rcx
movl 0x8(%rcx), %esi
movq 0x8(%rax), %rax
movq (%rax), %rdx
leaq 0xa7e7(%rip), %rdi      # 0x1ab9b
movb $0x0, %al
callq 0x20d0
jmp 0x103f8
movq -0x10(%rbp), %rax
movq 0x8(%rax), %rax
movl 0x18(%rax), %ecx
addl $0x1, %ecx
movl %ecx, 0x18(%rax)
cmpl $0x0, 0x10e1b(%rip)     # 0x211f0
je 0x103f4
movq -0x10(%rbp), %rax
movq 0x8(%rax), %rcx
movl 0x18(%rcx), %esi
movq 0x8(%rax), %rdx
leaq 0xa7bf(%rip), %rdi      # 0x1abac
movb $0x0, %al
callq 0x20d0
jmp 0x103f8
jmp 0x103f8
addq $0x10, %rsp
popq %rbp
retq
nop