120
Chapter 19. HPPA Dependent Features
.spnum secnam
Allocate four bytes of storage, and initialize them with the section number of the section named
secnam
. (You can define the section number with the HPPA
.space
directive.)
.string "str"
Copy the characters in the string
str
to the object file. Section 4.6.1.1 Strings, for information
on escape sequences you can use in
as
strings.
Warning! The HPPA version of
.string
differs from the usual
as
definition: it does not write a
zero byte after copying
str
.
.stringz "str"
Like
.string
, but appends a zero byte after copying
str
to object file.
.subspa name [ ,params ]
.nsubspa name [ ,params ]
Similar to
.space
, but selects a subsection
name
within the current section. You may only spec
ify
params
when you create a subsection (in the first instance of
.subspa
for this
name
).
If specified, the list
params
declares attributes of the subsection, identified by keywords. The
keywords recognized are
quad=expr
("quadrant" for this subsection),
align=expr
(alignment
for beginning of this subsection; a power of two),
access=expr
(value for "access rights"
field),
sort=expr
(sorting order for this subspace in link),
code_only
(subsection contains only
code),
unloadable
(subsection cannot be loaded into memory),
comdat
(subsection is comdat),
common
(subsection is common block),
dup_comm
(subsection may have duplicate names), or
zero
(subsection is all zeros, do not write in object file).
.nsubspa
always creates a new subspace with the given name, even if one with the same name
already exists.
comdat
,
common
and
dup_comm
can be used to implement various flavors of one only support
when using the SOM linker. The SOM linker only supports specific combinations of these flags.
The details are not documented. A brief description is provided here.
comdat
provides a form of linkonce support. It is useful for both code and data subspaces. A
comdat
subspace has a key symbol marked by the
is_comdat
flag or
ST_COMDAT
. Only the
first subspace for any given key is selected. The key symbol becomes universal in shared links.
This is similar to the behavior of
secondary_def
symbols.
common
provides Fortran named common support. It is only useful for data subspaces. Symbols
with the flag
is_common
retain this flag in shared links. Referencing a
is_common
symbol in a
shared library from outside the library doesn't work. Thus,
is_common
symbols must be output
whenever they are needed.
common
and
dup_comm
together provide Cobol common support. The subspaces in this case
must all be the same length. Otherwise, this support is similar to the Fortran common support.
dup_comm
by itself provides a type of one only support for code. Only the first
dup_comm
sub
space is selected. There is a rather complex algorithm to compare subspaces. Code symbols
marked with the
dup_common
flag are hidden. This support was intended for "C++ duplicate
inlines".
A simplified technique is used to mark the flags of symbols based on the flags of their subspace.
A symbol with the scope SS_UNIVERSAL and type ST_ENTRY, ST_CODE or ST_DATA is
marked with the corresponding settings of
comdat
,
common
and
dup_comm
from the subspace,
respectively. This avoids having to introduce additional directives to mark these symbols. The
HP assembler sets
is_common
from
common
. However, it doesn't set the
dup_common
from
dup_comm
. It doesn't have
comdat
support.
footer
Our partners:
PHP: Hypertext Preprocessor Best Web Hosting
Java Web Hosting
Inexpensive Web Hosting
Jsp Web Hosting
Cheapest Web Hosting
Jsp Hosting
Cheap Hosting
Visionwebhosting.net Business web hosting division of Web
Design Plus. All rights reserved