// File: jstaursky[P]hutch/src/Sleigh/slgh_compile.cc
// Function: SleighCompile::predefinedSymbols()
void SleighCompile::predefinedSymbols(void)

{ // Define the "pre" defined spaces and symbols
  // This must happen after endian has been defined
  symtab.addScope();		// Create global scope

				// Some predefined symbols
  root = new SubtableSymbol("instruction"); // Base constructors
  symtab.addSymbol(root);
  insertSpace(new ConstantSpace(this,this,"const",AddrSpace::constant_space_index));
  SpaceSymbol *spacesym = new SpaceSymbol(getConstantSpace()); // Constant space
  symtab.addSymbol(spacesym);
  OtherSpace *otherSpace = new OtherSpace(this,this,"OTHER",AddrSpace::other_space_index);
  insertSpace(otherSpace);
  spacesym = new SpaceSymbol(otherSpace);
  symtab.addSymbol(spacesym);
  insertSpace(new UniqueSpace(this,this,"unique",numSpaces(),0));
  spacesym = new SpaceSymbol(getUniqueSpace()); // Temporary register space
  symtab.addSymbol(spacesym);
  StartSymbol *startsym = new StartSymbol("inst_start",getConstantSpace());
  symtab.addSymbol(startsym);
  EndSymbol *endsym = new EndSymbol("inst_next",getConstantSpace());
  symtab.addSymbol(endsym);
  EpsilonSymbol *epsilon = new EpsilonSymbol("epsilon",getConstantSpace());
  symtab.addSymbol(epsilon);
  pcode.setConstantSpace(getConstantSpace());
  pcode.setUniqueSpace(getUniqueSpace());
}

