// File: /workspace/github_c_makefile_star2_O3/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 0x3f51
cmpw $0xd, %ax
je 0x1a83
movzwl %ax, %eax
cmpl $0xe, %eax
jne 0x1ac2
movw $0x1e, %bp
jmp 0x1a87
movw $0x1d, %bp
xorl %edi, %edi
callq 0x3fd7
movq %rbx, %rdi
movq %rax, %rsi
callq 0x3f78
movq %rax, %r15
movl $0x1, %edi
callq 0x3fd7
movq %rbx, %rdi
movq %rax, %rsi
callq 0x3f78
movzwl %bp, %edi
movq %r15, %rsi
movq %rax, %rdx
callq 0x40ba
movq %rax, %rbx
movq %r14, %rdi
callq 0x3f51
cmpw $0x21, %ax
je 0x1c00
movzwl %ax, %eax
cmpl $0x23, %eax
je 0x1b4d
cmpl $0x22, %eax
jne 0x1bf6
xorl %edi, %edi
callq 0x3fd7
movq %r14, %rdi
movq %rax, %rsi
callq 0x3f78
movq %rax, %r14
callq 0x42f4
movq %rax, %r15
movl $0x16, %edi
movq %rax, %rsi
movq %rbx, %rdx
callq 0x40ba
leaq 0x2670f(%rip), %r12     # 0x28228
movq (%r12), %rsi
movq %rax, %rdi
callq 0x42e4
movq %rax, %rbx
movq (%r12), %rsi
movq %r15, %rdi
callq 0x42e4
movl $0x18, %edi
movq %r14, %rsi
movq %rax, %rdx
callq 0x40ba
movq (%r12), %rcx
jmp 0x1c3d
xorl %edi, %edi
callq 0x3fd7
movq %r14, %rdi
movq %rax, %rsi
callq 0x3f78
movq %rax, %r15
movl $0x1, %edi
callq 0x3fd7
movq %r14, %rdi
movq %rax, %rsi
callq 0x3f78
movq %rax, %r12
movl $0x2, %edi
callq 0x3fd7
movq %r14, %rdi
movq %rax, %rsi
callq 0x3f78
movq %r12, %rdi
movq %rax, %rsi
callq 0x1772
movq %rax, %r12
movq %rax, %rdi
callq 0x3f51
cmpw $0x20, %ax
jne 0x1c4a
xorl %edi, %edi
callq 0x3fd7
movq %r12, %rdi
movq %rax, %rsi
callq 0x3f78
movq %rax, %r14
movl $0x1, %edi
callq 0x3fd7
movq %r12, %rdi
movq %rax, %rsi
callq 0x3f78
movq %rax, %r13
movl $0x2, %edi
callq 0x3fd7
movq %r12, %rdi
movq %rax, %rsi
callq 0x3f78
movq %rax, %r12
jmp 0x1c54
movl $0x1e9, %edi            # imm = 0x1E9
callq 0x42a8
callq 0x42f4
movq %rax, %r14
movl $0x16, %edi
movq %rax, %rsi
movq %rbx, %rdx
callq 0x40ba
leaq 0x26609(%rip), %r15     # 0x28228
movq (%r15), %rsi
movq %rax, %rdi
callq 0x42e4
movq %rax, %rbx
movl $0x19, %edi
movq %r14, %rsi
callq 0x4034
movq (%r15), %rcx
movl $0x20, %edi
movq %rbx, %rsi
movq %rax, %rdx
jmp 0x1c7d
movl $0x205, %edi            # imm = 0x205
callq 0x42a8
movl $0x16, %edi
movq %r15, %rsi
movq %rbx, %rdx
callq 0x40ba
movq %rax, %rdi
movq %r14, %rsi
callq 0x42e4
movl $0x20, %edi
movq %rax, %rsi
movq %r13, %rdx
movq %r12, %rcx
addq $0x8, %rsp
popq %rbx
popq %r12
popq %r13
popq %r14
popq %r15
popq %rbp
jmp 0x4146