// File: /workspace/github_c_makefile_star2_O2/tyabu12[P]pl0compiler/compile.c
// Function: block
void block(int pIndex) {        /* pIndex はこのブロックの関数名のインデックス */
    int backP;
    backP = genCodeV(jmp, 0);   /* 内部関数を飛び越す命令、後でバックパッチ */
    while (1) {                 /* 宣言部のコンパイルを繰り返す         */
        switch (token.kind) {
        case Const:             /* 定数宣言部のコンパイル               */
            token = nextToken();
            constDecl(); continue;
        case Var:               /* 変数宣言部のコンパイル               */
            token = nextToken();
            varDecl(); continue;
        case Func:              /* 関数宣言部のコンパイル               */
            token = nextToken();
            funcDecl(); continue;
        default:                /* それ以外なら宣言部は終わり           */
            break;
        }
        break;
    }
    backPatch(backP);           /* 内部関数を飛び越す命令にパッチ       */
    changeV(pIndex, nextCode()); /* この関数の開始番地を修正            */
    genCodeV(ict, frameL());    /* このブロックの実行時の必要記憶域をとる命令 */
    statement();                /* このブロックの主文                   */
    genCodeR();                 /* リターン命令                         */
    blockEnd();                 /* ブロックが終ったことをtableに連絡    */
}

