// File: rockytriton[P]dreamsys_emu_gb/src/op_handler.cpp
// Function: dsemu::cpu::initParamTypeMap()
void initParamTypeMap() {
    paramTypeMap[A] = std::make_pair(&regAF, RPTHi);
    paramTypeMap[B] = std::make_pair(&regBC, RPTHi);
    paramTypeMap[C] = std::make_pair(&regBC, RPTLo);
    paramTypeMap[D] = std::make_pair(&regDE, RPTHi);
    paramTypeMap[E] = std::make_pair(&regDE, RPTLo);
    paramTypeMap[H] = std::make_pair(&regHL, RPTHi);
    paramTypeMap[L] = std::make_pair(&regHL, RPTLo);
    paramTypeMap[BC] = std::make_pair(&regBC, RPT16);
    paramTypeMap[SP] = std::make_pair(&regSP, RPT16);
    paramTypeMap[HL] = std::make_pair(&regHL, RPT16);
    paramTypeMap[DE] = std::make_pair(&regDE, RPT16);
    paramTypeMap[AF] = std::make_pair(&regAF, RPT16);

    jumpCycleMap[0x20] = 4;
    jumpCycleMap[0x30] = 4;
    jumpCycleMap[0x28] = 4;
    jumpCycleMap[0x38] = 4;
    jumpCycleMap[0xC0] = 12;
    jumpCycleMap[0xD0] = 12;
    jumpCycleMap[0xC2] = 4;
    jumpCycleMap[0xD2] = 4;
    jumpCycleMap[0xC4] = 12;
    jumpCycleMap[0xD4] = 12;
    jumpCycleMap[0xC8] = 12;
    jumpCycleMap[0xD8] = 12;
    jumpCycleMap[0xCA] = 4;
    jumpCycleMap[0xDA] = 4;
    jumpCycleMap[0xCC] = 12;
    jumpCycleMap[0xDC] = 12;

}

