// File: /workspace/github_cpp_makefile_star2_O1/besm6[P]pascal-re/pascompl.cc
// Function: initTables::initInsnTemplates()
void initInsnTemplates() {
        Insn l3var1z;
        Operator l3var2z;

        for (l3var1z = ATX; l3var1z <= JADDM; succ(l3var1z))
            InsnTemp[l3var1z] = l3var1z * 010000;
        InsnTemp[ELFUN] = 0500000;
        jdx = KUTC;
        for (l3var1z = UTC; l3var1z <= VJM; succ(l3var1z)) {
            InsnTemp[l3var1z] = jdx;
            jdx = (jdx + 0100000);
        }
        for (idx=1; idx <= 15; ++idx)
            indexreg[idx] = idx * frameRegTemplate;
        jumpType = InsnTemp[UJ];
        for (l3var2z = MUL; l3var2z<=ASSIGNOP; succ(l3var2z)) {
            opFlags[l3var2z] = opfCOMM;
            opToInsn[l3var2z] = 0;
            if (Bits(MUL, RDIVOP, PLUSOP, MINUSOP).has(l3var2z)) {
                opToMode[l3var2z] = 3;
            } else if (Bits(IDIVOP, IMODOP).has(l3var2z)) {
                opToMode[l3var2z] = 2;
            } else if (Bits(IMULOP, INTPLUS, INTMINUS, badop27).has(l3var2z)) {
                opToMode[l3var2z] = 1;
            } else if (Bits(IDIVROP, badop30, badop31).has(l3var2z)) {
                opToMode[l3var2z] = 4;
            } else {
                opToMode[l3var2z] = 0;
            }
        }
        opToInsn[MUL] = InsnTemp[AMULX];
        opToInsn[RDIVOP] = InsnTemp[ADIVX];
        opToInsn[IDIVOP] = 17; /* P/DI */
        opToInsn[IMODOP] = 11; /* P/MD */
        opToInsn[PLUSOP] = InsnTemp[ADD];
        opToInsn[MINUSOP] = InsnTemp[SUB];
        opToInsn[IMULOP] = InsnTemp[AMULX];
        opToInsn[SETAND] = InsnTemp[AAX];
        opToInsn[SETXOR] = InsnTemp[AEX];
        opToInsn[SETOR] = InsnTemp[AOX];
        opToInsn[INTPLUS] = InsnTemp[ADD];
        opToInsn[INTMINUS] = InsnTemp[SUB];
        opToInsn[IDIVROP] = 67; /* P/IS */
        opToInsn[badop27] = 22; /* P/II unused, undefined */
        opToInsn[badop30] = 23; /* P/RR */
        opToInsn[badop31] = 24; /* P/RI */
        opToInsn[MKRANGE] = 61; /* P/PI */
        opToInsn[SETSUB] = InsnTemp[AAX];
        opFlags[AMPERS] = opfAND;
        opFlags[IDIVOP] = opfDIV;
        opFlags[OROP] = opfOR;
        opFlags[IMULOP] = opfMULMSK;
        opFlags[IMODOP] = opfMOD;
        opFlags[badop27] = opfHELP;
        opFlags[badop30] = opfHELP;
        opFlags[badop31] = opfHELP;
        opFlags[MKRANGE] = opfHELP;
        opFlags[IDIVROP] = opfHELP;
        opFlags[ASSIGNOP] = opfASSN;
        opFlags[SETSUB] = opfINV;
        for (jdx = 0; jdx <= 6; ++jdx) {
            funcInsn[jdx] = (0500000 + jdx);
        }
    }

