Kbase 13434: Why does the size of .r code increase on Alpha OpenVMS
Autor |
  Progress Software Corporation - Progress |
Acesso |
  Público |
Publicação |
  5/10/1998 |
|
Why does the size of .r code increase on Alpha OpenVMS
Question: What is the reason that the a compiled
PROGRESS .r file allocates more VMS disk blocks
from VAX/VMS to Alpha OpenVMS??
Example: I compiled update.p on VAX and it's size is..
$ dire/size=all update.r
UPDATE.R;2 4/4
I compile the same update.p on Alpha OpenVMS and
it's size is..
$ dire/size=all update.r
UPDATE.R;2 4/6
Explanation:
-----------
On the VAX integer values in r-code (and everywhere else for
that matter) are byte-aligned. On the Alpha they are
longword-aligned.
Let's say you have a five-byte character called C followed
by an integer called I.
On the VAX they get stored like this and take 9 bytes of
storage:
Addr 0 1 2 3 4 5 6 7 8
- - - - - - - - -
C C C C C I I I I
On the Alpha they get stored like this and take 12 bytes of
storage:
1 1
Addr 0 1 2 3 4 5 6 7 8 9 0 1
- - - - - - - - - - - -
C C C C C I I I I
^ ^ ^
padding
Progress Software Technical Support Note # 13434