BTW:

<ad>
if you are in Europe and you want me to hold a class on such 
things in German or English, please contact me offline. 
</ad>

Kind regards

Bernd




Am Donnerstag, 9. Oktober 2008 09:47 schrieb Bernd Oppolzer:
> A variable which is listed in the storage offset listing as 0(r13)
> actually never is held in storage, but it resides in a register all the
> time. 0(r13) simply means that no storage is allocated for this variable
> (this is not very nice, I asked the compiler people several times to fix
> this. Some compiler versions simply give no offset at all in these cases,
> only a line with the variable name and a comma instead of an offset.)
>
> A variable without allocated storage must be a simple local variable
> which fits into a register (that is, a pointer, long, int, double etc.).
> This is never the case for parameters (they are addressed with r1 and
> never transferred by registers, always storage), or parts of a struct,
> or variables which need to be addressed by pointer. And, of course,
> not for char arrays, decimal values and so on, because they must reside
> in storage.
>
> The only way to determine the actual register number is to look at the
> assembly code around the error place. If you have something like
>
>     x = 0;
>
> *** la  r6,0
>
> you know, for example, that r6 is used to hold the value of x.
>
> Kind regards
>
> Bernd
>

----------------------------------------------------------------------
For IBM-MAIN subscribe / signoff / archive access instructions,
send email to [EMAIL PROTECTED] with the message: GET IBM-MAIN INFO
Search the archives at http://bama.ua.edu/archives/ibm-main.html

Reply via email to