// File: /workspace/github_c_makefile_star2_O0/nimble-code[P]gh_cpp/Src/gh_cpp3.c
// Function: interpret
static int
interpret(void)
{	int v, w;

	switch (valstack[--valptr].tok) {
	case VAL:	valptr++; break;
	case UMIN:	One_Arg(-(v)); break;
	case UPLUS:	One_Arg(+(v)); break;
	case TILDE:	One_Arg(~(v)); break;
	case LNOT:	One_Arg(!(v)); break;
	case TIMES:	Two_Args(v * w); break;
	case DIVIDE:	do_division(); break;
	case MOD:	Two_Args(v % w); break;
	case PLUS:	Two_Args(v + w); break;
	case MINUS:	Two_Args(v - w); break;
	case BAND:	Two_Args(v & w); break;
	case BOR:	Two_Args(v | w); break;
	case XOR:	Two_Args(v ^ w); break;
	case GT:	Two_Args(v > w); break;
	case LT:	Two_Args(v < w); break;
	case EQ:	Two_Args(v == w); break;
	case NE:	Two_Args(v != w); break;
	case GE:	Two_Args(v >= w); break;
	case LE:	Two_Args(v <= w); break;
	case LOR:	emit(VAL, do_bool(LOR)); break;
	case LAND:	emit(VAL, do_bool(LAND)); break;
	case LS:	emit(VAL, do_shift(LS)); break;
	case RS:	emit(VAL, do_shift(RS)); break;
	case QUEST:	syntax_error("internal error1"); break;
	case COLON:	do_colon(); break;
	default:	syntax_error("internal error2"); break;
	}

	if (verbose>1) dump_stack("now");

	assert(valstack[valptr-1].tok == VAL);
	return valstack[--valptr].val;
}