// Assembly:
pushq %rbp
movq %rsp, %rbp
subq $0x2e0, %rsp            # imm = 0x2E0
leaq 0x15a7e(%rip), %rax     # 0x2f590
movq %rax, -0x2b8(%rbp)
movq %rax, -0x18(%rbp)
movl $0x1, -0x1c(%rbp)
leaq -0x18(%rbp), %rdi
leaq -0x1c(%rbp), %rsi
callq 0x1d7b0
movl %edx, -0x28(%rbp)
movq %rax, -0x30(%rbp)
movl -0x28(%rbp), %eax
movl %eax, -0x8(%rbp)
movq -0x30(%rbp), %rax
movq %rax, -0x10(%rbp)
movl $0x0, -0x34(%rbp)
leaq 0x35b34(%rip), %rdi     # 0x4f688
movq %rdi, -0x2c0(%rbp)
leaq -0x34(%rbp), %rsi
callq 0x1d7e0
movq %rax, %rdi
leaq -0x10(%rbp), %rsi
callq 0x1d8c0
leaq 0x15a1b(%rip), %rax     # 0x2f592
movq %rax, -0x2d8(%rbp)
movq %rax, -0x50(%rbp)
movl $0x1, -0x54(%rbp)
leaq -0x50(%rbp), %rdi
leaq -0x54(%rbp), %rsi
callq 0x1d7b0
movq -0x2c0(%rbp), %rdi
movl %edx, -0x60(%rbp)
movq %rax, -0x68(%rbp)
movl -0x60(%rbp), %eax
movl %eax, -0x40(%rbp)
movq -0x68(%rbp), %rax
movq %rax, -0x48(%rbp)
movl $0x1, -0x6c(%rbp)
leaq -0x6c(%rbp), %rsi
callq 0x1d7e0
movq %rax, %rdi
leaq -0x48(%rbp), %rsi
callq 0x1d8c0
movq -0x2d8(%rbp), %rax
movq %rax, -0x88(%rbp)
movl $0x2, -0x8c(%rbp)
leaq -0x88(%rbp), %rdi
leaq -0x8c(%rbp), %rsi
callq 0x1d7b0
movq -0x2c0(%rbp), %rdi
movl %edx, -0x98(%rbp)
movq %rax, -0xa0(%rbp)
movl -0x98(%rbp), %eax
movl %eax, -0x78(%rbp)
movq -0xa0(%rbp), %rax
movq %rax, -0x80(%rbp)
movl $0x2, -0xa4(%rbp)
leaq -0xa4(%rbp), %rsi
callq 0x1d7e0
movq %rax, %rdi
leaq -0x80(%rbp), %rsi
callq 0x1d8c0
leaq 0x1594a(%rip), %rax     # 0x2f594
movq %rax, -0x2c8(%rbp)
movq %rax, -0xc0(%rbp)
movl $0x1, -0xc4(%rbp)
leaq -0xc0(%rbp), %rdi
leaq -0xc4(%rbp), %rsi
callq 0x1d7b0
movq -0x2c0(%rbp), %rdi
movl %edx, -0xd0(%rbp)
movq %rax, -0xd8(%rbp)
movl -0xd0(%rbp), %eax
movl %eax, -0xb0(%rbp)
movq -0xd8(%rbp), %rax
movq %rax, -0xb8(%rbp)
movl $0x3, -0xdc(%rbp)
leaq -0xdc(%rbp), %rsi
callq 0x1d7e0
movq %rax, %rdi
leaq -0xb8(%rbp), %rsi
callq 0x1d8c0
movq -0x2c8(%rbp), %rax
movq %rax, -0xf8(%rbp)
movl $0x2, -0xfc(%rbp)
leaq -0xf8(%rbp), %rdi
leaq -0xfc(%rbp), %rsi
callq 0x1d7b0
movq -0x2c0(%rbp), %rdi
movl %edx, -0x108(%rbp)
movq %rax, -0x110(%rbp)
movl -0x108(%rbp), %eax
movl %eax, -0xe8(%rbp)
movq -0x110(%rbp), %rax
movq %rax, -0xf0(%rbp)
movl $0x4, -0x114(%rbp)
leaq -0x114(%rbp), %rsi
callq 0x1d7e0
movq %rax, %rdi
leaq -0xf0(%rbp), %rsi
callq 0x1d8c0
leaq 0x15849(%rip), %rax     # 0x2f596
movq %rax, -0x2d0(%rbp)
movq %rax, -0x130(%rbp)
movl $0x1, -0x134(%rbp)
leaq -0x130(%rbp), %rdi
leaq -0x134(%rbp), %rsi
callq 0x1d7b0
movq -0x2c0(%rbp), %rdi
movl %edx, -0x140(%rbp)
movq %rax, -0x148(%rbp)
movl -0x140(%rbp), %eax
movl %eax, -0x120(%rbp)
movq -0x148(%rbp), %rax
movq %rax, -0x128(%rbp)
movl $0x5, -0x14c(%rbp)
leaq -0x14c(%rbp), %rsi
callq 0x1d7e0
movq %rax, %rdi
leaq -0x128(%rbp), %rsi
callq 0x1d8c0
movq -0x2d0(%rbp), %rax
movq %rax, -0x168(%rbp)
movl $0x2, -0x16c(%rbp)
leaq -0x168(%rbp), %rdi
leaq -0x16c(%rbp), %rsi
callq 0x1d7b0
movq -0x2c0(%rbp), %rdi
movl %edx, -0x178(%rbp)
movq %rax, -0x180(%rbp)
movl -0x178(%rbp), %eax
movl %eax, -0x158(%rbp)
movq -0x180(%rbp), %rax
movq %rax, -0x160(%rbp)
movl $0x6, -0x184(%rbp)
leaq -0x184(%rbp), %rsi
callq 0x1d7e0
movq %rax, %rdi
leaq -0x160(%rbp), %rsi
callq 0x1d8c0
movq -0x2d8(%rbp), %rax
movq %rax, -0x1a0(%rbp)
movl $0x0, -0x1a4(%rbp)
leaq -0x1a0(%rbp), %rdi
leaq -0x1a4(%rbp), %rsi
callq 0x1d7b0
movq -0x2c0(%rbp), %rdi
movl %edx, -0x1b0(%rbp)
movq %rax, -0x1b8(%rbp)
movl -0x1b0(%rbp), %eax
movl %eax, -0x190(%rbp)
movq -0x1b8(%rbp), %rax
movq %rax, -0x198(%rbp)
movl $0x7, -0x1bc(%rbp)
leaq -0x1bc(%rbp), %rsi
callq 0x1d7e0
movq %rax, %rdi
leaq -0x198(%rbp), %rsi
callq 0x1d8c0
leaq 0x156ce(%rip), %rax     # 0x2f59c
movq %rax, -0x1d8(%rbp)
movl $0x0, -0x1dc(%rbp)
leaq -0x1d8(%rbp), %rdi
leaq -0x1dc(%rbp), %rsi
callq 0x1d7b0
movq -0x2c0(%rbp), %rdi
movl %edx, -0x1e8(%rbp)
movq %rax, -0x1f0(%rbp)
movl -0x1e8(%rbp), %eax
movl %eax, -0x1c8(%rbp)
movq -0x1f0(%rbp), %rax
movq %rax, -0x1d0(%rbp)
movl $0xa, -0x1f4(%rbp)
leaq -0x1f4(%rbp), %rsi
callq 0x1d7e0
movq %rax, %rdi
leaq -0x1d0(%rbp), %rsi
callq 0x1d8c0
movq -0x2d0(%rbp), %rax
movq %rax, -0x210(%rbp)
movl $0x0, -0x214(%rbp)
leaq -0x210(%rbp), %rdi
leaq -0x214(%rbp), %rsi
callq 0x1d7b0
movq -0x2c0(%rbp), %rdi
movl %edx, -0x220(%rbp)
movq %rax, -0x228(%rbp)
movl -0x220(%rbp), %eax
movl %eax, -0x200(%rbp)
movq -0x228(%rbp), %rax
movq %rax, -0x208(%rbp)
movl $0x9, -0x22c(%rbp)
leaq -0x22c(%rbp), %rsi
callq 0x1d7e0
movq %rax, %rdi
leaq -0x208(%rbp), %rsi
callq 0x1d8c0
movq -0x2c8(%rbp), %rax
movq %rax, -0x248(%rbp)
movl $0x0, -0x24c(%rbp)
leaq -0x248(%rbp), %rdi
leaq -0x24c(%rbp), %rsi
callq 0x1d7b0
movq -0x2c0(%rbp), %rdi
movl %edx, -0x258(%rbp)
movq %rax, -0x260(%rbp)
movl -0x258(%rbp), %eax
movl %eax, -0x238(%rbp)
movq -0x260(%rbp), %rax
movq %rax, -0x240(%rbp)
movl $0x8, -0x264(%rbp)
leaq -0x264(%rbp), %rsi
callq 0x1d7e0
movq %rax, %rdi
leaq -0x240(%rbp), %rsi
callq 0x1d8c0
movq -0x2b8(%rbp), %rax
movq %rax, -0x280(%rbp)
movl $0x0, -0x284(%rbp)
leaq -0x280(%rbp), %rdi
leaq -0x284(%rbp), %rsi
callq 0x1d7b0
movl %edx, -0x290(%rbp)
movq %rax, -0x298(%rbp)
movq -0x298(%rbp), %rax
movq %rax, -0x278(%rbp)
movl -0x290(%rbp), %eax
movl %eax, -0x270(%rbp)
movl $0xe, -0x29c(%rbp)
leaq 0x355e4(%rip), %rdi     # 0x4f688
leaq -0x29c(%rbp), %rsi
callq 0x1d7e0
movq %rax, %rdi
leaq -0x278(%rbp), %rsi
callq 0x1d8c0
movb $0x20, -0x29d(%rbp)
leaq 0x355f3(%rip), %rdi     # 0x4f6c0
leaq -0x29d(%rbp), %rsi
callq 0x1d8f0
movb $0x4, (%rax)
movb $0x30, -0x29e(%rbp)
leaq 0x355d6(%rip), %rdi     # 0x4f6c0
leaq -0x29e(%rbp), %rsi
callq 0x1d8f0
movb $0x4, (%rax)
movb $0x28, -0x29f(%rbp)
leaq 0x355b9(%rip), %rdi     # 0x4f6c0
leaq -0x29f(%rbp), %rsi
callq 0x1d8f0
movb $0x4, (%rax)
movb $0x38, -0x2a0(%rbp)
leaq 0x3559c(%rip), %rdi     # 0x4f6c0
leaq -0x2a0(%rbp), %rsi
callq 0x1d8f0
movb $0x4, (%rax)
movb $-0x40, -0x2a1(%rbp)
leaq 0x3557f(%rip), %rdi     # 0x4f6c0
leaq -0x2a1(%rbp), %rsi
callq 0x1d8f0
movb $0xc, (%rax)
movb $-0x30, -0x2a2(%rbp)
leaq 0x35562(%rip), %rdi     # 0x4f6c0
leaq -0x2a2(%rbp), %rsi
callq 0x1d8f0
movb $0xc, (%rax)
movb $-0x3e, -0x2a3(%rbp)
leaq 0x35545(%rip), %rdi     # 0x4f6c0
leaq -0x2a3(%rbp), %rsi
callq 0x1d8f0
movb $0x4, (%rax)
movb $-0x2e, -0x2a4(%rbp)
leaq 0x35528(%rip), %rdi     # 0x4f6c0
leaq -0x2a4(%rbp), %rsi
callq 0x1d8f0
movb $0x4, (%rax)
movb $-0x3c, -0x2a5(%rbp)
leaq 0x3550b(%rip), %rdi     # 0x4f6c0
leaq -0x2a5(%rbp), %rsi
callq 0x1d8f0
movb $0xc, (%rax)
movb $-0x2c, -0x2a6(%rbp)
leaq 0x354ee(%rip), %rdi     # 0x4f6c0
leaq -0x2a6(%rbp), %rsi
callq 0x1d8f0
movb $0xc, (%rax)
movb $-0x38, -0x2a7(%rbp)
leaq 0x354d1(%rip), %rdi     # 0x4f6c0
leaq -0x2a7(%rbp), %rsi
callq 0x1d8f0
movb $0xc, (%rax)
movb $-0x28, -0x2a8(%rbp)
leaq 0x354b4(%rip), %rdi     # 0x4f6c0
leaq -0x2a8(%rbp), %rsi
callq 0x1d8f0
movb $0xc, (%rax)
movb $-0x36, -0x2a9(%rbp)
leaq 0x35497(%rip), %rdi     # 0x4f6c0
leaq -0x2a9(%rbp), %rsi
callq 0x1d8f0
movb $0x4, (%rax)
movb $-0x26, -0x2aa(%rbp)
leaq 0x3547a(%rip), %rdi     # 0x4f6c0
leaq -0x2aa(%rbp), %rsi
callq 0x1d8f0
movb $0x4, (%rax)
movb $-0x34, -0x2ab(%rbp)
leaq 0x3545d(%rip), %rdi     # 0x4f6c0
leaq -0x2ab(%rbp), %rsi
callq 0x1d8f0
movb $0xc, (%rax)
movb $-0x24, -0x2ac(%rbp)
leaq 0x35440(%rip), %rdi     # 0x4f6c0
leaq -0x2ac(%rbp), %rsi
callq 0x1d8f0
movb $0xc, (%rax)
addq $0x2e0, %rsp            # imm = 0x2E0
popq %rbp
retq
nopl (%rax,%rax)