// File: /workspace/github_c_makefile_star2_O1/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)
movl $0x7, %edi
xorl %esi, %esi
callq 0x22c5
movl %eax, 0x5c(%rsp)
leaq 0x34(%rsp), %r14
leaq 0x30(%rsp), %r15
leaq 0x665d(%rip), %r12      # 0x9d6c
leaq 0x68(%rsp), %r13
leaq 0x90(%rsp), %rbx
leaq 0x1ca5(%rip), %rbp      # 0x53c8
movl 0x663f(%rip), %eax      # 0x9d68
cmpl $0x7, %eax
je 0x3992
cmpl $0x8, %eax
je 0x38ab
cmpl $0x9, %eax
jne 0x3be0
movq %r15, %rdi
xorl %eax, %eax
callq 0x4a16
movl 0x50(%rsp), %eax
movl %eax, 0x6630(%rip)      # 0x9d88
movups 0x30(%rsp), %xmm0
movups 0x40(%rsp), %xmm1
movups %xmm1, 0x660f(%rip)     # 0x9d78
movups %xmm0, 0x65f8(%rip)     # 0x9d68
cmpl $0x20, 0x65f1(%rip)     # 0x9d68
jne 0x3822
movl $0x3, %edi
callq 0x4db2
movl 0x65fb(%rip), %eax      # 0x9d88
movl %eax, 0x50(%rsp)
movups 0x65e0(%rip), %xmm0     # 0x9d78
movaps %xmm0, 0x40(%rsp)
movups 0x65c4(%rip), %xmm0     # 0x9d68
movaps %xmm0, 0x30(%rsp)
movq %rbx, %rdi
xorl %eax, %eax
callq 0x4a16
movl 0xb0(%rsp), %eax
movl %eax, 0x20(%rsp)
movups 0x90(%rsp), %xmm0
movups 0xa0(%rsp), %xmm1
movups %xmm1, 0x10(%rsp)
movups %xmm0, (%rsp)
movq %r13, %rdi
movl $0x15, %esi
callq 0x4cda
movl 0x88(%rsp), %eax
movl %eax, 0x6597(%rip)      # 0x9d88
movups 0x68(%rsp), %xmm0
movups 0x78(%rsp), %xmm1
movups %xmm1, 0x6576(%rip)     # 0x9d78
movups %xmm0, 0x655f(%rip)     # 0x9d68
cmpl $0x21, 0x6558(%rip)     # 0x9d68
jne 0x382b
movl 0x6554(%rip), %esi      # 0x9d6c
movq %r14, %rdi
callq 0x3371
jmp 0x3833
xorl %eax, %eax
callq 0x487c
jmp 0x3862
movq %rbp, %rdi
callq 0x4849
movq %r13, %rdi
xorl %eax, %eax
callq 0x4a16
movl 0x88(%rsp), %eax
movl %eax, 0x653e(%rip)      # 0x9d88
movups 0x68(%rsp), %xmm0
movups 0x78(%rsp), %xmm1
movups %xmm1, 0x651d(%rip)     # 0x9d78
movups %xmm0, 0x6506(%rip)     # 0x9d68
movl 0x6500(%rip), %eax      # 0x9d68
cmpl $0x1b, %eax
je 0x3885
cmpl $0x20, %eax
jne 0x3948
movl $0x1b, %edi
callq 0x47c9
jmp 0x3770
movq %r13, %rdi
xorl %eax, %eax
callq 0x4a16
movl 0x88(%rsp), %eax
movl %eax, 0x64ec(%rip)      # 0x9d88
movups 0x68(%rsp), %xmm0
movups 0x78(%rsp), %xmm1
jmp 0x3762
movq %r15, %rdi
xorl %eax, %eax
callq 0x4a16
movl 0x50(%rsp), %eax
movl %eax, 0x64c9(%rip)      # 0x9d88
movups 0x30(%rsp), %xmm0
movups 0x40(%rsp), %xmm1
movups %xmm1, 0x64a8(%rip)     # 0x9d78
movups %xmm0, 0x6491(%rip)     # 0x9d68
cmpl $0x20, 0x648a(%rip)     # 0x9d68
jne 0x391d
xorl %edi, %edi
callq 0x4db2
movq %r12, %rdi
callq 0x332f
movq %r15, %rdi
xorl %eax, %eax
callq 0x4a16
movl 0x50(%rsp), %eax
movl %eax, 0x6485(%rip)      # 0x9d88
movups 0x30(%rsp), %xmm0
movups 0x40(%rsp), %xmm1
movups %xmm1, 0x6464(%rip)     # 0x9d78
movups %xmm0, 0x644d(%rip)     # 0x9d68
jmp 0x3924
xorl %eax, %eax
callq 0x487c
movl 0x643e(%rip), %eax      # 0x9d68
cmpl $0x1b, %eax
je 0x38ab
cmpl $0x20, %eax
jne 0x3b8b
movl $0x1b, %edi
callq 0x47c9
jmp 0x38d7
movl 0x643a(%rip), %eax      # 0x9d88
movl %eax, 0x20(%rsp)
movups 0x641f(%rip), %xmm0     # 0x9d78
movups %xmm0, 0x10(%rsp)
movups 0x6403(%rip), %xmm0     # 0x9d68
movups %xmm0, (%rsp)
movq %r13, %rdi
movl $0x1d, %esi
callq 0x4cda
movl 0x88(%rsp), %eax
movl %eax, 0x6405(%rip)      # 0x9d88
movups 0x68(%rsp), %xmm0
movups 0x78(%rsp), %xmm1
jmp 0x3bcd
movq %r15, %rdi
xorl %eax, %eax
callq 0x4a16
movl 0x50(%rsp), %eax
movl %eax, 0x63e2(%rip)      # 0x9d88
movups 0x30(%rsp), %xmm0
movups 0x40(%rsp), %xmm1
movups %xmm1, 0x63c1(%rip)     # 0x9d78
movups %xmm0, 0x63aa(%rip)     # 0x9d68
cmpl $0x20, 0x63a3(%rip)     # 0x9d68
jne 0x3ae3
movl $0x1, %edi
callq 0x4db2
xorl %eax, %eax
callq 0x22bc
movq %r12, %rdi
movl %eax, %esi
callq 0x32aa
movl %eax, 0x64(%rsp)
movq %r13, %rdi
xorl %eax, %eax
callq 0x4a16
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
movl $0x13, %esi
callq 0x4cda
movl 0x50(%rsp), %eax
movl %eax, 0x635f(%rip)      # 0x9d88
movups 0x30(%rsp), %xmm0
movups 0x40(%rsp), %xmm1
movups %xmm1, 0x633e(%rip)     # 0x9d78
movups %xmm0, 0x6327(%rip)     # 0x9d68
movl $0x2, %edi
callq 0x31a0
cmpl $0x20, 0x6316(%rip)     # 0x9d68
jne 0x3aef
movl $0x2, %edi
callq 0x4db2
movq %r12, %rdi
callq 0x32ed
movq %r15, %rdi
xorl %eax, %eax
callq 0x4a16
movl 0x50(%rsp), %eax
movl %eax, 0x630a(%rip)      # 0x9d88
movups 0x30(%rsp), %xmm0
movups 0x40(%rsp), %xmm1
movups %xmm1, 0x62e9(%rip)     # 0x9d78
movups %xmm0, 0x62d2(%rip)     # 0x9d68
movl 0x62cc(%rip), %eax      # 0x9d68
cmpl $0x1b, %eax
je 0x3ab2
cmpl $0x20, %eax
jne 0x3aef
movl $0x1b, %edi
callq 0x47c9
jmp 0x3a4b
movq %r15, %rdi
xorl %eax, %eax
callq 0x4a16
movl 0x50(%rsp), %eax
movl %eax, 0x62c2(%rip)      # 0x9d88
movups 0x30(%rsp), %xmm0
movups 0x40(%rsp), %xmm1
movups %xmm1, 0x62a1(%rip)     # 0x9d78
movups %xmm0, 0x628a(%rip)     # 0x9d68
jmp 0x3a4b
xorl %eax, %eax
callq 0x487c
jmp 0x3723
movl 0x6293(%rip), %eax      # 0x9d88
movl %eax, 0x20(%rsp)
movups 0x6278(%rip), %xmm0     # 0x9d78
movups %xmm0, 0x10(%rsp)
movups 0x625c(%rip), %xmm0     # 0x9d68
movups %xmm0, (%rsp)
movq %r15, %rdi
movl $0x14, %esi
callq 0x4cda
movl 0x50(%rsp), %eax
movl %eax, 0x6261(%rip)      # 0x9d88
movups 0x30(%rsp), %xmm0
movups 0x40(%rsp), %xmm1
movups %xmm1, 0x6240(%rip)     # 0x9d78
movups %xmm0, 0x6229(%rip)     # 0x9d68
xorl %eax, %eax
callq 0x339c
cmpl $0x1d, 0x621b(%rip)     # 0x9d68
jne 0x3b82
xorl %eax, %eax
callq 0x48c2
movq %r15, %rdi
xorl %eax, %eax
callq 0x4a16
movl 0x50(%rsp), %eax
movl %eax, 0x621e(%rip)      # 0x9d88
movups 0x30(%rsp), %xmm0
movups 0x40(%rsp), %xmm1
movups %xmm1, 0x61fd(%rip)     # 0x9d78
movups %xmm0, 0x61e6(%rip)     # 0x9d68
movl 0x64(%rsp), %edi
callq 0x36d9
movl 0x61f7(%rip), %eax      # 0x9d88
movl %eax, 0x20(%rsp)
movups 0x61dc(%rip), %xmm0     # 0x9d78
movups %xmm0, 0x10(%rsp)
movups 0x61c0(%rip), %xmm0     # 0x9d68
movups %xmm0, (%rsp)
movq %r15, %rdi
movl $0x1d, %esi
callq 0x4cda
movl 0x50(%rsp), %eax
movl %eax, 0x61c5(%rip)      # 0x9d88
movups 0x30(%rsp), %xmm0
movups 0x40(%rsp), %xmm1
movups %xmm1, 0x61a4(%rip)     # 0x9d78
movups %xmm0, 0x618d(%rip)     # 0x9d68
jmp 0x3723
movl 0x5c(%rsp), %edi
callq 0x2429
xorl %eax, %eax
callq 0x22bc
movl 0x60(%rsp), %edi
movl %eax, %esi
callq 0x33de
xorl %eax, %eax
callq 0x3517
movl $0x6, %edi
movl %eax, %esi
callq 0x22c5
callq 0x3c33
xorl %eax, %eax
callq 0x23b2
xorl %eax, %eax
callq 0x3206
addq $0xb8, %rsp
popq %rbx
popq %r12
popq %r13
popq %r14
popq %r15
popq %rbp
retq