// File: ys1998[P]spsim/src/instruction.cpp
// Function: initialize_ISA()
void initialize_ISA(void){
	OPCODE["add"] = OPCODE["sub"] = OPCODE["mult"] = OPCODE["div"] =  0;
	OPCODE["beq"] = 4;
	OPCODE["bne"] = 5;
	OPCODE["lw"] = 6;
	OPCODE["sw"] = 7;

	FUNCT["add"] = 32;
	FUNCT["sub"] = 34;
	FUNCT["mult"] = 24;
	FUNCT["div"] = 26;
	FUNCT["beq"] = 0;
	FUNCT["bne"] = 0;
	FUNCT["lw"] = 0;
	FUNCT["sw"] = 0;
}

// Assembly:
pushq %rbp
movq %rsp, %rbp
subq $0x390, %rsp            # imm = 0x390
leaq -0x21(%rbp), %rdi
movq %rdi, -0x298(%rbp)
callq 0x3490
movq -0x298(%rbp), %rdx
leaq 0x141a0(%rip), %rsi     # 0x22019
leaq -0x20(%rbp), %rdi
callq 0x6020
jmp 0xde84
leaq 0x2143d(%rip), %rdi     # 0x2f2c8
leaq -0x20(%rbp), %rsi
callq 0x5f40
movq %rax, -0x2a0(%rbp)
jmp 0xde9d
movq -0x2a0(%rbp), %rax
movl $0x0, (%rax)
leaq -0x59(%rbp), %rdi
movq %rdi, -0x2a8(%rbp)
callq 0x3490
movq -0x2a8(%rbp), %rdx
leaq 0x1414c(%rip), %rsi     # 0x22014
leaq -0x58(%rbp), %rdi
callq 0x6020
jmp 0xded3
leaq 0x213ee(%rip), %rdi     # 0x2f2c8
leaq -0x58(%rbp), %rsi
callq 0x5f40
movq %rax, -0x2b0(%rbp)
jmp 0xdeec
movq -0x2b0(%rbp), %rax
movl $0x0, (%rax)
leaq -0x81(%rbp), %rdi
movq %rdi, -0x2b8(%rbp)
callq 0x3490
movq -0x2b8(%rbp), %rdx
leaq 0x140ee(%rip), %rsi     # 0x22008
leaq -0x80(%rbp), %rdi
callq 0x6020
jmp 0xdf25
leaq 0x2139c(%rip), %rdi     # 0x2f2c8
leaq -0x80(%rbp), %rsi
callq 0x5f40
movq %rax, -0x2c0(%rbp)
jmp 0xdf3e
movq -0x2c0(%rbp), %rax
movl $0x0, (%rax)
leaq -0xa9(%rbp), %rdi
movq %rdi, -0x2c8(%rbp)
callq 0x3490
movq -0x2c8(%rbp), %rdx
leaq 0x14098(%rip), %rsi     # 0x22004
leaq -0xa8(%rbp), %rdi
callq 0x6020
jmp 0xdf7a
leaq 0x21347(%rip), %rdi     # 0x2f2c8
leaq -0xa8(%rbp), %rsi
callq 0x5f40
movq %rax, -0x2d0(%rbp)
jmp 0xdf96
movq -0x2d0(%rbp), %rax
movl $0x0, (%rax)
leaq -0xa8(%rbp), %rdi
callq 0x31e0
leaq -0xa9(%rbp), %rdi
callq 0x3300
leaq -0x80(%rbp), %rdi
callq 0x31e0
leaq -0x81(%rbp), %rdi
callq 0x3300
leaq -0x58(%rbp), %rdi
callq 0x31e0
leaq -0x59(%rbp), %rdi
callq 0x3300
leaq -0x20(%rbp), %rdi
callq 0x31e0
leaq -0x21(%rbp), %rdi
callq 0x3300
leaq -0xd1(%rbp), %rdi
movq %rdi, -0x2d8(%rbp)
callq 0x3490
movq -0x2d8(%rbp), %rdx
leaq 0x13ff7(%rip), %rsi     # 0x2200c
leaq -0xd0(%rbp), %rdi
callq 0x6020
jmp 0xe023
leaq 0x2129e(%rip), %rdi     # 0x2f2c8
leaq -0xd0(%rbp), %rsi
callq 0x5f40
movq %rax, -0x2e0(%rbp)
jmp 0xe03f
movq -0x2e0(%rbp), %rax
movl $0x4, (%rax)
leaq -0xd0(%rbp), %rdi
callq 0x31e0
leaq -0xd1(%rbp), %rdi
callq 0x3300
leaq -0xf9(%rbp), %rdi
movq %rdi, -0x2e8(%rbp)
callq 0x3490
movq -0x2e8(%rbp), %rdx
leaq 0x13f8b(%rip), %rsi     # 0x22010
leaq -0xf8(%rbp), %rdi
callq 0x6020
jmp 0xe093
leaq 0x2122e(%rip), %rdi     # 0x2f2c8
leaq -0xf8(%rbp), %rsi
callq 0x5f40
movq %rax, -0x2f0(%rbp)
jmp 0xe0af
movq -0x2f0(%rbp), %rax
movl $0x5, (%rax)
leaq -0xf8(%rbp), %rdi
callq 0x31e0
leaq -0xf9(%rbp), %rdi
callq 0x3300
leaq -0x121(%rbp), %rdi
movq %rdi, -0x2f8(%rbp)
callq 0x3490
movq -0x2f8(%rbp), %rdx
leaq 0x13f78(%rip), %rsi     # 0x2206d
leaq -0x120(%rbp), %rdi
callq 0x6020
jmp 0xe103
leaq 0x211be(%rip), %rdi     # 0x2f2c8
leaq -0x120(%rbp), %rsi
callq 0x5f40
movq %rax, -0x300(%rbp)
jmp 0xe11f
movq -0x300(%rbp), %rax
movl $0x6, (%rax)
leaq -0x120(%rbp), %rdi
callq 0x31e0
leaq -0x121(%rbp), %rdi
callq 0x3300
leaq -0x149(%rbp), %rdi
movq %rdi, -0x308(%rbp)
callq 0x3490
movq -0x308(%rbp), %rdx
leaq 0x13eb8(%rip), %rsi     # 0x2201d
leaq -0x148(%rbp), %rdi
callq 0x6020
jmp 0xe173
leaq 0x2114e(%rip), %rdi     # 0x2f2c8
leaq -0x148(%rbp), %rsi
callq 0x5f40
movq %rax, -0x310(%rbp)
jmp 0xe18f
movq -0x310(%rbp), %rax
movl $0x7, (%rax)
leaq -0x148(%rbp), %rdi
callq 0x31e0
leaq -0x149(%rbp), %rdi
callq 0x3300
leaq -0x171(%rbp), %rdi
movq %rdi, -0x318(%rbp)
callq 0x3490
movq -0x318(%rbp), %rdx
leaq 0x13e2f(%rip), %rsi     # 0x22004
leaq -0x170(%rbp), %rdi
callq 0x6020
jmp 0xe1e3
leaq 0x2110e(%rip), %rdi     # 0x2f2f8
leaq -0x170(%rbp), %rsi
callq 0x5f40
movq %rax, -0x320(%rbp)
jmp 0xe1ff
movq -0x320(%rbp), %rax
movl $0x20, (%rax)
leaq -0x170(%rbp), %rdi
callq 0x31e0
leaq -0x171(%rbp), %rdi
callq 0x3300
leaq -0x199(%rbp), %rdi
movq %rdi, -0x328(%rbp)
callq 0x3490
movq -0x328(%rbp), %rdx
leaq 0x13dc3(%rip), %rsi     # 0x22008
leaq -0x198(%rbp), %rdi
callq 0x6020
jmp 0xe253
leaq 0x2109e(%rip), %rdi     # 0x2f2f8
leaq -0x198(%rbp), %rsi
callq 0x5f40
movq %rax, -0x330(%rbp)
jmp 0xe26f
movq -0x330(%rbp), %rax
movl $0x22, (%rax)
leaq -0x198(%rbp), %rdi
callq 0x31e0
leaq -0x199(%rbp), %rdi
callq 0x3300
leaq -0x1c1(%rbp), %rdi
movq %rdi, -0x338(%rbp)
callq 0x3490
movq -0x338(%rbp), %rdx
leaq 0x13d5f(%rip), %rsi     # 0x22014
leaq -0x1c0(%rbp), %rdi
callq 0x6020
jmp 0xe2c3
leaq 0x2102e(%rip), %rdi     # 0x2f2f8
leaq -0x1c0(%rbp), %rsi
callq 0x5f40
movq %rax, -0x340(%rbp)
jmp 0xe2df
movq -0x340(%rbp), %rax
movl $0x18, (%rax)
leaq -0x1c0(%rbp), %rdi
callq 0x31e0
leaq -0x1c1(%rbp), %rdi
callq 0x3300
leaq -0x1e9(%rbp), %rdi
movq %rdi, -0x348(%rbp)
callq 0x3490
movq -0x348(%rbp), %rdx
leaq 0x13cf4(%rip), %rsi     # 0x22019
leaq -0x1e8(%rbp), %rdi
callq 0x6020
jmp 0xe333
leaq 0x20fbe(%rip), %rdi     # 0x2f2f8
leaq -0x1e8(%rbp), %rsi
callq 0x5f40
movq %rax, -0x350(%rbp)
jmp 0xe34f
movq -0x350(%rbp), %rax
movl $0x1a, (%rax)
leaq -0x1e8(%rbp), %rdi
callq 0x31e0
leaq -0x1e9(%rbp), %rdi
callq 0x3300
leaq -0x211(%rbp), %rdi
movq %rdi, -0x358(%rbp)
callq 0x3490
movq -0x358(%rbp), %rdx
leaq 0x13c77(%rip), %rsi     # 0x2200c
leaq -0x210(%rbp), %rdi
callq 0x6020
jmp 0xe3a3
leaq 0x20f4e(%rip), %rdi     # 0x2f2f8
leaq -0x210(%rbp), %rsi
callq 0x5f40
movq %rax, -0x360(%rbp)
jmp 0xe3bf
movq -0x360(%rbp), %rax
movl $0x0, (%rax)
leaq -0x210(%rbp), %rdi
callq 0x31e0
leaq -0x211(%rbp), %rdi
callq 0x3300
leaq -0x239(%rbp), %rdi
movq %rdi, -0x368(%rbp)
callq 0x3490
movq -0x368(%rbp), %rdx
leaq 0x13c0b(%rip), %rsi     # 0x22010
leaq -0x238(%rbp), %rdi
callq 0x6020
jmp 0xe413
leaq 0x20ede(%rip), %rdi     # 0x2f2f8
leaq -0x238(%rbp), %rsi
callq 0x5f40
movq %rax, -0x370(%rbp)
jmp 0xe42f
movq -0x370(%rbp), %rax
movl $0x0, (%rax)
leaq -0x238(%rbp), %rdi
callq 0x31e0
leaq -0x239(%rbp), %rdi
callq 0x3300
leaq -0x261(%rbp), %rdi
movq %rdi, -0x378(%rbp)
callq 0x3490
movq -0x378(%rbp), %rdx
leaq 0x13bf8(%rip), %rsi     # 0x2206d
leaq -0x260(%rbp), %rdi
callq 0x6020
jmp 0xe483
leaq 0x20e6e(%rip), %rdi     # 0x2f2f8
leaq -0x260(%rbp), %rsi
callq 0x5f40
movq %rax, -0x380(%rbp)
jmp 0xe49f
movq -0x380(%rbp), %rax
movl $0x0, (%rax)
leaq -0x260(%rbp), %rdi
callq 0x31e0
leaq -0x261(%rbp), %rdi
callq 0x3300
leaq -0x289(%rbp), %rdi
movq %rdi, -0x388(%rbp)
callq 0x3490
movq -0x388(%rbp), %rdx
leaq 0x13b38(%rip), %rsi     # 0x2201d
leaq -0x288(%rbp), %rdi
callq 0x6020
jmp 0xe4f3
leaq 0x20dfe(%rip), %rdi     # 0x2f2f8
leaq -0x288(%rbp), %rsi
callq 0x5f40
movq %rax, -0x390(%rbp)
jmp 0xe50f
movq -0x390(%rbp), %rax
movl $0x0, (%rax)
leaq -0x288(%rbp), %rdi
callq 0x31e0
leaq -0x289(%rbp), %rdi
callq 0x3300
addq $0x390, %rsp            # imm = 0x390
popq %rbp
retq
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x30(%rbp)
movl %eax, -0x34(%rbp)
jmp 0xe5f9
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x30(%rbp)
movl %eax, -0x34(%rbp)
jmp 0xe5f0
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x30(%rbp)
movl %eax, -0x34(%rbp)
jmp 0xe5e7
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x30(%rbp)
movl %eax, -0x34(%rbp)
jmp 0xe5de
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x30(%rbp)
movl %eax, -0x34(%rbp)
jmp 0xe5d2
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x30(%rbp)
movl %eax, -0x34(%rbp)
jmp 0xe5c9
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x30(%rbp)
movl %eax, -0x34(%rbp)
jmp 0xe5bd
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x30(%rbp)
movl %eax, -0x34(%rbp)
leaq -0xa8(%rbp), %rdi
callq 0x31e0
leaq -0xa9(%rbp), %rdi
callq 0x3300
leaq -0x80(%rbp), %rdi
callq 0x31e0
leaq -0x81(%rbp), %rdi
callq 0x3300
leaq -0x58(%rbp), %rdi
callq 0x31e0
leaq -0x59(%rbp), %rdi
callq 0x3300
leaq -0x20(%rbp), %rdi
callq 0x31e0
leaq -0x21(%rbp), %rdi
callq 0x3300
jmp 0xe890
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x30(%rbp)
movl %eax, -0x34(%rbp)
jmp 0xe62d
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x30(%rbp)
movl %eax, -0x34(%rbp)
leaq -0xd0(%rbp), %rdi
callq 0x31e0
leaq -0xd1(%rbp), %rdi
callq 0x3300
jmp 0xe890
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x30(%rbp)
movl %eax, -0x34(%rbp)
jmp 0xe664
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x30(%rbp)
movl %eax, -0x34(%rbp)
leaq -0xf8(%rbp), %rdi
callq 0x31e0
leaq -0xf9(%rbp), %rdi
callq 0x3300
jmp 0xe890
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x30(%rbp)
movl %eax, -0x34(%rbp)
jmp 0xe69b
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x30(%rbp)
movl %eax, -0x34(%rbp)
leaq -0x120(%rbp), %rdi
callq 0x31e0
leaq -0x121(%rbp), %rdi
callq 0x3300
jmp 0xe890
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x30(%rbp)
movl %eax, -0x34(%rbp)
jmp 0xe6d2
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x30(%rbp)
movl %eax, -0x34(%rbp)
leaq -0x148(%rbp), %rdi
callq 0x31e0
leaq -0x149(%rbp), %rdi
callq 0x3300
jmp 0xe890
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x30(%rbp)
movl %eax, -0x34(%rbp)
jmp 0xe709
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x30(%rbp)
movl %eax, -0x34(%rbp)
leaq -0x170(%rbp), %rdi
callq 0x31e0
leaq -0x171(%rbp), %rdi
callq 0x3300
jmp 0xe890
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x30(%rbp)
movl %eax, -0x34(%rbp)
jmp 0xe740
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x30(%rbp)
movl %eax, -0x34(%rbp)
leaq -0x198(%rbp), %rdi
callq 0x31e0
leaq -0x199(%rbp), %rdi
callq 0x3300
jmp 0xe890
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x30(%rbp)
movl %eax, -0x34(%rbp)
jmp 0xe777
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x30(%rbp)
movl %eax, -0x34(%rbp)
leaq -0x1c0(%rbp), %rdi
callq 0x31e0
leaq -0x1c1(%rbp), %rdi
callq 0x3300
jmp 0xe890
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x30(%rbp)
movl %eax, -0x34(%rbp)
jmp 0xe7ae
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x30(%rbp)
movl %eax, -0x34(%rbp)
leaq -0x1e8(%rbp), %rdi
callq 0x31e0
leaq -0x1e9(%rbp), %rdi
callq 0x3300
jmp 0xe890
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x30(%rbp)
movl %eax, -0x34(%rbp)
jmp 0xe7e5
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x30(%rbp)
movl %eax, -0x34(%rbp)
leaq -0x210(%rbp), %rdi
callq 0x31e0
leaq -0x211(%rbp), %rdi
callq 0x3300
jmp 0xe890
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x30(%rbp)
movl %eax, -0x34(%rbp)
jmp 0xe81c
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x30(%rbp)
movl %eax, -0x34(%rbp)
leaq -0x238(%rbp), %rdi
callq 0x31e0
leaq -0x239(%rbp), %rdi
callq 0x3300
jmp 0xe890
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x30(%rbp)
movl %eax, -0x34(%rbp)
jmp 0xe850
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x30(%rbp)
movl %eax, -0x34(%rbp)
leaq -0x260(%rbp), %rdi
callq 0x31e0
leaq -0x261(%rbp), %rdi
callq 0x3300
jmp 0xe890
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x30(%rbp)
movl %eax, -0x34(%rbp)
jmp 0xe884
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x30(%rbp)
movl %eax, -0x34(%rbp)
leaq -0x288(%rbp), %rdi
callq 0x31e0
leaq -0x289(%rbp), %rdi
callq 0x3300
movq -0x30(%rbp), %rdi
callq 0x3480
nopl (%rax)