// File: suzukiplan[P]M6502/test/./../m6502.hpp
// Function: M6502::setupOperands()
void setupOperands()
    {
        memset(operands, 0, sizeof(operands));
        operands[0xA9] = lda_imm;
        operands[0xA5] = lda_zpg;
        operands[0xB5] = lda_zpg_x;
        operands[0xAD] = lda_abs;
        operands[0xBD] = lda_abs_x;
        operands[0xB9] = lda_abs_y;
        operands[0xA1] = lda_x_ind;
        operands[0xB1] = lda_ind_y;

        operands[0xA2] = ldx_imm;
        operands[0xA6] = ldx_zpg;
        operands[0xB6] = ldx_zpg_y;
        operands[0xAE] = ldx_abs;
        operands[0xBE] = ldx_abs_y;

        operands[0xA0] = ldy_imm;
        operands[0xA4] = ldy_zpg;
        operands[0xB4] = ldy_zpg_x;
        operands[0xAC] = ldy_abs;
        operands[0xBC] = ldy_abs_x;

        operands[0x85] = sta_zpg;
        operands[0x95] = sta_zpg_x;
        operands[0x8D] = sta_abs;
        operands[0x9D] = sta_abs_x;
        operands[0x99] = sta_abs_y;
        operands[0x81] = sta_x_ind;
        operands[0x91] = sta_ind_y;

        operands[0x86] = stx_zpg;
        operands[0x96] = stx_zpg_y;
        operands[0x8E] = stx_abs;

        operands[0x84] = sty_zpg;
        operands[0x94] = sty_zpg_x;
        operands[0x8C] = sty_abs;

        operands[0x69] = adc_imm;
        operands[0x65] = adc_zpg;
        operands[0x75] = adc_zpg_x;
        operands[0x6D] = adc_abs;
        operands[0x7D] = adc_abs_x;
        operands[0x79] = adc_abs_y;
        operands[0x61] = adc_x_ind;
        operands[0x71] = adc_ind_y;

        operands[0xE9] = sbc_imm;
        operands[0xE5] = sbc_zpg;
        operands[0xF5] = sbc_zpg_x;
        operands[0xED] = sbc_abs;
        operands[0xFD] = sbc_abs_x;
        operands[0xF9] = sbc_abs_y;
        operands[0xE1] = sbc_x_ind;
        operands[0xF1] = sbc_ind_y;

        operands[0x29] = and_imm;
        operands[0x25] = and_zpg;
        operands[0x35] = and_zpg_x;
        operands[0x2D] = and_abs;
        operands[0x3D] = and_abs_x;
        operands[0x39] = and_abs_y;
        operands[0x21] = and_x_ind;
        operands[0x31] = and_ind_y;

        operands[0x09] = ora_imm;
        operands[0x05] = ora_zpg;
        operands[0x15] = ora_zpg_x;
        operands[0x0D] = ora_abs;
        operands[0x1D] = ora_abs_x;
        operands[0x19] = ora_abs_y;
        operands[0x01] = ora_x_ind;
        operands[0x11] = ora_ind_y;

        operands[0x49] = eor_imm;
        operands[0x45] = eor_zpg;
        operands[0x55] = eor_zpg_x;
        operands[0x4D] = eor_abs;
        operands[0x5D] = eor_abs_x;
        operands[0x59] = eor_abs_y;
        operands[0x41] = eor_x_ind;
        operands[0x51] = eor_ind_y;

        operands[0xC9] = cmp_imm;
        operands[0xC5] = cmp_zpg;
        operands[0xD5] = cmp_zpg_x;
        operands[0xCD] = cmp_abs;
        operands[0xDD] = cmp_abs_x;
        operands[0xD9] = cmp_abs_y;
        operands[0xC1] = cmp_x_ind;
        operands[0xD1] = cmp_ind_y;

        operands[0xE0] = cpx_imm;
        operands[0xE4] = cpx_zpg;
        operands[0xEC] = cpx_abs;

        operands[0xC0] = cpy_imm;
        operands[0xC4] = cpy_zpg;
        operands[0xCC] = cpy_abs;

        operands[0x48] = pha;
        operands[0x08] = php;
        operands[0x68] = pla;
        operands[0x28] = plp;

        operands[0xAA] = tax;
        operands[0x8A] = txa;
        operands[0xA8] = tay;
        operands[0x98] = tya;
        operands[0xBA] = tsx;
        operands[0x9A] = txs;

        operands[0x0A] = asl_a;
        operands[0x06] = asl_zpg;
        operands[0x16] = asl_zpg_x;
        operands[0x0E] = asl_abs;
        operands[0x1E] = asl_abs_x;

        operands[0x4A] = lsr_a;
        operands[0x46] = lsr_zpg;
        operands[0x56] = lsr_zpg_x;
        operands[0x4E] = lsr_abs;
        operands[0x5E] = lsr_abs_x;

        operands[0x2A] = rol_a;
        operands[0x26] = rol_zpg;
        operands[0x36] = rol_zpg_x;
        operands[0x2E] = rol_abs;
        operands[0x3E] = rol_abs_x;

        operands[0x6A] = ror_a;
        operands[0x66] = ror_zpg;
        operands[0x76] = ror_zpg_x;
        operands[0x6E] = ror_abs;
        operands[0x7E] = ror_abs_x;

        operands[0xC6] = dec_zpg;
        operands[0xD6] = dec_zpg_x;
        operands[0xCE] = dec_abs;
        operands[0xDE] = dec_abs_x;
        operands[0xCA] = dex;
        operands[0x88] = dey;

        operands[0xE6] = inc_zpg;
        operands[0xF6] = inc_zpg_x;
        operands[0xEE] = inc_abs;
        operands[0xFE] = inc_abs_x;
        operands[0xE8] = inx;
        operands[0xC8] = iny;

        operands[0x24] = bit_zpg;
        operands[0x2C] = bit_abs;

        operands[0x18] = clc;
        operands[0x58] = cli;
        operands[0xB8] = clv;
        operands[0x38] = sec;
        operands[0x78] = sei;

        if (isSupportBCD()) {
            operands[0xD8] = cld;
            operands[0xF8] = sed;
        }

        operands[0x10] = bpl_rel;
        operands[0x30] = bmi_rel;
        operands[0x50] = bvc_rel;
        operands[0x70] = bvs_rel;
        operands[0x90] = bcc_rel;
        operands[0xB0] = bcs_rel;
        operands[0xD0] = bne_rel;
        operands[0xF0] = beq_rel;

        operands[0x4C] = jmp_abs;
        operands[0x6C] = jmp_ind;
        operands[0x20] = jsr_abs;
        operands[0x60] = rts;
        operands[0x00] = brk;
        operands[0x40] = rti;

        operands[0xEA] = nop;
    }

