Rajat Singh wrote:
I am declaring the global variable outside a procedure. I want to know the register that is used by this global variable. VAR VAR1:INTEGER; attribute(name='VAR1');
When I tried to disassemble the object file, the global variables seems to be residing in the memory instead of a register.
80000130: 7005 moveq #5,%d0 80000132: 23c0 8000 21ec movel %d0,800021ec <VAR1>
Can you please let me know how to identify the register which is used by this variable.
Global variables are normally allocated in memory. GNU C has an extension to allocate global variables in registers, but IIRC this is not supported by GPC. Why do you need information about registers? If you want to understand machine code generated by GPC then use something like
gpc -S -fverbose-asm file.pas
The -S option option generates assembly, '-fverbose-asm' adds extra comments which in particular explain which variables live in registers.