// Assembly:
pushq %rbp
movq %rsp, %rbp
subq $0x230, %rsp            # imm = 0x230
movq %rdi, -0x8(%rbp)
movq -0x8(%rbp), %rdi
movq %rdi, -0x170(%rbp)
addq $0x198, %rdi            # imm = 0x198
callq 0xa2b60
movl $0x60, %edi
callq 0x11440
movq %rax, -0x168(%rbp)
movb $0x1, -0x3d(%rbp)
leaq -0x29(%rbp), %rdi
movq %rdi, -0x160(%rbp)
callq 0x118c0
movq -0x160(%rbp), %rdx
leaq 0x773a1(%rip), %rsi     # 0xd864a
leaq -0x28(%rbp), %rdi
callq 0x14430
jmp 0x612b4
movq -0x168(%rbp), %rdi
leaq -0x28(%rbp), %rsi
callq 0xadc70
jmp 0x612c6
movq -0x170(%rbp), %rax
movq -0x168(%rbp), %rcx
movb $0x0, -0x3d(%rbp)
movq %rcx, 0x190(%rax)
leaq -0x28(%rbp), %rdi
callq 0x11300
leaq -0x29(%rbp), %rdi
callq 0x114d0
movq -0x170(%rbp), %rax
movq %rax, %rdi
addq $0x198, %rdi            # imm = 0x198
movq 0x190(%rax), %rsi
callq 0xa2dc0
movl $0x70, %edi
callq 0x11440
movq %rax, -0x180(%rbp)
movb $0x1, -0x62(%rbp)
leaq -0x61(%rbp), %rdi
movq %rdi, -0x178(%rbp)
callq 0x118c0
movq -0x178(%rbp), %rdx
leaq 0x7801a(%rip), %rsi     # 0xd935b
leaq -0x60(%rbp), %rdi
callq 0x14430
jmp 0x6134c
movq -0x170(%rbp), %rdx
movq -0x180(%rbp), %rdi
leaq -0x60(%rbp), %rcx
xorl %r8d, %r8d
movq %rdx, %rsi
callq 0xbf5f0
jmp 0x6136b
movq -0x180(%rbp), %rsi
movq -0x170(%rbp), %rdi
movb $0x0, -0x62(%rbp)
callq 0xc3c10
jmp 0x61384
leaq -0x60(%rbp), %rdi
callq 0x11300
leaq -0x61(%rbp), %rdi
callq 0x114d0
movl $0x38, %edi
callq 0x11440
movq -0x170(%rbp), %rdi
movq %rax, -0x190(%rbp)
callq 0x48150
movq %rax, -0x188(%rbp)
jmp 0x613bc
movq -0x188(%rbp), %rsi
movq -0x190(%rbp), %rdi
callq 0x48250
jmp 0x613d1
movq -0x170(%rbp), %rdi
movq -0x190(%rbp), %rax
movq %rax, -0x70(%rbp)
addq $0x198, %rdi            # imm = 0x198
movq -0x70(%rbp), %rsi
callq 0xa2dc0
movl $0x70, %edi
callq 0x11440
movq %rax, -0x1a0(%rbp)
movb $0x1, -0x9a(%rbp)
leaq -0x99(%rbp), %rdi
movq %rdi, -0x198(%rbp)
callq 0x118c0
movq -0x198(%rbp), %rdx
leaq 0x73c35(%rip), %rsi     # 0xd5061
leaq -0x98(%rbp), %rdi
callq 0x14430
jmp 0x6143a
movq -0x170(%rbp), %rdx
movq -0x1a0(%rbp), %rdi
leaq -0x98(%rbp), %rcx
movl $0x1, %r8d
movq %rdx, %rsi
callq 0xbf860
jmp 0x6145f
movb $0x0, -0x9a(%rbp)
leaq -0x98(%rbp), %rdi
callq 0x11300
leaq -0x99(%rbp), %rdi
callq 0x114d0
movq -0x1a0(%rbp), %rax
movq -0x170(%rbp), %rdi
movq %rax, -0x78(%rbp)
movq -0x78(%rbp), %rsi
callq 0xc3c10
movl $0x38, %edi
callq 0x11440
movq %rax, %rdi
movq %rdi, %rax
movq %rax, -0x1a8(%rbp)
movq -0x78(%rbp), %rsi
callq 0x48250
jmp 0x614bb
movq -0x170(%rbp), %rdi
movq -0x1a8(%rbp), %rax
movq %rax, -0x70(%rbp)
addq $0x198, %rdi            # imm = 0x198
movq -0x70(%rbp), %rsi
callq 0xa2dc0
movl $0x70, %edi
callq 0x11440
movq %rax, -0x1b8(%rbp)
movb $0x1, -0xc2(%rbp)
leaq -0xc1(%rbp), %rdi
movq %rdi, -0x1b0(%rbp)
callq 0x118c0
movq -0x1b0(%rbp), %rdx
leaq 0x802c7(%rip), %rsi     # 0xe17dd
leaq -0xc0(%rbp), %rdi
callq 0x14430
jmp 0x61524
movq -0x170(%rbp), %rdi
callq 0x481b0
movl %eax, -0x1bc(%rbp)
jmp 0x61538
movl -0x1bc(%rbp), %r8d
movq -0x170(%rbp), %rdx
movq -0x1b8(%rbp), %rdi
leaq -0xc0(%rbp), %rcx
xorl %r9d, %r9d
movq %rdx, %rsi
callq 0xbfa30
jmp 0x61561
movq -0x1b8(%rbp), %rsi
movq -0x170(%rbp), %rdi
movb $0x0, -0xc2(%rbp)
callq 0xc3c10
jmp 0x6157d
leaq -0xc0(%rbp), %rdi
callq 0x11300
leaq -0xc1(%rbp), %rdi
callq 0x114d0
movl $0x38, %edi
callq 0x11440
movq -0x170(%rbp), %rdi
movq %rax, -0x1d0(%rbp)
callq 0x48190
movq %rax, -0x1c8(%rbp)
jmp 0x615bb
movq -0x1c8(%rbp), %rsi
movq -0x1d0(%rbp), %rdi
callq 0x48250
jmp 0x615d0
movq -0x170(%rbp), %rdi
movq -0x1d0(%rbp), %rax
movq %rax, -0x70(%rbp)
addq $0x198, %rdi            # imm = 0x198
movq -0x70(%rbp), %rsi
callq 0xa2dc0
movl $0x40, %edi
callq 0x11440
movq %rax, -0x1e0(%rbp)
movb $0x1, -0xf2(%rbp)
leaq -0xf1(%rbp), %rdi
movq %rdi, -0x1d8(%rbp)
callq 0x118c0
movq -0x1d8(%rbp), %rdx
leaq 0x77d36(%rip), %rsi     # 0xd9361
leaq -0xf0(%rbp), %rdi
callq 0x14430
jmp 0x61639
movq -0x170(%rbp), %rdi
callq 0x48150
movq %rax, -0x1e8(%rbp)
jmp 0x6164e
movq -0x1e8(%rbp), %rdx
movq -0x1e0(%rbp), %rdi
leaq -0xf0(%rbp), %rsi
callq 0xa9460
jmp 0x6166a
movb $0x0, -0xf2(%rbp)
leaq -0xf0(%rbp), %rdi
callq 0x11300
leaq -0xf1(%rbp), %rdi
callq 0x114d0
movq -0x1e0(%rbp), %rax
movq -0x170(%rbp), %rdi
movq %rax, -0xd0(%rbp)
addq $0x198, %rdi            # imm = 0x198
movq -0xd0(%rbp), %rsi
callq 0xa2dc0
movl $0x40, %edi
callq 0x11440
movq %rax, -0x1f8(%rbp)
movb $0x1, -0x122(%rbp)
leaq -0x121(%rbp), %rdi
movq %rdi, -0x1f0(%rbp)
callq 0x118c0
movq -0x1f0(%rbp), %rdx
leaq 0x77c82(%rip), %rsi     # 0xd936c
leaq -0x120(%rbp), %rdi
callq 0x14430
jmp 0x616f8
movq -0x170(%rbp), %rdi
callq 0x48150
movq %rax, -0x200(%rbp)
jmp 0x6170d
movq -0x200(%rbp), %rdx
movq -0x1f8(%rbp), %rdi
leaq -0x120(%rbp), %rsi
callq 0xa9850
jmp 0x61729
movb $0x0, -0x122(%rbp)
leaq -0x120(%rbp), %rdi
callq 0x11300
leaq -0x121(%rbp), %rdi
callq 0x114d0
movq -0x1f8(%rbp), %rax
movq -0x170(%rbp), %rdi
movq %rax, -0x100(%rbp)
addq $0x198, %rdi            # imm = 0x198
movq -0x100(%rbp), %rsi
callq 0xa2dc0
movl $0x40, %edi
callq 0x11440
movq %rax, -0x210(%rbp)
movb $0x1, -0x152(%rbp)
leaq -0x151(%rbp), %rdi
movq %rdi, -0x208(%rbp)
callq 0x118c0
movq -0x208(%rbp), %rdx
leaq 0x77bcd(%rip), %rsi     # 0xd9376
leaq -0x150(%rbp), %rdi
callq 0x14430
jmp 0x617b7
movq -0x170(%rbp), %rdi
callq 0x48150
movq %rax, -0x218(%rbp)
jmp 0x617cc
movq -0x218(%rbp), %rdx
movq -0x210(%rbp), %rdi
leaq -0x150(%rbp), %rsi
callq 0x6b4d0
jmp 0x617e8
movb $0x0, -0x152(%rbp)
leaq -0x150(%rbp), %rdi
callq 0x11300
leaq -0x151(%rbp), %rdi
callq 0x114d0
movq -0x210(%rbp), %rax
movq -0x170(%rbp), %rdi
movq %rax, -0x130(%rbp)
addq $0x198, %rdi            # imm = 0x198
movq -0x130(%rbp), %rsi
callq 0xa2dc0
movq -0x170(%rbp), %rdi
movq %rdi, %rax
addq $0x1e0, %rax            # imm = 0x1E0
movq %rax, -0x228(%rbp)
callq 0x48150
movq -0x228(%rbp), %rdi
movq %rax, %rsi
callq 0x48130
movq -0x170(%rbp), %rdi
movq %rdi, %rax
addq $0x1e0, %rax            # imm = 0x1E0
movq %rax, -0x220(%rbp)
callq 0x48190
movq -0x220(%rbp), %rdi
movq %rax, %rsi
callq 0x48170
addq $0x230, %rsp            # imm = 0x230
popq %rbp
retq
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x38(%rbp)
movl %eax, -0x3c(%rbp)
jmp 0x618b1
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x38(%rbp)
movl %eax, -0x3c(%rbp)
leaq -0x28(%rbp), %rdi
callq 0x11300
leaq -0x29(%rbp), %rdi
callq 0x114d0
testb $0x1, -0x3d(%rbp)
jne 0x618c2
jmp 0x618d3
movq -0x168(%rbp), %rdi
movl $0x60, %esi
callq 0x11450
jmp 0x61b21
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x38(%rbp)
movl %eax, -0x3c(%rbp)
jmp 0x618fb
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x38(%rbp)
movl %eax, -0x3c(%rbp)
leaq -0x60(%rbp), %rdi
callq 0x11300
leaq -0x61(%rbp), %rdi
callq 0x114d0
testb $0x1, -0x62(%rbp)
jne 0x6190c
jmp 0x6191d
movq -0x180(%rbp), %rdi
movl $0x70, %esi
callq 0x11450
jmp 0x61b21
movq -0x190(%rbp), %rdi
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x38(%rbp)
movl %eax, -0x3c(%rbp)
movl $0x38, %esi
callq 0x11450
jmp 0x61b21
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x38(%rbp)
movl %eax, -0x3c(%rbp)
jmp 0x6196a
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x38(%rbp)
movl %eax, -0x3c(%rbp)
leaq -0x98(%rbp), %rdi
callq 0x11300
leaq -0x99(%rbp), %rdi
callq 0x114d0
testb $0x1, -0x9a(%rbp)
jne 0x61981
jmp 0x61992
movq -0x1a0(%rbp), %rdi
movl $0x70, %esi
callq 0x11450
jmp 0x61b21
movq -0x1a8(%rbp), %rdi
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x38(%rbp)
movl %eax, -0x3c(%rbp)
movl $0x38, %esi
callq 0x11450
jmp 0x61b21
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x38(%rbp)
movl %eax, -0x3c(%rbp)
jmp 0x619df
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x38(%rbp)
movl %eax, -0x3c(%rbp)
leaq -0xc0(%rbp), %rdi
callq 0x11300
leaq -0xc1(%rbp), %rdi
callq 0x114d0
testb $0x1, -0xc2(%rbp)
jne 0x619f6
jmp 0x61a07
movq -0x1b8(%rbp), %rdi
movl $0x70, %esi
callq 0x11450
jmp 0x61b21
movq -0x1d0(%rbp), %rdi
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x38(%rbp)
movl %eax, -0x3c(%rbp)
movl $0x38, %esi
callq 0x11450
jmp 0x61b21
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x38(%rbp)
movl %eax, -0x3c(%rbp)
jmp 0x61a54
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x38(%rbp)
movl %eax, -0x3c(%rbp)
leaq -0xf0(%rbp), %rdi
callq 0x11300
leaq -0xf1(%rbp), %rdi
callq 0x114d0
testb $0x1, -0xf2(%rbp)
jne 0x61a6b
jmp 0x61a7c
movq -0x1e0(%rbp), %rdi
movl $0x40, %esi
callq 0x11450
jmp 0x61b21
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x38(%rbp)
movl %eax, -0x3c(%rbp)
jmp 0x61aa7
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x38(%rbp)
movl %eax, -0x3c(%rbp)
leaq -0x120(%rbp), %rdi
callq 0x11300
leaq -0x121(%rbp), %rdi
callq 0x114d0
testb $0x1, -0x122(%rbp)
jne 0x61abe
jmp 0x61acf
movq -0x1f8(%rbp), %rdi
movl $0x40, %esi
callq 0x11450
jmp 0x61b21
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x38(%rbp)
movl %eax, -0x3c(%rbp)
jmp 0x61af7
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x38(%rbp)
movl %eax, -0x3c(%rbp)
leaq -0x150(%rbp), %rdi
callq 0x11300
leaq -0x151(%rbp), %rdi
callq 0x114d0
testb $0x1, -0x152(%rbp)
jne 0x61b0e
jmp 0x61b1f
movq -0x210(%rbp), %rdi
movl $0x40, %esi
callq 0x11450
jmp 0x61b21
movq -0x38(%rbp), %rdi
callq 0x118b0
nopw (%rax,%rax)