// File: /workspace/github_cpp_makefile_star2_O2/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 %r14
pushq %rbx
leaq 0x50c74(%rip), %rax     # 0x68370
xorl %ecx, %ecx
cmpq $0x26000, %rcx          # imm = 0x26000
je 0x17717
movq %rcx, (%rax)
addq $0x1000, %rcx           # imm = 0x1000
addq $0x8, %rax
jmp 0x176fe
movq $0x28000, 0x50d7e(%rip) # imm = 0x28000
movq $0x90000, 0x8(%rdi)     # imm = 0x90000
movl $0x90000, %ecx          # imm = 0x90000
xorl %eax, %eax
leaq 0x50c38(%rip), %rdx     # 0x68370
movl $0x8000, %esi           # imm = 0x8000
cmpq $0x8, %rax
je 0x1775b
movq %rcx, 0x138(%rdx,%rax,8)
movq 0x8(%rdi), %rcx
addq %rsi, %rcx
movq %rcx, 0x8(%rdi)
incq %rax
jmp 0x1773d
movabsq $0x1, %rcx
movq 0xbb0c(%rip), %rax      # 0x23278
leaq 0x506fd(%rip), %rdx     # 0x67e70
movq %rcx, (%rdi)
cmpq $0xf, %rcx
jg 0x1778f
movq %rax, %rsi
imulq %rcx, %rsi
movq %rsi, (%rdx,%rcx,8)
movq (%rdi), %rcx
incq %rcx
jmp 0x17773
movq 0x50d42(%rip), %rax     # 0x684d8
movq %rax, 0x4c063(%rip)     # 0x63800
movabsq $0x2f, %rcx
leaq 0x50a42(%rip), %rax     # 0x681f0
xorl %edx, %edx
leaq 0x50739(%rip), %rsi     # 0x67ef0
movabsq $0x1, %r8
movabsq $0xc60000000000, %r9    # imm = 0xC60000000000
movabsq $0x180000000000, %r10   # imm = 0x180000000000
movabsq $0x107000000, %r11      # imm = 0x107000000
leaq 0x5088a(%rip), %rbx     # 0x68070
cmpq $0x13, %rcx
je 0x1784d
andl $0x0, (%rax)
andq $0x0, (%rdx,%rsi)
movq %r8, %r14
shlq %cl, %r14
btq %rcx, %r9
jae 0x1780a
movq $0x3, (%rdx,%rbx)
jmp 0x17840
testq %r10, %r14
je 0x17819
movq $0x2, (%rdx,%rbx)
jmp 0x17840
testq %r11, %r14
je 0x17828
movq $0x1, (%rdx,%rbx)
jmp 0x17840
testl $0x80c00000, %r14d      # imm = 0x80C00000
je 0x1783b
movq $0x4, (%rdx,%rbx)
jmp 0x17840
andq $0x0, (%rdx,%rbx)
decq %rcx
addq $0x4, %rax
addq $0x8, %rdx
jmp 0x177e6
movq 0x50b94(%rip), %rax     # 0x683e8
movq %rax, 0x50695(%rip)     # 0x67ef0
movq 0x50b7e(%rip), %rcx     # 0x683e0
movq %rcx, 0x5068f(%rip)     # 0x67ef8
movq $0x11, 0x50694(%rip) # 0x67f08
movq $0xb, 0x50691(%rip) # 0x67f10
movq 0x50b0a(%rip), %rcx     # 0x68390
movq %rcx, 0x5068b(%rip)     # 0x67f18
movq 0x50b04(%rip), %rdx     # 0x68398
movq %rdx, 0x50685(%rip)     # 0x67f20
movq %rax, 0x506c6(%rip)     # 0x67f68
movups 0x50b0f(%rip), %xmm0    # 0x683b8
movups %xmm0, 0x506c8(%rip)    # 0x67f78
movq 0x50b21(%rip), %rax     # 0x683d8
movq %rax, 0x506ca(%rip)     # 0x67f88
movq %rcx, 0x506d3(%rip)     # 0x67f98
movq %rdx, 0x506d4(%rip)     # 0x67fa0
movq $0x43, 0x50699(%rip) # 0x67f70
movq $0x16, 0x506c6(%rip) # 0x67fa8
movq $0x17, 0x506c3(%rip) # 0x67fb0
movq $0x18, 0x506c0(%rip) # 0x67fb8
movq $0x3d, 0x506bd(%rip) # 0x67fc0
movlps %xmm0, 0x50686(%rip)    # 0x67f90
movabsq $0x400000002, %rax      # imm = 0x400000002
movq %rax, 0x508dd(%rip)     # 0x681f8
movl $0x3, 0x508e7(%rip)     # 0x6820c
movabsq $0x100000006, %rax      # imm = 0x100000006
movq %rax, 0x508f6(%rip)     # 0x6822c
movl $0x5, 0x508c0(%rip)     # 0x68200
movaps 0x1fd9(%rip), %xmm0     # 0x19920
movups %xmm0, 0x508fe(%rip)    # 0x6824c
movl $0x7, 0x50904(%rip)     # 0x6825c
movl $0x8, 0x508de(%rip)     # 0x68240
xorl %eax, %eax
leaq 0x50945(%rip), %rcx     # 0x682b0
movq %rax, 0x8(%rdi)
cmpq $0x6, %rax
jg 0x17989
leaq 0x28000(%rax), %rdx
movq %rdx, (%rcx,%rax,8)
movq 0x8(%rdi), %rax
incq %rax
jmp 0x1796b
popq %rbx
popq %r14
retq
nop