Position-Independent Code

 

 

 

Generating Position-Independent Code

 

Any code which is PIC or which makes calls to PIC must follow the

NOTE

 

standard procedure call mechanism.

 

 

When linking files produced by the assembler, the linker exports only

 

 

those assembly language routines that have been explicitly exported as

 

entry (that is, symbols of type ST_ENTRY). Compiler generated

 

assembly code does not explicitly export routines with the entry type

 

specified, so the assembly language programmer must ensure that this is

 

done with the .EXPORT pseudo-op.

 

 

For example: In assembly language, a symbol is exported using

 

.EXPORT foo, type

 

 

where type can be code, data, entry, and others. To ensure that foo is

 

exported from a shared library, the assembly statement must be:

 

.EXPORT foo,entry

 

 

Long Calls

 

 

Normally, the compilers generate a single-instruction call sequence using

 

the BL instruction. The compilers can be forced to generate a long call

 

sequence when the module is so large that the BL is not guaranteed to

 

reach the beginning of the subspace. In the latter case, the linker can

 

insert a stub. The existing long call sequence is three instructions, using

 

an absolute target address:

 

 

 

LDIL

L'target,%r1

 

 

 

BLE

R'target(%sr4,%r1)

 

 

 

COPY

%r1,%rp

 

 

When the PIC option is in effect, the compilers must generate the

 

following instruction sequence, which is PC-relative:

 

 

BL

.+8,%rp

; get pc into rp

 

 

ADDIL

L'target - $L0 + 4, %rp

; add pc-rel offset to rp

 

 

LDO

R'target - $L1 + 8(%r1), %r1

 

$L0:

LDSID

(%r1), %r31

 

 

$L1:

MTSP

%r31, %sr0

 

 

 

BLE

0(%sr0,%r1)

 

 

 

COPY

%r31,%rp

 

Long Branches and Switch Tables

Long branches are similar to long calls, but are only two instructions because the return pointer is not needed:

Chapter 7

265

Page 265
Image 265
Kenwood HP 9000 manual Long Calls, Long Branches and Switch Tables

HP 9000 specifications

The Kenwood HP 9000 is a cutting-edge home appliance designed for culinary enthusiasts seeking to elevate their cooking experience. This powerful kitchen machine stands out for its multi-functionality, combining the roles of a food processor, blender, and mixer into one sleek unit.

One of the flagship features of the Kenwood HP 9000 is its robust motor, which delivers exceptional performance across various tasks. With a powerful motor that operates at multiple speeds, users can tackle everything from kneading dough to finely chopping vegetables with ease. The variable speed control allows for precision, ensuring that every ingredient is processed to perfection according to individual preferences.

The HP 9000 comes equipped with a variety of attachments that enhance its versatility. Among these are a stainless-steel mixing bowl, a dough hook, a whisk, and multiple cutting blades. This extensive array of accessories means that users can whip up delightful pastries, create homemade pasta, or prepare smoothies with minimal hassle. Each attachment is designed for easy attachment and removal, making the transition between tasks seamless and efficient.

Another key characteristic of the Kenwood HP 9000 is its advanced safety features. The design incorporates mechanisms that prevent the machine from operating unless all components are securely in place. This not only gives users peace of mind while cooking but also ensures longevity for the appliance, reducing the risk of wear and tear over time.

In terms of design, the HP 9000 is both modern and aesthetically pleasing. Its ergonomic shape and compact size make it easy to store and use in various kitchen settings, while the high-quality materials used in its construction guarantee durability and longevity. The user interface is intuitive, with clearly labeled buttons that facilitate operation, ensuring that even novice cooks can navigate the machine effortlessly.

Additionally, the Kenwood HP 9000 features innovative technologies, such as an integrated digital timer and a pulse function for added control during food preparation. These features enhance cooking precision, allowing users to achieve consistent results every time.

In summary, the Kenwood HP 9000 is an exceptional kitchen appliance that combines power, versatility, and safety. With its advanced features and user-friendly design, it is an ideal choice for anyone looking to simplify their cooking process while achieving professional-level results. Whether you're whipping up a quick meal or tackling an elaborate recipe, the HP 9000 is a reliable companion that will inspire culinary creativity.