// File: navrajsaini[P]PL_Compiler_design_project/parser.cpp
// Function: Parse::VarAc()
void Parse::VarAc()//Variable access
{where="Va";check();
   
   if(LHS=="id")
   {

      VarName();
      ent = bTable.find_all_level(index);
      //cout<<endl<<ent.disp<<endl;
      gen.emit3("VARIABLE", bTable.loc(index), ent.disp);
      //cout << endl << "index: "<< ent.idindex << endl << endl;
      if(!bTable.search(index))
	 scopeError("list Variable not Defined in VarAc");
      VarAcB();
      if(ary == 1)
      {
	 gen.emit3("INDEX", ent.size, ln[tokeNum][0]);
	 ary = 0;
      }
   }else
      errorReport();
}

// Assembly:
pushq %rbp
movq %rsp, %rbp
subq $0xf0, %rsp
movq %rdi, -0x8(%rbp)
movq -0x8(%rbp), %rdi
movq %rdi, -0xb8(%rbp)
addq $0x5098, %rdi           # imm = 0x5098
leaq 0x76a4(%rip), %rsi      # 0x1f9fc
callq 0x2280
movq -0xb8(%rbp), %rdi
callq 0x15310
movq -0xb8(%rbp), %rdi
addq $0x5050, %rdi           # imm = 0x5050
leaq 0x6ffa(%rip), %rsi      # 0x1f378
callq 0x10ea0
testb $0x1, %al
jne 0x1838c
jmp 0x1863c
movq -0xb8(%rbp), %rdi
callq 0x173a0
movq -0xb8(%rbp), %rax
movq %rax, %rsi
addq $0x4c38, %rsi           # imm = 0x4C38
movl 0x4ddc(%rax), %edx
leaq -0x24(%rbp), %rdi
callq 0x1a870
movq -0xb8(%rbp), %rax
movups -0x24(%rbp), %xmm0
movups -0x18(%rbp), %xmm1
movups %xmm1, 0x4e1c(%rax)
movups %xmm0, 0x4e10(%rax)
addq $0x50c0, %rax           # imm = 0x50C0
movq %rax, -0xc8(%rbp)
leaq -0x49(%rbp), %rdi
movq %rdi, -0xc0(%rbp)
callq 0x2350
movq -0xc0(%rbp), %rdx
leaq 0x75ff(%rip), %rsi      # 0x1f9ff
leaq -0x48(%rbp), %rdi
callq 0x2290
jmp 0x1840b
movq -0xb8(%rbp), %rax
movq %rax, %rdi
addq $0x4c38, %rdi           # imm = 0x4C38
movl 0x4ddc(%rax), %esi
callq 0x1a790
movl %eax, -0xcc(%rbp)
jmp 0x1842f
movl -0xcc(%rbp), %edx
movq -0xc8(%rbp), %rdi
movq -0xb8(%rbp), %rax
movl 0x4e24(%rax), %ecx
leaq -0x48(%rbp), %rsi
callq 0x13010
jmp 0x18454
leaq -0x48(%rbp), %rdi
callq 0x2130
leaq -0x49(%rbp), %rdi
callq 0x21e0
movq -0xb8(%rbp), %rax
movq %rax, %rdi
addq $0x4c38, %rdi           # imm = 0x4C38
movl 0x4ddc(%rax), %esi
callq 0x19fe0
testb $0x1, %al
jne 0x18544
leaq -0x81(%rbp), %rdi
movq %rdi, -0xd8(%rbp)
callq 0x2350
movq -0xd8(%rbp), %rdx
leaq 0x755d(%rip), %rsi      # 0x1fa08
leaq -0x80(%rbp), %rdi
callq 0x2290
jmp 0x184b6
movq -0xb8(%rbp), %rdi
leaq -0x80(%rbp), %rsi
callq 0x15400
jmp 0x184c8
leaq -0x80(%rbp), %rdi
callq 0x2130
leaq -0x81(%rbp), %rdi
callq 0x21e0
jmp 0x18544
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x58(%rbp)
movl %eax, -0x5c(%rbp)
jmp 0x18502
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x58(%rbp)
movl %eax, -0x5c(%rbp)
leaq -0x48(%rbp), %rdi
callq 0x2130
leaq -0x49(%rbp), %rdi
callq 0x21e0
jmp 0x18651
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x58(%rbp)
movl %eax, -0x5c(%rbp)
jmp 0x18533
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x58(%rbp)
movl %eax, -0x5c(%rbp)
leaq -0x80(%rbp), %rdi
callq 0x2130
leaq -0x81(%rbp), %rdi
callq 0x21e0
jmp 0x18651
movq -0xb8(%rbp), %rdi
callq 0x19c90
movq -0xb8(%rbp), %rax
cmpl $0x1, 0x71b4(%rax)
jne 0x1863a
movq -0xb8(%rbp), %rax
addq $0x50c0, %rax           # imm = 0x50C0
movq %rax, -0xe8(%rbp)
leaq -0xa9(%rbp), %rdi
movq %rdi, -0xe0(%rbp)
callq 0x2350
movq -0xe0(%rbp), %rdx
leaq 0x7492(%rip), %rsi      # 0x1fa2b
leaq -0xa8(%rbp), %rdi
callq 0x2290
jmp 0x185a7
movq -0xe8(%rbp), %rdi
movq -0xb8(%rbp), %rax
movl 0x4e1c(%rax), %edx
movslq 0x2028(%rax), %rcx
leaq (%rcx,%rcx,2), %rcx
movl 0x2030(%rax,%rcx,4), %ecx
leaq -0xa8(%rbp), %rsi
callq 0x13010
jmp 0x185db
leaq -0xa8(%rbp), %rdi
callq 0x2130
leaq -0xa9(%rbp), %rdi
callq 0x21e0
movq -0xb8(%rbp), %rax
movl $0x0, 0x71b4(%rax)
jmp 0x1863a
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x58(%rbp)
movl %eax, -0x5c(%rbp)
jmp 0x1862c
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x58(%rbp)
movl %eax, -0x5c(%rbp)
leaq -0xa8(%rbp), %rdi
callq 0x2130
leaq -0xa9(%rbp), %rdi
callq 0x21e0
jmp 0x18651
jmp 0x18648
movq -0xb8(%rbp), %rdi
callq 0x15110
addq $0xf0, %rsp
popq %rbp
retq
movq -0x58(%rbp), %rdi
callq 0x2340
nopw (%rax,%rax)