// File: /workspace/github_c_makefile_star2_O2/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 0xc826(%rip), %rax      # 0x158ac
leaq -0x1(%rax), %rcx
movl %ecx, 0xc81c(%rip)      # 0x158ac
leaq 0xc819(%rip), %r14      # 0x158b0
movl -0x4(%r14,%rax,8), %ecx
addl $-0x4, %ecx
cmpl $0x1b, %ecx
ja 0x9301
leaq 0x52b5(%rip), %rdx      # 0xe364
movslq (%rdx,%rcx,4), %rcx
addq %rdx, %rcx
jmpq *%rcx
movl %eax, 0xc7ee(%rip)      # 0x158ac
jmp 0x9255
callq 0x9078
notl %eax
jmp 0x924b
pushq $0x1b
jmp 0x90ee
callq 0x9078
movl %eax, %ebx
callq 0x9078
xorl %esi, %esi
cmpl %ebx, %eax
setg %sil
jmp 0x923e
pushq $0x1a
popq %rdi
callq 0x95f1
jmp 0x924b
callq 0x9078
xorl %esi, %esi
testl %eax, %eax
jmp 0x91e8
callq 0x9078
movl %eax, %ebx
callq 0x9078
xorl %esi, %esi
cmpl %ebx, %eax
setl %sil
jmp 0x923e
callq 0x9078
movl %eax, %ebx
callq 0x9078
orl %eax, %ebx
jmp 0x9213
callq 0x9078
movl %eax, %ebx
callq 0x9078
xorl %eax, %ebx
jmp 0x9213
callq 0x9078
testl %eax, %eax
je 0x9290
movl %eax, %ebx
callq 0x9078
cltd
idivl %ebx
jmp 0x924b
callq 0x9078
negl %eax
jmp 0x924b
callq 0x9078
movl %eax, %ebx
callq 0x9078
xorl %esi, %esi
cmpl %ebx, %eax
setge %sil
jmp 0x923e
pushq $0x1c
jmp 0x9245
callq 0x9078
movl %eax, %ebx
callq 0x9078
cltd
idivl %ebx
pushq $0x4
popq %rdi
movl %edx, %esi
jmp 0x9250
callq 0x9078
jmp 0x924b
callq 0x9078
movl %eax, %ebx
callq 0x9078
xorl %esi, %esi
cmpl %ebx, %eax
setne %sil
jmp 0x923e
callq 0x9078
movl %eax, %ebx
callq 0x9078
imull %eax, %ebx
jmp 0x9213
callq 0x9078
movl %eax, %ebx
callq 0x9078
xorl %esi, %esi
cmpl %ebx, %eax
sete %sil
jmp 0x923e
callq 0x9786
jmp 0x9255
callq 0x9078
movl %eax, %ebx
callq 0x9078
addl %eax, %ebx
jmp 0x9213
callq 0x9078
movl %eax, %ebx
callq 0x9078
andl %eax, %ebx
pushq $0x4
popq %rdi
movl %ebx, %esi
jmp 0x9250
callq 0x9078
movl %eax, %ebx
callq 0x9078
subl %ebx, %eax
jmp 0x924b
callq 0x9078
movl %eax, %ebx
callq 0x9078
xorl %esi, %esi
cmpl %ebx, %eax
setle %sil
pushq $0x4
popq %rdi
jmp 0x9250
pushq $0x1d
popq %rdi
callq 0x9688
pushq $0x4
popq %rdi
movl %eax, %esi
callq 0x957e
leaq 0x9c54(%rip), %rax      # 0x12eb0
cmpl $0x2, (%rax)
jl 0x926d
leaq 0x5387(%rip), %rdi      # 0xe5ef
callq 0x8f47
movslq 0xc638(%rip), %rax      # 0x158ac
cmpl $0x4, -0x4(%r14,%rax,8)
jne 0x92d6
leaq -0x1(%rax), %rcx
movl %ecx, 0xc626(%rip)      # 0x158ac
movl -0x8(%r14,%rax,8), %eax
popq %rbx
popq %r14
popq %rbp
retq
movabsq $0x6f72657a207962, %rax # imm = 0x6F72657A207962
movq %rax, 0xc206(%rip)      # 0x154a7
movabsq $0x6220656469766964, %rax # imm = 0x6220656469766964
movq %rax, 0xc1ee(%rip)      # 0x154a0
cmpl $0x0, 0xcdf7(%rip)      # 0x160b0
jne 0x92c7
leaq 0x5372(%rip), %rdi      # 0xe634
callq 0x42ec
callq 0x9078
pushq $0x4
popq %rdi
xorl %esi, %esi
jmp 0x9250
leaq 0x5316(%rip), %rdi      # 0xe5f3
leaq 0x51f7(%rip), %rsi      # 0xe4db
leaq 0x5326(%rip), %rcx      # 0xe611
movl $0x19f, %edx            # imm = 0x19F
callq 0x40e0
leaq 0x52d3(%rip), %rdi      # 0xe5cf
callq 0x8fef
leaq 0x52d7(%rip), %rdi      # 0xe5df
callq 0x8fef