// Assembly:
pushq %rbp
movq %rsp, %rbp
subq $0x10, %rsp
movslq 0xd02d(%rip), %rcx      # 0x189ac
movl %ecx, %eax
decl %eax
movl %eax, 0xd023(%rip)      # 0x189ac
leaq 0xd020(%rip), %rax      # 0x189b0
movl -0x4(%rax,%rcx,8), %eax
addl $-0x4, %eax
movl %eax, %ecx
movq %rcx, -0x10(%rbp)
subl $0x1b, %eax
ja 0xbcda
movq -0x10(%rbp), %rax
leaq 0x5ba3(%rip), %rcx      # 0x11554
movslq (%rcx,%rax,4), %rax
addq %rcx, %rax
jmpq *%rax
movl 0xcfec(%rip), %eax      # 0x189ac
addl $0x1, %eax
movl %eax, 0xcfe3(%rip)      # 0x189ac
jmp 0xbce6
callq 0xb970
movl %eax, -0x4(%rbp)
xorl %esi, %esi
subl -0x4(%rbp), %esi
movl $0x4, %edi
callq 0xc0f0
jmp 0xbce6
callq 0xb970
movl %eax, -0x4(%rbp)
movl -0x4(%rbp), %esi
movl $0x4, %edi
callq 0xc0f0
jmp 0xbce6
callq 0xb970
movl %eax, -0x4(%rbp)
movl -0x4(%rbp), %esi
xorl $-0x1, %esi
movl $0x4, %edi
callq 0xc0f0
jmp 0xbce6
callq 0xb970
movl %eax, -0x4(%rbp)
cmpl $0x0, -0x4(%rbp)
setne %al
xorb $-0x1, %al
andb $0x1, %al
movzbl %al, %esi
movl $0x4, %edi
callq 0xc0f0
jmp 0xbce6
callq 0xb970
movl %eax, -0x8(%rbp)
callq 0xb970
movl %eax, -0x4(%rbp)
movl -0x4(%rbp), %esi
imull -0x8(%rbp), %esi
movl $0x4, %edi
callq 0xc0f0
jmp 0xbce6
callq 0xc190
jmp 0xbce6
callq 0xb970
movl %eax, -0x8(%rbp)
callq 0xb970
movl %eax, -0x4(%rbp)
movl -0x4(%rbp), %eax
cltd
idivl -0x8(%rbp)
movl %edx, %esi
movl $0x4, %edi
callq 0xc0f0
jmp 0xbce6
callq 0xb970
movl %eax, -0x8(%rbp)
callq 0xb970
movl %eax, -0x4(%rbp)
movl -0x4(%rbp), %esi
addl -0x8(%rbp), %esi
movl $0x4, %edi
callq 0xc0f0
jmp 0xbce6
callq 0xb970
movl %eax, -0x8(%rbp)
callq 0xb970
movl %eax, -0x4(%rbp)
movl -0x4(%rbp), %esi
subl -0x8(%rbp), %esi
movl $0x4, %edi
callq 0xc0f0
jmp 0xbce6
callq 0xb970
movl %eax, -0x8(%rbp)
callq 0xb970
movl %eax, -0x4(%rbp)
movl -0x4(%rbp), %esi
andl -0x8(%rbp), %esi
movl $0x4, %edi
callq 0xc0f0
jmp 0xbce6
callq 0xb970
movl %eax, -0x8(%rbp)
callq 0xb970
movl %eax, -0x4(%rbp)
movl -0x4(%rbp), %esi
orl -0x8(%rbp), %esi
movl $0x4, %edi
callq 0xc0f0
jmp 0xbce6
callq 0xb970
movl %eax, -0x8(%rbp)
callq 0xb970
movl %eax, -0x4(%rbp)
movl -0x4(%rbp), %esi
xorl -0x8(%rbp), %esi
movl $0x4, %edi
callq 0xc0f0
jmp 0xbce6
callq 0xb970
movl %eax, -0x8(%rbp)
callq 0xb970
movl %eax, -0x4(%rbp)
movl -0x4(%rbp), %eax
cmpl -0x8(%rbp), %eax
setg %al
andb $0x1, %al
movzbl %al, %esi
movl $0x4, %edi
callq 0xc0f0
jmp 0xbce6
callq 0xb970
movl %eax, -0x8(%rbp)
callq 0xb970
movl %eax, -0x4(%rbp)
movl -0x4(%rbp), %eax
cmpl -0x8(%rbp), %eax
setl %al
andb $0x1, %al
movzbl %al, %esi
movl $0x4, %edi
callq 0xc0f0
jmp 0xbce6
callq 0xb970
movl %eax, -0x8(%rbp)
callq 0xb970
movl %eax, -0x4(%rbp)
movl -0x4(%rbp), %eax
cmpl -0x8(%rbp), %eax
sete %al
andb $0x1, %al
movzbl %al, %esi
movl $0x4, %edi
callq 0xc0f0
jmp 0xbce6
callq 0xb970
movl %eax, -0x8(%rbp)
callq 0xb970
movl %eax, -0x4(%rbp)
movl -0x4(%rbp), %eax
cmpl -0x8(%rbp), %eax
setne %al
andb $0x1, %al
movzbl %al, %esi
movl $0x4, %edi
callq 0xc0f0
jmp 0xbce6
callq 0xb970
movl %eax, -0x8(%rbp)
callq 0xb970
movl %eax, -0x4(%rbp)
movl -0x4(%rbp), %eax
cmpl -0x8(%rbp), %eax
setge %al
andb $0x1, %al
movzbl %al, %esi
movl $0x4, %edi
callq 0xc0f0
jmp 0xbce6
callq 0xb970
movl %eax, -0x8(%rbp)
callq 0xb970
movl %eax, -0x4(%rbp)
movl -0x4(%rbp), %eax
cmpl -0x8(%rbp), %eax
setle %al
andb $0x1, %al
movzbl %al, %esi
movl $0x4, %edi
callq 0xc0f0
jmp 0xbce6
movl $0x1a, %edi
callq 0xc210
movl %eax, %esi
movl $0x4, %edi
callq 0xc0f0
jmp 0xbce6
movl $0x1b, %edi
callq 0xc210
movl %eax, %esi
movl $0x4, %edi
callq 0xc0f0
jmp 0xbce6
movl $0x1c, %edi
callq 0xc2f0
movl %eax, %esi
movl $0x4, %edi
callq 0xc0f0
jmp 0xbce6
movl $0x1d, %edi
callq 0xc2f0
movl %eax, %esi
movl $0x4, %edi
callq 0xc0f0
jmp 0xbce6
leaq 0x5b8a(%rip), %rdi      # 0x11856
callq 0xb8c0
jmp 0xbce6
callq 0xc3e0
jmp 0xbce6
leaq 0x5b85(%rip), %rdi      # 0x11866
callq 0xb8c0
leaq 0xa2c3(%rip), %rax      # 0x15fb0
cmpl $0x1, (%rax)
jle 0xbcfe
leaq 0x5b7d(%rip), %rdi      # 0x11876
callq 0xb800
movl 0xcca8(%rip), %eax      # 0x189ac
subl $0x1, %eax
movslq %eax, %rcx
leaq 0xcc9f(%rip), %rax      # 0x189b0
cmpl $0x4, 0x4(%rax,%rcx,8)
jne 0xbd1a
jmp 0xbd39
leaq 0x5b59(%rip), %rdi      # 0x1187a
leaq 0x59fb(%rip), %rsi      # 0x11723
movl $0x19f, %edx            # imm = 0x19F
leaq 0x5b64(%rip), %rcx      # 0x11898
callq 0x40c0
movl 0xcc6d(%rip), %eax      # 0x189ac
addl $-0x1, %eax
movl %eax, 0xcc64(%rip)      # 0x189ac
movslq %eax, %rcx
leaq 0xcc5e(%rip), %rax      # 0x189b0
movl (%rax,%rcx,8), %eax
addq $0x10, %rsp
popq %rbp
retq
nopl (%rax,%rax)