// File: /workspace/github_c_makefile_star2_O2/ebb[P]chisa/bootstrap1.c
// Function: pass1TrivialExpr
long pass1TrivialExpr(long expr, long cont)
{
    long x14, x13, x12, blks, xfer, stmts, x11, formsCont, forms, z, x10, x9, x8, x7, x6, y, label, x5, x4, x15, x3, x, fiExpr, x2, primArgs, p, x1, consArgs, c;
    goto L1;
L1:
    switch (runtime_class(expr)) {
    case CLASS_HiConsApp:
        c = prim_fetch(expr, runtime_makeNumber(0));
        consArgs = prim_fetch(expr, runtime_makeNumber(1));
        goto L2;
    case CLASS_HiPrimApp:
        p = prim_fetch(expr, runtime_makeNumber(0));
        primArgs = prim_fetch(expr, runtime_makeNumber(1));
        goto L3;
    default:
        goto L4;
    }
L2:
    x1 = FiConsApp(c, consArgs);
        fiExpr = x1;
    goto L5;
L3:
    x2 = FiPrimApp(p, primArgs);
        fiExpr = x2;
    goto L5;
L4:
        fiExpr = expr;
    goto L5;
L5:
    switch (runtime_class(cont)) {
    case CLASS_P1TailCont:
        goto L6;
    case CLASS_P1BlockCont:
        label = prim_fetch(cont, runtime_makeNumber(0));
        goto L7;
    case CLASS_P1TrivialCont:
        z = prim_fetch(cont, runtime_makeNumber(0));
        forms = prim_fetch(cont, runtime_makeNumber(1));
        formsCont = prim_fetch(cont, runtime_makeNumber(2));
        goto L8;
    default:
        runtime_matchFailure(__LINE__);
    }
L6:
    x = prim_genTmp();
    x3 = FiStmt(x, fiExpr);
    x15 = prim_cons(x3, nil);
    x4 = FiReturn(x);
    x5 = Triple(x15, x4, nil);
    return x5;
L7:
    y = prim_genTmp();
    x6 = FiStmt(y, fiExpr);
    x7 = prim_cons(x6, nil);
    x8 = prim_cons(y, nil);
    x9 = FiGoto(label, x8);
    x10 = Triple(x7, x9, nil);
    return x10;
L8:
    x11 = pass1Begin(forms, formsCont);
    goto L9;
L9:
    switch (runtime_class(x11)) {
    case CLASS_Triple:
        stmts = prim_fetch(x11, runtime_makeNumber(0));
        xfer = prim_fetch(x11, runtime_makeNumber(1));
        blks = prim_fetch(x11, runtime_makeNumber(2));
        goto L10;
    default:
        runtime_matchFailure(__LINE__);
    }
L10:
    x12 = FiStmt(z, fiExpr);
    x13 = prim_cons(x12, stmts);
    x14 = Triple(x13, xfer, blks);
    return x14;
}

// Assembly:
pushq %rbp
pushq %r15
pushq %r14
pushq %r13
pushq %r12
pushq %rbx
pushq %rax
movq %rsi, %r14
movq %rdi, %rbx
callq 0x3afb
cmpw $0xd, %ax
je 0x1865
movzwl %ax, %eax
cmpl $0xe, %eax
jne 0x18a2
movw $0x1e, %bp
jmp 0x1869
movw $0x1d, %bp
xorl %edi, %edi
callq 0x3b81
movq %rbx, %rdi
movq %rax, %rsi
callq 0x3b22
movq %rax, %r15
pushq $0x1
popq %rdi
callq 0x3b81
movq %rbx, %rdi
movq %rax, %rsi
callq 0x3b22
movzwl %bp, %edi
movq %r15, %rsi
movq %rax, %rdx
callq 0x3cbd
movq %rax, %rbx
movq %r14, %rdi
callq 0x3afb
cmpw $0x21, %ax
je 0x19d1
movzwl %ax, %eax
cmpl $0x23, %eax
je 0x1926
cmpl $0x22, %eax
jne 0x19c7
xorl %edi, %edi
callq 0x3b81
movq %r14, %rdi
movq %rax, %rsi
callq 0x3b22
movq %rax, %r14
callq 0x3e81
movq %rax, %r15
movq %rax, %rdi
movq %rbx, %rsi
callq 0x1f44
leaq 0x25934(%rip), %r12     # 0x27228
movq (%r12), %rsi
movq %rax, %rdi
callq 0x3e73
movq %rax, %rbx
movq (%r12), %rsi
movq %r15, %rdi
callq 0x3e73
pushq $0x18
popq %rdi
movq %r14, %rsi
movq %rax, %rdx
callq 0x3cbd
movq (%r12), %rdx
jmp 0x1a07
xorl %edi, %edi
callq 0x3b81
movq %r14, %rdi
movq %rax, %rsi
callq 0x3b22
movq %rax, %r15
pushq $0x1
popq %rdi
callq 0x3b81
movq %r14, %rdi
movq %rax, %rsi
callq 0x3b22
movq %rax, %r12
pushq $0x2
popq %rdi
callq 0x3b81
movq %r14, %rdi
movq %rax, %rsi
callq 0x3b22
movq %r12, %rdi
movq %rax, %rsi
callq 0x155f
movq %rax, %r12
movq %rax, %rdi
callq 0x3afb
cmpw $0x20, %ax
jne 0x1a0f
xorl %edi, %edi
callq 0x3b81
movq %r12, %rdi
movq %rax, %rsi
callq 0x3b22
movq %rax, %r14
pushq $0x1
popq %rdi
callq 0x3b81
movq %r12, %rdi
movq %rax, %rsi
callq 0x3b22
movq %rax, %r13
pushq $0x2
popq %rdi
callq 0x3b81
movq %r12, %rdi
movq %rax, %rsi
callq 0x3b22
movq %rax, %r12
jmp 0x1a19
movl $0x1e9, %edi            # imm = 0x1E9
callq 0x3e37
callq 0x3e81
movq %rax, %r14
movq %rax, %rdi
movq %rbx, %rsi
callq 0x1f44
leaq 0x2583d(%rip), %r15     # 0x27228
movq (%r15), %rsi
movq %rax, %rdi
callq 0x3e73
movq %rax, %rbx
pushq $0x19
popq %rdi
movq %r14, %rsi
callq 0x3c05
movq (%r15), %rdx
movq %rbx, %rdi
movq %rax, %rsi
jmp 0x1a38
movl $0x205, %edi            # imm = 0x205
callq 0x3e37
movq %r15, %rdi
movq %rbx, %rsi
callq 0x1f44
movq %rax, %rdi
movq %r14, %rsi
callq 0x3e73
movq %rax, %rdi
movq %r13, %rsi
movq %r12, %rdx
addq $0x8, %rsp
popq %rbx
popq %r12
popq %r13
popq %r14
popq %r15
popq %rbp
jmp 0x123a