// Assembly:
pushq %rbp
movq %rsp, %rbp
subq $0x10, %rsp
movq %rdi, -0x8(%rbp)
movq -0x8(%rbp), %rdi
movq %rdi, -0x10(%rbp)
addq $0x90, %rdi
xorl %esi, %esi
movl $0x800, %edx            # imm = 0x800
callq 0x10a0
movq -0x10(%rbp), %rdi
leaq 0xd0e(%rip), %rax       # 0x1bd00
movq %rax, 0x5d8(%rdi)
leaq 0xd30(%rip), %rax       # 0x1bd30
movq %rax, 0x5b8(%rdi)
leaq 0xd62(%rip), %rax       # 0x1bd70
movq %rax, 0x638(%rdi)
leaq 0xd94(%rip), %rax       # 0x1bdb0
movq %rax, 0x5f8(%rdi)
leaq 0xdc6(%rip), %rax       # 0x1bdf0
movq %rax, 0x678(%rdi)
leaq 0xdf8(%rip), %rax       # 0x1be30
movq %rax, 0x658(%rdi)
leaq 0xe2a(%rip), %rax       # 0x1be70
movq %rax, 0x598(%rdi)
leaq 0xe5c(%rip), %rax       # 0x1beb0
movq %rax, 0x618(%rdi)
leaq 0xe8e(%rip), %rax       # 0x1bef0
movq %rax, 0x5a0(%rdi)
leaq 0xeb0(%rip), %rax       # 0x1bf20
movq %rax, 0x5c0(%rdi)
leaq 0xee2(%rip), %rax       # 0x1bf60
movq %rax, 0x640(%rdi)
leaq 0xf14(%rip), %rax       # 0x1bfa0
movq %rax, 0x600(%rdi)
leaq 0xf46(%rip), %rax       # 0x1bfe0
movq %rax, 0x680(%rdi)
leaq 0xf78(%rip), %rax       # 0x1c020
movq %rax, 0x590(%rdi)
leaq 0xf9a(%rip), %rax       # 0x1c050
movq %rax, 0x5b0(%rdi)
leaq 0xfcc(%rip), %rax       # 0x1c090
movq %rax, 0x630(%rdi)
leaq 0xffe(%rip), %rax       # 0x1c0d0
movq %rax, 0x5f0(%rdi)
leaq 0x1030(%rip), %rax      # 0x1c110
movq %rax, 0x670(%rdi)
leaq 0x1062(%rip), %rax      # 0x1c150
movq %rax, 0x4b8(%rdi)
leaq 0x1084(%rip), %rax      # 0x1c180
movq %rax, 0x538(%rdi)
leaq 0x10a6(%rip), %rax      # 0x1c1b0
movq %rax, 0x4f8(%rdi)
leaq 0x10c8(%rip), %rax      # 0x1c1e0
movq %rax, 0x578(%rdi)
leaq 0x10fa(%rip), %rax      # 0x1c220
movq %rax, 0x558(%rdi)
leaq 0x112c(%rip), %rax      # 0x1c260
movq %rax, 0x498(%rdi)
leaq 0x114e(%rip), %rax      # 0x1c290
movq %rax, 0x518(%rdi)
leaq 0x1180(%rip), %rax      # 0x1c2d0
movq %rax, 0x4c0(%rdi)
leaq 0x11a2(%rip), %rax      # 0x1c300
movq %rax, 0x540(%rdi)
leaq 0x11c4(%rip), %rax      # 0x1c330
movq %rax, 0x500(%rdi)
leaq 0x11e6(%rip), %rax      # 0x1c360
movq %rax, 0x4b0(%rdi)
leaq 0x1208(%rip), %rax      # 0x1c390
movq %rax, 0x530(%rdi)
leaq 0x122a(%rip), %rax      # 0x1c3c0
movq %rax, 0x4f0(%rdi)
leaq 0x124c(%rip), %rax      # 0x1c3f0
movq %rax, 0x3d8(%rdi)
leaq 0x126e(%rip), %rax      # 0x1c420
movq %rax, 0x3b8(%rdi)
leaq 0x12a0(%rip), %rax      # 0x1c460
movq %rax, 0x438(%rdi)
leaq 0x12d2(%rip), %rax      # 0x1c4a0
movq %rax, 0x3f8(%rdi)
leaq 0x1304(%rip), %rax      # 0x1c4e0
movq %rax, 0x478(%rdi)
leaq 0x1336(%rip), %rax      # 0x1c520
movq %rax, 0x458(%rdi)
leaq 0x1368(%rip), %rax      # 0x1c560
movq %rax, 0x398(%rdi)
leaq 0x139a(%rip), %rax      # 0x1c5a0
movq %rax, 0x418(%rdi)
leaq 0x13cc(%rip), %rax      # 0x1c5e0
movq %rax, 0x7d8(%rdi)
leaq 0x13ee(%rip), %rax      # 0x1c610
movq %rax, 0x7b8(%rdi)
leaq 0x1420(%rip), %rax      # 0x1c650
movq %rax, 0x838(%rdi)
leaq 0x1452(%rip), %rax      # 0x1c690
movq %rax, 0x7f8(%rdi)
leaq 0x1484(%rip), %rax      # 0x1c6d0
movq %rax, 0x878(%rdi)
leaq 0x14b6(%rip), %rax      # 0x1c710
movq %rax, 0x858(%rdi)
leaq 0x14e8(%rip), %rax      # 0x1c750
movq %rax, 0x798(%rdi)
leaq 0x151a(%rip), %rax      # 0x1c790
movq %rax, 0x818(%rdi)
leaq 0x154c(%rip), %rax      # 0x1c7d0
movq %rax, 0x1d8(%rdi)
leaq 0x156e(%rip), %rax      # 0x1c800
movq %rax, 0x1b8(%rdi)
leaq 0x15a0(%rip), %rax      # 0x1c840
movq %rax, 0x238(%rdi)
leaq 0x15d2(%rip), %rax      # 0x1c880
movq %rax, 0x1f8(%rdi)
leaq 0x1604(%rip), %rax      # 0x1c8c0
movq %rax, 0x278(%rdi)
leaq 0x1636(%rip), %rax      # 0x1c900
movq %rax, 0x258(%rdi)
leaq 0x1668(%rip), %rax      # 0x1c940
movq %rax, 0x198(%rdi)
leaq 0x169a(%rip), %rax      # 0x1c980
movq %rax, 0x218(%rdi)
leaq 0x16cc(%rip), %rax      # 0x1c9c0
movq %rax, 0xd8(%rdi)
leaq 0x16ee(%rip), %rax      # 0x1c9f0
movq %rax, 0xb8(%rdi)
leaq 0x1720(%rip), %rax      # 0x1ca30
movq %rax, 0x138(%rdi)
leaq 0x1752(%rip), %rax      # 0x1ca70
movq %rax, 0xf8(%rdi)
leaq 0x1784(%rip), %rax      # 0x1cab0
movq %rax, 0x178(%rdi)
leaq 0x17b6(%rip), %rax      # 0x1caf0
movq %rax, 0x158(%rdi)
leaq 0x17e8(%rip), %rax      # 0x1cb30
movq %rax, 0x98(%rdi)
leaq 0x181a(%rip), %rax      # 0x1cb70
movq %rax, 0x118(%rdi)
leaq 0x184c(%rip), %rax      # 0x1cbb0
movq %rax, 0x2d8(%rdi)
leaq 0x186e(%rip), %rax      # 0x1cbe0
movq %rax, 0x2b8(%rdi)
leaq 0x18a0(%rip), %rax      # 0x1cc20
movq %rax, 0x338(%rdi)
leaq 0x18d2(%rip), %rax      # 0x1cc60
movq %rax, 0x2f8(%rdi)
leaq 0x1904(%rip), %rax      # 0x1cca0
movq %rax, 0x378(%rdi)
leaq 0x1936(%rip), %rax      # 0x1cce0
movq %rax, 0x358(%rdi)
leaq 0x1968(%rip), %rax      # 0x1cd20
movq %rax, 0x298(%rdi)
leaq 0x199a(%rip), %rax      # 0x1cd60
movq %rax, 0x318(%rdi)
leaq 0x19cc(%rip), %rax      # 0x1cda0
movq %rax, 0x6d8(%rdi)
leaq 0x19ee(%rip), %rax      # 0x1cdd0
movq %rax, 0x6b8(%rdi)
leaq 0x1a20(%rip), %rax      # 0x1ce10
movq %rax, 0x738(%rdi)
leaq 0x1a52(%rip), %rax      # 0x1ce50
movq %rax, 0x6f8(%rdi)
leaq 0x1a84(%rip), %rax      # 0x1ce90
movq %rax, 0x778(%rdi)
leaq 0x1ab6(%rip), %rax      # 0x1ced0
movq %rax, 0x758(%rdi)
leaq 0x1ae8(%rip), %rax      # 0x1cf10
movq %rax, 0x698(%rdi)
leaq 0x1b1a(%rip), %rax      # 0x1cf50
movq %rax, 0x718(%rdi)
leaq 0x1b4c(%rip), %rax      # 0x1cf90
movq %rax, 0x790(%rdi)
leaq 0x1b6e(%rip), %rax      # 0x1cfc0
movq %rax, 0x7b0(%rdi)
leaq 0x1ba0(%rip), %rax      # 0x1d000
movq %rax, 0x7f0(%rdi)
leaq 0x1bd2(%rip), %rax      # 0x1d040
movq %rax, 0x690(%rdi)
leaq 0x1bf4(%rip), %rax      # 0x1d070
movq %rax, 0x6b0(%rdi)
leaq 0x1c26(%rip), %rax      # 0x1d0b0
movq %rax, 0x6f0(%rdi)
leaq 0x1c58(%rip), %rax      # 0x1d0f0
movq %rax, 0x2d0(%rdi)
leaq 0x1c7a(%rip), %rax      # 0x1d120
movq %rax, 0xd0(%rdi)
leaq 0x1c9c(%rip), %rax      # 0x1d150
movq %rax, 0x3d0(%rdi)
leaq 0x1cce(%rip), %rax      # 0x1d190
movq %rax, 0x1d0(%rdi)
leaq 0x1d00(%rip), %rax      # 0x1d1d0
movq %rax, 0x5e0(%rdi)
leaq 0x1d42(%rip), %rax      # 0x1d220
movq %rax, 0x4e0(%rdi)
leaq 0x1d84(%rip), %rax      # 0x1d270
movq %rax, 0x5d0(%rdi)
leaq 0x1dc6(%rip), %rax      # 0x1d2c0
movq %rax, 0x550(%rdi)
leaq 0x1e08(%rip), %rax      # 0x1d310
movq %rax, 0x660(%rdi)
leaq 0x1e4a(%rip), %rax      # 0x1d360
movq %rax, 0x560(%rdi)
leaq 0x1e8c(%rip), %rax      # 0x1d3b0
movq %rax, 0xe0(%rdi)
leaq 0x1ebe(%rip), %rax      # 0x1d3f0
movq %rax, 0xc0(%rdi)
leaq 0x1f00(%rip), %rax      # 0x1d440
movq %rax, 0x140(%rdi)
leaq 0x1f42(%rip), %rax      # 0x1d490
movq %rax, 0x100(%rdi)
leaq 0x1f84(%rip), %rax      # 0x1d4e0
movq %rax, 0x180(%rdi)
leaq 0x1fd6(%rip), %rax      # 0x1d540
movq %rax, 0x2e0(%rdi)
leaq 0x2008(%rip), %rax      # 0x1d580
movq %rax, 0x2c0(%rdi)
leaq 0x204a(%rip), %rax      # 0x1d5d0
movq %rax, 0x340(%rdi)
leaq 0x208c(%rip), %rax      # 0x1d620
movq %rax, 0x300(%rdi)
leaq 0x20ce(%rip), %rax      # 0x1d670
movq %rax, 0x380(%rdi)
leaq 0x2120(%rip), %rax      # 0x1d6d0
movq %rax, 0x1e0(%rdi)
leaq 0x2152(%rip), %rax      # 0x1d710
movq %rax, 0x1c0(%rdi)
leaq 0x2194(%rip), %rax      # 0x1d760
movq %rax, 0x240(%rdi)
leaq 0x21d6(%rip), %rax      # 0x1d7b0
movq %rax, 0x200(%rdi)
leaq 0x2218(%rip), %rax      # 0x1d800
movq %rax, 0x280(%rdi)
leaq 0x226a(%rip), %rax      # 0x1d860
movq %rax, 0x3e0(%rdi)
leaq 0x229c(%rip), %rax      # 0x1d8a0
movq %rax, 0x3c0(%rdi)
leaq 0x22de(%rip), %rax      # 0x1d8f0
movq %rax, 0x440(%rdi)
leaq 0x2320(%rip), %rax      # 0x1d940
movq %rax, 0x400(%rdi)
leaq 0x2362(%rip), %rax      # 0x1d990
movq %rax, 0x480(%rdi)
leaq 0x23b4(%rip), %rax      # 0x1d9f0
movq %rax, 0x6c0(%rdi)
leaq 0x2406(%rip), %rax      # 0x1da50
movq %rax, 0x740(%rdi)
leaq 0x2458(%rip), %rax      # 0x1dab0
movq %rax, 0x700(%rdi)
leaq 0x24aa(%rip), %rax      # 0x1db10
movq %rax, 0x780(%rdi)
leaq 0x24fc(%rip), %rax      # 0x1db70
movq %rax, 0x6e0(%rdi)
leaq 0x252e(%rip), %rax      # 0x1dbb0
movq %rax, 0x4d0(%rdi)
leaq 0x2560(%rip), %rax      # 0x1dbf0
movq %rax, 0x7c0(%rdi)
leaq 0x25b2(%rip), %rax      # 0x1dc50
movq %rax, 0x840(%rdi)
leaq 0x2604(%rip), %rax      # 0x1dcb0
movq %rax, 0x800(%rdi)
leaq 0x2656(%rip), %rax      # 0x1dd10
movq %rax, 0x880(%rdi)
leaq 0x26a8(%rip), %rax      # 0x1dd70
movq %rax, 0x7d0(%rdi)
leaq 0x26da(%rip), %rax      # 0x1ddb0
movq %rax, 0x6d0(%rdi)
leaq 0x270c(%rip), %rax      # 0x1ddf0
movq %rax, 0x1b0(%rdi)
leaq 0x273e(%rip), %rax      # 0x1de30
movq %rax, 0x1f0(%rdi)
leaq 0x2770(%rip), %rax      # 0x1de70
movq %rax, 0x150(%rdi)
leaq 0x2792(%rip), %rax      # 0x1dea0
movq %rax, 0x350(%rdi)
leaq 0x27b4(%rip), %rax      # 0x1ded0
movq %rax, 0x650(%rdi)
leaq 0x27d6(%rip), %rax      # 0x1df00
movq %rax, 0x250(%rdi)
leaq 0x27f8(%rip), %rax      # 0x1df30
movq %rax, 0x450(%rdi)
callq 0x1df60
testb $0x1, %al
jne 0x1b74a
jmp 0x1b76a
movq -0x10(%rbp), %rax
leaq 0x282b(%rip), %rcx      # 0x1df80
movq %rcx, 0x750(%rax)
leaq 0x284d(%rip), %rcx      # 0x1dfb0
movq %rcx, 0x850(%rax)
movq -0x10(%rbp), %rax
leaq 0x286b(%rip), %rcx      # 0x1dfe0
movq %rcx, 0x110(%rax)
leaq 0x289d(%rip), %rcx      # 0x1e020
movq %rcx, 0x210(%rax)
leaq 0x28cf(%rip), %rcx      # 0x1e060
movq %rcx, 0x310(%rax)
leaq 0x2901(%rip), %rcx      # 0x1e0a0
movq %rcx, 0x410(%rax)
leaq 0x2933(%rip), %rcx      # 0x1e0e0
movq %rcx, 0x510(%rax)
leaq 0x2965(%rip), %rcx      # 0x1e120
movq %rcx, 0x610(%rax)
leaq 0x2997(%rip), %rcx      # 0x1e160
movq %rcx, 0x710(%rax)
leaq 0x29c9(%rip), %rcx      # 0x1e1a0
movq %rcx, 0x810(%rax)
leaq 0x29fb(%rip), %rcx      # 0x1e1e0
movq %rcx, 0x2f0(%rax)
leaq 0x2a9d(%rip), %rcx      # 0x1e290
movq %rcx, 0x3f0(%rax)
leaq 0x2b7f(%rip), %rcx      # 0x1e380
movq %rcx, 0x190(%rax)
leaq 0x2c61(%rip), %rcx      # 0x1e470
movq %rcx, 0x390(%rax)
leaq 0x2cf3(%rip), %rcx      # 0x1e510
movq %rcx, 0x90(%rax)
leaq 0x2d45(%rip), %rcx      # 0x1e570
movq %rcx, 0x290(%rax)
leaq 0x2df7(%rip), %rcx      # 0x1e630
movq %rcx, 0x7e0(%rax)
addq $0x10, %rsp
popq %rbp
retq
nopw %cs:(%rax,%rax)