// File: /workspace/github_c_makefile_star2_O3/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 0x758d(%rip), %r12      # 0xad6c
leaq 0x68(%rsp), %r13
leaq 0x90(%rsp), %rbx
leaq 0x2bd5(%rip), %rbp      # 0x63c8
movl 0x756f(%rip), %eax      # 0xad68
cmpl $0x7, %eax
je 0x3a62
cmpl $0x8, %eax
je 0x397b
cmpl $0x9, %eax
jne 0x3cb0
movq %r15, %rdi
xorl %eax, %eax
callq 0x4c9c
movl 0x50(%rsp), %eax
movl %eax, 0x7560(%rip)      # 0xad88
movups 0x30(%rsp), %xmm0
movups 0x40(%rsp), %xmm1
movups %xmm1, 0x753f(%rip)     # 0xad78
movups %xmm0, 0x7528(%rip)     # 0xad68
cmpl $0x20, 0x7521(%rip)     # 0xad68
jne 0x38f2
movl $0x3, %edi
callq 0x502d
movl 0x752b(%rip), %eax      # 0xad88
movl %eax, 0x50(%rsp)
movups 0x7510(%rip), %xmm0     # 0xad78
movaps %xmm0, 0x40(%rsp)
movups 0x74f4(%rip), %xmm0     # 0xad68
movaps %xmm0, 0x30(%rsp)
movq %rbx, %rdi
xorl %eax, %eax
callq 0x4c9c
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 0x4f55
movl 0x88(%rsp), %eax
movl %eax, 0x74c7(%rip)      # 0xad88
movups 0x68(%rsp), %xmm0
movups 0x78(%rsp), %xmm1
movups %xmm1, 0x74a6(%rip)     # 0xad78
movups %xmm0, 0x748f(%rip)     # 0xad68
cmpl $0x21, 0x7488(%rip)     # 0xad68
jne 0x38fb
movl 0x7484(%rip), %esi      # 0xad6c
movq %r14, %rdi
callq 0x33be
jmp 0x3903
xorl %eax, %eax
callq 0x4b02
jmp 0x3932
movq %rbp, %rdi
callq 0x4acf
movq %r13, %rdi
xorl %eax, %eax
callq 0x4c9c
movl 0x88(%rsp), %eax
movl %eax, 0x746e(%rip)      # 0xad88
movups 0x68(%rsp), %xmm0
movups 0x78(%rsp), %xmm1
movups %xmm1, 0x744d(%rip)     # 0xad78
movups %xmm0, 0x7436(%rip)     # 0xad68
movl 0x7430(%rip), %eax      # 0xad68
cmpl $0x1b, %eax
je 0x3955
cmpl $0x20, %eax
jne 0x3a18
movl $0x1b, %edi
callq 0x4a4f
jmp 0x3840
movq %r13, %rdi
xorl %eax, %eax
callq 0x4c9c
movl 0x88(%rsp), %eax
movl %eax, 0x741c(%rip)      # 0xad88
movups 0x68(%rsp), %xmm0
movups 0x78(%rsp), %xmm1
jmp 0x3832
movq %r15, %rdi
xorl %eax, %eax
callq 0x4c9c
movl 0x50(%rsp), %eax
movl %eax, 0x73f9(%rip)      # 0xad88
movups 0x30(%rsp), %xmm0
movups 0x40(%rsp), %xmm1
movups %xmm1, 0x73d8(%rip)     # 0xad78
movups %xmm0, 0x73c1(%rip)     # 0xad68
cmpl $0x20, 0x73ba(%rip)     # 0xad68
jne 0x39ed
xorl %edi, %edi
callq 0x502d
movq %r12, %rdi
callq 0x337c
movq %r15, %rdi
xorl %eax, %eax
callq 0x4c9c
movl 0x50(%rsp), %eax
movl %eax, 0x73b5(%rip)      # 0xad88
movups 0x30(%rsp), %xmm0
movups 0x40(%rsp), %xmm1
movups %xmm1, 0x7394(%rip)     # 0xad78
movups %xmm0, 0x737d(%rip)     # 0xad68
jmp 0x39f4
xorl %eax, %eax
callq 0x4b02
movl 0x736e(%rip), %eax      # 0xad68
cmpl $0x1b, %eax
je 0x397b
cmpl $0x20, %eax
jne 0x3c5b
movl $0x1b, %edi
callq 0x4a4f
jmp 0x39a7
movl 0x736a(%rip), %eax      # 0xad88
movl %eax, 0x20(%rsp)
movups 0x734f(%rip), %xmm0     # 0xad78
movups %xmm0, 0x10(%rsp)
movups 0x7333(%rip), %xmm0     # 0xad68
movups %xmm0, (%rsp)
movq %r13, %rdi
movl $0x1d, %esi
callq 0x4f55
movl 0x88(%rsp), %eax
movl %eax, 0x7335(%rip)      # 0xad88
movups 0x68(%rsp), %xmm0
movups 0x78(%rsp), %xmm1
jmp 0x3c9d
movq %r15, %rdi
xorl %eax, %eax
callq 0x4c9c
movl 0x50(%rsp), %eax
movl %eax, 0x7312(%rip)      # 0xad88
movups 0x30(%rsp), %xmm0
movups 0x40(%rsp), %xmm1
movups %xmm1, 0x72f1(%rip)     # 0xad78
movups %xmm0, 0x72da(%rip)     # 0xad68
cmpl $0x20, 0x72d3(%rip)     # 0xad68
jne 0x3bb3
movl $0x1, %edi
callq 0x502d
xorl %eax, %eax
callq 0x22bc
movq %r12, %rdi
movl %eax, %esi
callq 0x32f7
movl %eax, 0x64(%rsp)
movq %r13, %rdi
xorl %eax, %eax
callq 0x4c9c
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 0x4f55
movl 0x50(%rsp), %eax
movl %eax, 0x728f(%rip)      # 0xad88
movups 0x30(%rsp), %xmm0
movups 0x40(%rsp), %xmm1
movups %xmm1, 0x726e(%rip)     # 0xad78
movups %xmm0, 0x7257(%rip)     # 0xad68
movl $0x2, %edi
callq 0x31e8
cmpl $0x20, 0x7246(%rip)     # 0xad68
jne 0x3bbf
movl $0x2, %edi
callq 0x502d
movq %r12, %rdi
callq 0x333a
movq %r15, %rdi
xorl %eax, %eax
callq 0x4c9c
movl 0x50(%rsp), %eax
movl %eax, 0x723a(%rip)      # 0xad88
movups 0x30(%rsp), %xmm0
movups 0x40(%rsp), %xmm1
movups %xmm1, 0x7219(%rip)     # 0xad78
movups %xmm0, 0x7202(%rip)     # 0xad68
movl 0x71fc(%rip), %eax      # 0xad68
cmpl $0x1b, %eax
je 0x3b82
cmpl $0x20, %eax
jne 0x3bbf
movl $0x1b, %edi
callq 0x4a4f
jmp 0x3b1b
movq %r15, %rdi
xorl %eax, %eax
callq 0x4c9c
movl 0x50(%rsp), %eax
movl %eax, 0x71f2(%rip)      # 0xad88
movups 0x30(%rsp), %xmm0
movups 0x40(%rsp), %xmm1
movups %xmm1, 0x71d1(%rip)     # 0xad78
movups %xmm0, 0x71ba(%rip)     # 0xad68
jmp 0x3b1b
xorl %eax, %eax
callq 0x4b02
jmp 0x37f3
movl 0x71c3(%rip), %eax      # 0xad88
movl %eax, 0x20(%rsp)
movups 0x71a8(%rip), %xmm0     # 0xad78
movups %xmm0, 0x10(%rsp)
movups 0x718c(%rip), %xmm0     # 0xad68
movups %xmm0, (%rsp)
movq %r15, %rdi
movl $0x14, %esi
callq 0x4f55
movl 0x50(%rsp), %eax
movl %eax, 0x7191(%rip)      # 0xad88
movups 0x30(%rsp), %xmm0
movups 0x40(%rsp), %xmm1
movups %xmm1, 0x7170(%rip)     # 0xad78
movups %xmm0, 0x7159(%rip)     # 0xad68
xorl %eax, %eax
callq 0x33e9
cmpl $0x1d, 0x714b(%rip)     # 0xad68
jne 0x3c52
xorl %eax, %eax
callq 0x4b48
movq %r15, %rdi
xorl %eax, %eax
callq 0x4c9c
movl 0x50(%rsp), %eax
movl %eax, 0x714e(%rip)      # 0xad88
movups 0x30(%rsp), %xmm0
movups 0x40(%rsp), %xmm1
movups %xmm1, 0x712d(%rip)     # 0xad78
movups %xmm0, 0x7116(%rip)     # 0xad68
movl 0x64(%rsp), %edi
callq 0x37a9
movl 0x7127(%rip), %eax      # 0xad88
movl %eax, 0x20(%rsp)
movups 0x710c(%rip), %xmm0     # 0xad78
movups %xmm0, 0x10(%rsp)
movups 0x70f0(%rip), %xmm0     # 0xad68
movups %xmm0, (%rsp)
movq %r15, %rdi
movl $0x1d, %esi
callq 0x4f55
movl 0x50(%rsp), %eax
movl %eax, 0x70f5(%rip)      # 0xad88
movups 0x30(%rsp), %xmm0
movups 0x40(%rsp), %xmm1
movups %xmm1, 0x70d4(%rip)     # 0xad78
movups %xmm0, 0x70bd(%rip)     # 0xad68
jmp 0x37f3
movl 0x5c(%rsp), %edi
callq 0x2431
xorl %eax, %eax
callq 0x22bc
movl 0x60(%rsp), %edi
movl %eax, %esi
callq 0x34ad
xorl %eax, %eax
callq 0x35e6
movl $0x6, %edi
movl %eax, %esi
callq 0x22c5
callq 0x3d03
xorl %eax, %eax
callq 0x23b8
xorl %eax, %eax
callq 0x3253
addq $0xb8, %rsp
popq %rbx
popq %r12
popq %r13
popq %r14
popq %r15
popq %rbp
retq