Re: Global variables - register allocated

Waldek Hebisch <[email protected]>
Newsgroups gmane.comp.compilers.gpc
Message-ID <[email protected]>
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.

-- 
                              Waldek Hebisch
[email protected] 

_______________________________________________
Gpc mailing list
[email protected]
https://www.g-n-u.de/mailman/listinfo/gpc
lmpx.com only provides a reader for public news (NNTP) servers. It is not affiliated with the servers or forums shown here and is not responsible for the content of articles, which is written by their respective authors.