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