// Assembly:
pushq %rbx
leaq 0x4eb36(%rip), %rax     # 0x69380
xorl %ecx, %ecx
movq %rcx, (%rax)
addq $0x8, %rax
addq $0x1000, %rcx           # imm = 0x1000
cmpq $0x26000, %rcx          # imm = 0x26000
jne 0x1a84c
movq $0x28000, 0x4ec42(%rip) # imm = 0x28000
movq $0x90000, 0x8(%rdi)     # imm = 0x90000
xorl %eax, %eax
leaq 0x4eb01(%rip), %rcx     # 0x69380
movq 0x8(%rdi), %rdx
movq %rdx, 0x138(%rcx,%rax,8)
addq $0x8000, 0x8(%rdi)      # imm = 0x8000
incq %rax
cmpq $0x8, %rax
jne 0x1a87f
movq 0x99e5(%rip), %rax      # 0x24288
movq $0x1, (%rdi)
movl $0x1, %edx
leaq 0x4e5ca(%rip), %rcx     # 0x68e80
movq %rax, %rsi
imulq %rdx, %rsi
movq %rsi, (%rcx,%rdx,8)
movq (%rdi), %rsi
leaq 0x1(%rsi), %rdx
movq %rdx, (%rdi)
cmpq $0xf, %rsi
jl 0x1a8b6
movq 0x4ec10(%rip), %rax     # 0x694e8
movq %rax, 0x49f31(%rip)     # 0x64810
leaq 0x4e91a(%rip), %rax     # 0x69200
movl $0x2f, %ecx
xorl %edx, %edx
leaq 0x4e60c(%rip), %rsi     # 0x68f00
movabsq $0xc60000000000, %r8    # imm = 0xC60000000000
movabsq $0x180000000000, %r9    # imm = 0x180000000000
movabsq $0x107000000, %r10      # imm = 0x107000000
movl $0x80c00000, %r11d      # imm = 0x80C00000
leaq 0x4e761(%rip), %rbx     # 0x69080
movl $0x0, (%rax)
movq $0x0, (%rdx,%rsi)
btq %rcx, %r8
jae 0x1a93d
movq $0x3, (%rdx,%rbx)
jmp 0x1a975
btq %rcx, %r9
jae 0x1a94d
movq $0x2, (%rdx,%rbx)
jmp 0x1a975
btq %rcx, %r10
jae 0x1a95d
movq $0x1, (%rdx,%rbx)
jmp 0x1a975
btq %rcx, %r11
jae 0x1a96d
movq $0x4, (%rdx,%rbx)
jmp 0x1a975
movq $0x0, (%rdx,%rbx)
addq $0x4, %rax
addq $0x8, %rdx
decq %rcx
cmpq $0x13, %rcx
jne 0x1a91f
movq 0x4ea6b(%rip), %rax     # 0x693f8
movq %rax, 0x4e56c(%rip)     # 0x68f00
movq 0x4ea55(%rip), %rcx     # 0x693f0
movq %rcx, 0x4e566(%rip)     # 0x68f08
movq $0x11, 0x4e56b(%rip) # 0x68f18
movq $0xb, 0x4e568(%rip) # 0x68f20
movq 0x4e9e1(%rip), %rcx     # 0x693a0
movq %rcx, 0x4e562(%rip)     # 0x68f28
movq 0x4e9db(%rip), %rdx     # 0x693a8
movq %rdx, 0x4e55c(%rip)     # 0x68f30
movq %rax, 0x4e59d(%rip)     # 0x68f78
movq 0x4e9e6(%rip), %rax     # 0x693c8
movq %rax, 0x4e59f(%rip)     # 0x68f88
movq 0x4e9e0(%rip), %rsi     # 0x693d0
movq %rsi, 0x4e599(%rip)     # 0x68f90
movq 0x4e9ea(%rip), %rsi     # 0x693e8
movq %rsi, 0x4e593(%rip)     # 0x68f98
movq %rcx, 0x4e59c(%rip)     # 0x68fa8
movq %rdx, 0x4e59d(%rip)     # 0x68fb0
movq $0x43, 0x4e562(%rip) # 0x68f80
movq $0x16, 0x4e58f(%rip) # 0x68fb8
movq $0x17, 0x4e58c(%rip) # 0x68fc0
movq $0x18, 0x4e589(%rip) # 0x68fc8
movq $0x3d, 0x4e586(%rip) # 0x68fd0
movq %rax, 0x4e54f(%rip)     # 0x68fa0
movabsq $0x400000002, %rax      # imm = 0x400000002
movq %rax, 0x4e7a6(%rip)     # 0x69208
movl $0x3, 0x4e7b0(%rip)     # 0x6921c
movabsq $0x100000006, %rax      # imm = 0x100000006
movq %rax, 0x4e7bf(%rip)     # 0x6923c
movl $0x5, 0x4e789(%rip)     # 0x69210
movaps 0x1e52(%rip), %xmm0     # 0x1c8e0
movups %xmm0, 0x4e7c7(%rip)    # 0x6925c
movl $0x7, 0x4e7cd(%rip)     # 0x6926c
movl $0x8, 0x4e7a7(%rip)     # 0x69250
movq $0x0, 0x8(%rdi)
xorl %ecx, %ecx
leaq 0x4e806(%rip), %rax     # 0x692c0
leaq 0x28000(%rcx), %rdx
movq %rdx, (%rax,%rcx,8)
movq 0x8(%rdi), %rdx
leaq 0x1(%rdx), %rcx
movq %rcx, 0x8(%rdi)
cmpq $0x6, %rdx
jl 0x1aaba
popq %rbx
retq
nop