Document RELOLIS from commit 1bf58cf
.
I hastily chose the name RELOLIS for this relocation type. If we want to rename it, we only need to edit these files: - h/out.h - mach/powerpc/as/mach5.c - util/amisc/ashow.c - util/led/ack.out.5 - util/led/relocate.c
This commit is contained in:
parent
83c13597e1
commit
13beb5e336
|
@ -161,12 +161,13 @@ struct outrelo {
|
||||||
/*
|
/*
|
||||||
* relocation type bits
|
* relocation type bits
|
||||||
*/
|
*/
|
||||||
#define RELSZ 0x0fff /* relocation length */
|
#define RELSZ 0x0fff /* relocation length */
|
||||||
#define RELO1 0x01 /* 1 byte */
|
#define RELO1 0x01 /* 1 byte */
|
||||||
#define RELO2 0x02 /* 2 bytes */
|
#define RELO2 0x02 /* 2 bytes */
|
||||||
#define RELO4 0x03 /* 4 bytes */
|
#define RELO4 0x03 /* 4 bytes */
|
||||||
#define RELOPPC 0x04 /* 26-bit PowerPC address */
|
#define RELOPPC 0x04 /* 26-bit PowerPC address */
|
||||||
#define RELOVC4 0x06 /* VideoCore IV address in 32-bit insruction */
|
#define RELOLIS 0x05 /* PowerPC lis */
|
||||||
|
#define RELOVC4 0x06 /* VideoCore IV address in 32-bit insruction */
|
||||||
#define RELPC 0x2000 /* pc relative */
|
#define RELPC 0x2000 /* pc relative */
|
||||||
#define RELBR 0x4000 /* High order byte lowest address. */
|
#define RELBR 0x4000 /* High order byte lowest address. */
|
||||||
#define RELWR 0x8000 /* High order word lowest address. */
|
#define RELWR 0x8000 /* High order word lowest address. */
|
||||||
|
@ -225,10 +226,23 @@ is an absolute number, and the datum is relocated pc relative.
|
||||||
The relocatable datum must then be relocated with respect to the
|
The relocatable datum must then be relocated with respect to the
|
||||||
base address of its section.
|
base address of its section.
|
||||||
.PP
|
.PP
|
||||||
|
For RELOPPC and RELOVC4, the relocatable datum is a PowerPC or
|
||||||
|
VideoCore IV instruction.
|
||||||
|
The relocation depends on the instruction, and uses an offset encoded
|
||||||
|
in the instruction.
|
||||||
|
.PP
|
||||||
|
RELOLIS assembles a PowerPC \fBlis\fR instruction.
|
||||||
|
The relocatable datum is a 4-byte integer.
|
||||||
|
The high bit is set for ha16 or clear for hi16.
|
||||||
|
The next 5 bits are the register \fIRT\fR.
|
||||||
|
The low 26 bits are a signed offset.
|
||||||
|
The relocation replaces the datum with the PowerPC instruction
|
||||||
|
\(oq\fBlis\fR\ \fIRT\fR,\ ha16[\fIsymbol\fR\ +\ \fIoffset\fR]\(cq.
|
||||||
|
.PP
|
||||||
.B The symbol table.
|
.B The symbol table.
|
||||||
.br
|
.br
|
||||||
This table contains definitions of symbols. It is referred to by
|
This table contains definitions of symbols.
|
||||||
outrelo-structures, and can be used by debuggers.
|
It is referred to by outrelo-structures, and can be used by debuggers.
|
||||||
Entries in this table have the following structure:
|
Entries in this table have the following structure:
|
||||||
.PP
|
.PP
|
||||||
.nf
|
.nf
|
||||||
|
|
Loading…
Reference in a new issue