| To: | David VomLehn <dvomlehn@cisco.com> |
|---|---|
| Subject: | Re: Relocation problem with MIPS kernel modules |
| From: | Ralf Baechle <ralf@linux-mips.org> |
| Date: | Tue, 4 Aug 2009 00:55:36 +0100 |
| Cc: | David Daney <ddaney@caviumnetworks.com>, GCC Help Mailing List <gcc-help@gcc.gnu.org>, Linux MIPS Mailing List <linux-mips@linux-mips.org> |
| In-reply-to: | <20090803201521.GA24691@cuplxvomd02.corp.sa.net> |
| Original-recipient: | rfc822;linux-mips@linux-mips.org |
| References: | <20090730184923.GA27030@cuplxvomd02.corp.sa.net> <20090803092030.GB30431@linux-mips.org> <4A773B85.6010004@caviumnetworks.com> <20090803201521.GA24691@cuplxvomd02.corp.sa.net> |
| Sender: | linux-mips-bounce@linux-mips.org |
| User-agent: | Mutt/1.5.18 (2008-05-17) |
On Mon, Aug 03, 2009 at 01:15:21PM -0700, David VomLehn wrote:
> > Actually I think it is the opposite:
> >
> > RELOCATION RECORDS FOR [.text]:
> > OFFSET TYPE VALUE
> > 00000000 R_MIPS_HI16 .bss+0x00000004
> > 00000008 R_MIPS_LO16 .bss+0x00000004
> > 00000014 R_MIPS_LO16 .bss+0x00000004
> >
> > We load the hi16 value into a register and then use multiple lo16
> > offsets for the follow loads and stores to the same location. On a
> > read-modify-write we only want to load the base address one time.
>
> This particular case is covered by the old MIPS Processor psABI:
>
> R_MIPS_LO16 entries without an R_MIPS_HI16 entry immediately preceding
> are orphaned and the previously defined R_MIPS_HI16 is used for
> computing the addend.
>
> The code in module.c looks like it implements the extension to which Ralf
> refers.
Which is useful for for branch delay slot scheduling like:
...
j 1f
lui a0, %hi16(hello)
...
j 1f
lui a0, %hi16(hello)
...
1: jal printf
addiu a0, %lo16(hello)
hello: .asciz "hello, hola\n"
The next and logical extension would be to permit multiple R_MIPS_LO16
records following a sequence of one or more R_MIPS_HI16 relocs as long as
all relate to the same symbol - which would be simple to support in the
kernel.
Ralf
|
| <Prev in Thread] | Current Thread | [Next in Thread> |
|---|---|---|
| ||
| Previous by Date: | Re: Relocation problem with MIPS kernel modules, David VomLehn |
|---|---|
| Next by Date: | Re: Relocation problem with MIPS kernel modules, David VomLehn |
| Previous by Thread: | Re: Relocation problem with MIPS kernel modules, David VomLehn |
| Next by Thread: | Re: Relocation problem with MIPS kernel modules, David VomLehn |
| Indexes: | [Date] [Thread] [Top] [All Lists] |