// Assembly:
pushq %rbp
pushq %r15
pushq %r14
pushq %r13
pushq %r12
pushq %rbx
subq $0xb8, %rsp
movl %edi, 0x60(%rsp)
pushq $0x7
popq %rdi
xorl %esi, %esi
callq 0x2285
movl %eax, 0x5c(%rsp)
leaq 0x30(%rsp), %r15
leaq 0x6808(%rip), %r13      # 0x9d6c
leaq 0x68(%rsp), %rbx
pushq $0x1b
popq %rbp
leaq 0x90(%rsp), %r14
pushq $0x15
popq %r12
movl 0x67ea(%rip), %eax      # 0x9d68
cmpl $0x7, %eax
je 0x37e1
cmpl $0x8, %eax
je 0x36ff
cmpl $0x9, %eax
jne 0x3a20
movq %r15, %rdi
xorl %eax, %eax
callq 0x475d
movl 0x50(%rsp), %eax
movl %eax, 0x67db(%rip)      # 0x9d88
movups 0x30(%rsp), %xmm0
movups 0x40(%rsp), %xmm1
movups %xmm1, 0x67ba(%rip)     # 0x9d78
movups %xmm0, 0x67a3(%rip)     # 0x9d68
cmpl $0x20, 0x679c(%rip)     # 0x9d68
jne 0x3675
pushq $0x3
popq %rdi
callq 0x4a4c
movl 0x67a8(%rip), %eax      # 0x9d88
movl %eax, 0x50(%rsp)
movups 0x678d(%rip), %xmm0     # 0x9d78
movaps %xmm0, 0x40(%rsp)
movups 0x6771(%rip), %xmm0     # 0x9d68
movaps %xmm0, 0x30(%rsp)
movq %r14, %rdi
xorl %eax, %eax
callq 0x475d
movl 0xb0(%rsp), %eax
movl %eax, 0x20(%rsp)
movups 0x90(%rsp), %xmm0
movups 0xa0(%rsp), %xmm1
movups %xmm1, 0x10(%rsp)
movups %xmm0, (%rsp)
movq %rbx, %rdi
movl %r12d, %esi
callq 0x49ce
movl 0x88(%rsp), %eax
movl %eax, 0x6746(%rip)      # 0x9d88
movups 0x68(%rsp), %xmm0
movups 0x78(%rsp), %xmm1
movups %xmm1, 0x6725(%rip)     # 0x9d78
movups %xmm0, 0x670e(%rip)     # 0x9d68
cmpl $0x21, 0x6707(%rip)     # 0x9d68
jne 0x367e
movl 0x6703(%rip), %esi      # 0x9d6c
leaq 0x34(%rsp), %rdi
callq 0x3211
jmp 0x368a
xorl %eax, %eax
callq 0x45e8
jmp 0x36b9
leaq 0x1d1f(%rip), %rdi      # 0x53a4
callq 0x45b5
movq %rbx, %rdi
xorl %eax, %eax
callq 0x475d
movl 0x88(%rsp), %eax
movl %eax, 0x66e7(%rip)      # 0x9d88
movups 0x68(%rsp), %xmm0
movups 0x78(%rsp), %xmm1
movups %xmm1, 0x66c6(%rip)     # 0x9d78
movups %xmm0, 0x66af(%rip)     # 0x9d68
movl 0x66a9(%rip), %eax      # 0x9d68
cmpl $0x1b, %eax
je 0x36d9
cmpl $0x20, %eax
jne 0x3799
movl %ebp, %edi
callq 0x453b
jmp 0x35c5
movq %rbx, %rdi
xorl %eax, %eax
callq 0x475d
movl 0x88(%rsp), %eax
movl %eax, 0x6698(%rip)      # 0x9d88
movups 0x68(%rsp), %xmm0
movups 0x78(%rsp), %xmm1
jmp 0x35b7
movq %r15, %rdi
xorl %eax, %eax
callq 0x475d
movl 0x50(%rsp), %eax
movl %eax, 0x6675(%rip)      # 0x9d88
movups 0x30(%rsp), %xmm0
movups 0x40(%rsp), %xmm1
movups %xmm1, 0x6654(%rip)     # 0x9d78
movups %xmm0, 0x663d(%rip)     # 0x9d68
cmpl $0x20, 0x6636(%rip)     # 0x9d68
jne 0x3771
xorl %edi, %edi
callq 0x4a4c
movq %r13, %rdi
callq 0x31d6
movq %r15, %rdi
xorl %eax, %eax
callq 0x475d
movl 0x50(%rsp), %eax
movl %eax, 0x6631(%rip)      # 0x9d88
movups 0x30(%rsp), %xmm0
movups 0x40(%rsp), %xmm1
movups %xmm1, 0x6610(%rip)     # 0x9d78
movups %xmm0, 0x65f9(%rip)     # 0x9d68
jmp 0x3778
xorl %eax, %eax
callq 0x45e8
movl 0x65ea(%rip), %eax      # 0x9d68
cmpl $0x1b, %eax
je 0x36ff
cmpl $0x20, %eax
jne 0x39cd
movl %ebp, %edi
callq 0x453b
jmp 0x372b
movl 0x65e9(%rip), %eax      # 0x9d88
movl %eax, 0x20(%rsp)
movups 0x65ce(%rip), %xmm0     # 0x9d78
movups %xmm0, 0x10(%rsp)
movups 0x65b2(%rip), %xmm0     # 0x9d68
movups %xmm0, (%rsp)
movq %rbx, %rdi
pushq $0x1d
popq %rsi
callq 0x49ce
movl 0x88(%rsp), %eax
movl %eax, 0x65b6(%rip)      # 0x9d88
movups 0x68(%rsp), %xmm0
movups 0x78(%rsp), %xmm1
jmp 0x3a0d
movq %r15, %rdi
xorl %eax, %eax
callq 0x475d
movl 0x50(%rsp), %eax
movl %eax, 0x6593(%rip)      # 0x9d88
movups 0x30(%rsp), %xmm0
movups 0x40(%rsp), %xmm1
movups %xmm1, 0x6572(%rip)     # 0x9d78
movups %xmm0, 0x655b(%rip)     # 0x9d68
cmpl $0x20, 0x6554(%rip)     # 0x9d68
jne 0x3927
pushq $0x1
popq %rdi
callq 0x4a4c
xorl %eax, %eax
callq 0x227c
movq %r13, %rdi
movl %eax, %esi
callq 0x3160
movl %eax, 0x64(%rsp)
movq %rbx, %rdi
xorl %eax, %eax
callq 0x475d
movl 0x88(%rsp), %eax
movl %eax, 0x20(%rsp)
movups 0x68(%rsp), %xmm0
movups 0x78(%rsp), %xmm1
movups %xmm1, 0x10(%rsp)
movups %xmm0, (%rsp)
movq %r15, %rdi
pushq $0x13
popq %rsi
callq 0x49ce
movl 0x50(%rsp), %eax
movl %eax, 0x6514(%rip)      # 0x9d88
movups 0x30(%rsp), %xmm0
movups 0x40(%rsp), %xmm1
movups %xmm1, 0x64f3(%rip)     # 0x9d78
movups %xmm0, 0x64dc(%rip)     # 0x9d68
pushq $0x2
popq %rdi
callq 0x305c
cmpl $0x20, 0x64cd(%rip)     # 0x9d68
jne 0x3933
pushq $0x2
popq %rdi
callq 0x4a4c
movq %r13, %rdi
callq 0x319c
movq %r15, %rdi
xorl %eax, %eax
callq 0x475d
movl 0x50(%rsp), %eax
movl %eax, 0x64c3(%rip)      # 0x9d88
movups 0x30(%rsp), %xmm0
movups 0x40(%rsp), %xmm1
movups %xmm1, 0x64a2(%rip)     # 0x9d78
movups %xmm0, 0x648b(%rip)     # 0x9d68
movl 0x6485(%rip), %eax      # 0x9d68
cmpl $0x1b, %eax
je 0x38f6
cmpl $0x20, %eax
jne 0x3933
movl %ebp, %edi
callq 0x453b
jmp 0x3894
movq %r15, %rdi
xorl %eax, %eax
callq 0x475d
movl 0x50(%rsp), %eax
movl %eax, 0x647e(%rip)      # 0x9d88
movups 0x30(%rsp), %xmm0
movups 0x40(%rsp), %xmm1
movups %xmm1, 0x645d(%rip)     # 0x9d78
movups %xmm0, 0x6446(%rip)     # 0x9d68
jmp 0x3894
xorl %eax, %eax
callq 0x45e8
jmp 0x3578
movl 0x644f(%rip), %eax      # 0x9d88
movl %eax, 0x20(%rsp)
movups 0x6434(%rip), %xmm0     # 0x9d78
movups %xmm0, 0x10(%rsp)
movups 0x6418(%rip), %xmm0     # 0x9d68
movups %xmm0, (%rsp)
movq %r15, %rdi
pushq $0x14
popq %rsi
callq 0x49ce
movl 0x50(%rsp), %eax
movl %eax, 0x641f(%rip)      # 0x9d88
movups 0x30(%rsp), %xmm0
movups 0x40(%rsp), %xmm1
movups %xmm1, 0x63fe(%rip)     # 0x9d78
movups %xmm0, 0x63e7(%rip)     # 0x9d68
xorl %eax, %eax
callq 0x3238
cmpl $0x1d, 0x63d9(%rip)     # 0x9d68
jne 0x39c4
xorl %eax, %eax
callq 0x462e
movq %r15, %rdi
xorl %eax, %eax
callq 0x475d
movl 0x50(%rsp), %eax
movl %eax, 0x63dc(%rip)      # 0x9d88
movups 0x30(%rsp), %xmm0
movups 0x40(%rsp), %xmm1
movups %xmm1, 0x63bb(%rip)     # 0x9d78
movups %xmm0, 0x63a4(%rip)     # 0x9d68
movl 0x64(%rsp), %edi
callq 0x3535
movl 0x63b5(%rip), %eax      # 0x9d88
movl %eax, 0x20(%rsp)
movups 0x639a(%rip), %xmm0     # 0x9d78
movups %xmm0, 0x10(%rsp)
movups 0x637e(%rip), %xmm0     # 0x9d68
movups %xmm0, (%rsp)
movq %r15, %rdi
pushq $0x1d
popq %rsi
callq 0x49ce
movl 0x50(%rsp), %eax
movl %eax, 0x6385(%rip)      # 0x9d88
movups 0x30(%rsp), %xmm0
movups 0x40(%rsp), %xmm1
movups %xmm1, 0x6364(%rip)     # 0x9d78
movups %xmm0, 0x634d(%rip)     # 0x9d68
jmp 0x3578
movl 0x5c(%rsp), %edi
callq 0x237b
xorl %eax, %eax
callq 0x227c
movl 0x60(%rsp), %edi
movl %eax, %esi
callq 0x327c
xorl %eax, %eax
callq 0x3361
pushq $0x6
popq %rdi
movl %eax, %esi
callq 0x2285
callq 0x3a71
xorl %eax, %eax
callq 0x231b
xorl %eax, %eax
callq 0x30c4
addq $0xb8, %rsp
popq %rbx
popq %r12
popq %r13
popq %r14
popq %r15
popq %rbp
retq