// File: /workspace/github_c_makefile_star2_O1/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
pushq %r14
pushq %rbx
movslq 0xd1b0(%rip), %rax      # 0x168ac
leaq -0x1(%rax), %rcx
movl %ecx, 0xd1a6(%rip)      # 0x168ac
leaq 0xd1a3(%rip), %r14      # 0x168b0
movl -0x4(%r14,%rax,8), %ecx
addl $-0x4, %ecx
cmpl $0x1b, %ecx
ja 0x998b
leaq 0x5c43(%rip), %rdx      # 0xf368
movslq (%rdx,%rcx,4), %rcx
addq %rdx, %rcx
jmpq *%rcx
movl %eax, 0xd178(%rip)      # 0x168ac
jmp 0x98dd
callq 0x96ee
notl %eax
jmp 0x98d1
movl $0x1b, %edi
jmp 0x976a
callq 0x96ee
movl %eax, %ebx
callq 0x96ee
xorl %esi, %esi
cmpl %ebx, %eax
setg %sil
jmp 0x98c0
movl $0x1a, %edi
callq 0x9ce6
jmp 0x98d1
callq 0x96ee
xorl %esi, %esi
testl %eax, %eax
jmp 0x9868
callq 0x96ee
movl %eax, %ebx
callq 0x96ee
xorl %esi, %esi
cmpl %ebx, %eax
setl %sil
jmp 0x98c0
callq 0x96ee
movl %eax, %ebx
callq 0x96ee
orl %eax, %ebx
jmp 0x9893
callq 0x96ee
movl %eax, %ebx
callq 0x96ee
xorl %eax, %ebx
jmp 0x9893
callq 0x96ee
testl %eax, %eax
je 0x9918
movl %eax, %ebx
callq 0x96ee
cltd
idivl %ebx
jmp 0x98d1
callq 0x96ee
negl %eax
jmp 0x98d1
callq 0x96ee
movl %eax, %ebx
callq 0x96ee
xorl %esi, %esi
cmpl %ebx, %eax
setge %sil
jmp 0x98c0
movl $0x1c, %edi
jmp 0x98cc
callq 0x96ee
movl %eax, %ebx
callq 0x96ee
cltd
idivl %ebx
movl $0x4, %edi
movl %edx, %esi
jmp 0x98d8
callq 0x96ee
jmp 0x98d1
callq 0x96ee
movl %eax, %ebx
callq 0x96ee
xorl %esi, %esi
cmpl %ebx, %eax
setne %sil
jmp 0x98c0
callq 0x96ee
movl %eax, %ebx
callq 0x96ee
imull %eax, %ebx
jmp 0x9893
callq 0x96ee
movl %eax, %ebx
callq 0x96ee
xorl %esi, %esi
cmpl %ebx, %eax
sete %sil
jmp 0x98c0
callq 0x9e45
jmp 0x98dd
callq 0x96ee
movl %eax, %ebx
callq 0x96ee
addl %eax, %ebx
jmp 0x9893
callq 0x96ee
movl %eax, %ebx
callq 0x96ee
andl %eax, %ebx
movl $0x4, %edi
movl %ebx, %esi
jmp 0x98d8
callq 0x96ee
movl %eax, %ebx
callq 0x96ee
subl %ebx, %eax
jmp 0x98d1
callq 0x96ee
movl %eax, %ebx
callq 0x96ee
xorl %esi, %esi
cmpl %ebx, %eax
setle %sil
movl $0x4, %edi
jmp 0x98d8
movl $0x1d, %edi
callq 0x9d7d
movl $0x4, %edi
movl %eax, %esi
callq 0x9c71
leaq 0xa5cc(%rip), %rax      # 0x13eb0
cmpl $0x2, (%rax)
jl 0x98f5
leaq 0x5d03(%rip), %rdi      # 0xf5f3
callq 0x95ad
movslq 0xcfb0(%rip), %rax      # 0x168ac
cmpl $0x4, -0x4(%r14,%rax,8)
jne 0x9960
leaq -0x1(%rax), %rcx
movl %ecx, 0xcf9e(%rip)      # 0x168ac
movl -0x8(%r14,%rax,8), %eax
popq %rbx
popq %r14
popq %rbp
retq
movabsq $0x6f72657a207962, %rax # imm = 0x6F72657A207962
movq %rax, 0xcb7e(%rip)      # 0x164a7
movabsq $0x6220656469766964, %rax # imm = 0x6220656469766964
movq %rax, 0xcb66(%rip)      # 0x164a0
cmpl $0x0, 0xd76f(%rip)      # 0x170b0
jne 0x994f
leaq 0x5cee(%rip), %rdi      # 0xf638
callq 0x4a9c
callq 0x96ee
movl $0x4, %edi
xorl %esi, %esi
jmp 0x98d8
leaq 0x5c90(%rip), %rdi      # 0xf5f7
leaq 0x5b71(%rip), %rsi      # 0xf4df
leaq 0x5ca0(%rip), %rcx      # 0xf615
movl $0x19f, %edx            # imm = 0x19F
callq 0x40e0
leaq 0x5c4d(%rip), %rdi      # 0xf5d3
callq 0x965f
leaq 0x5c51(%rip), %rdi      # 0xf5e3
callq 0x965f