Displaying 8 results from an estimated 8 matches for "r_mips_got16".
2015 Nov 21
2
[lld] Hiding original type of GOT related relocations
Hi,
There are more than one MIPS relocations which need GOT entry
creation. Let's consider two of them R_MIPS_GOT16 and R_MIPS_CALL16
[1]. R_MIPS_GOT16 is applicable to local and external symbols and
performs a different calculation in each cases [2]. R_MIPS_CALL16 is
applicable to external symbols only and a linker should show an error
if it finds R_MIPS_CALL16 with a local target. Now LLD in the
`InputSectionB...
2012 Mar 22
2
[LLVMdev] Sorting relocation entries
...$ cat z29.s
lw $3, %got(scope_top)($gp)
lw $2, %got(body_ok)($gp)
lw $3, %lo(scope_top)($3)
addiu $2, $2, %lo(body_ok)
This is the assembled program generated by gas:
$ mips-linux-gnu-objdump -dr z29.gas.o
748: 8f830000 lw v1,0(gp)
748: R_MIPS_GOT16 .bss
74c: 8f820000 lw v0,0(gp)
74c: R_MIPS_GOT16 .bss
750: 8c630000 lw v1,0(v1)
750: R_MIPS_LO16 .bss
754: 244245d4 addiu v0,v0,17876
754: R_M...
2012 Mar 19
2
[LLVMdev] Sorting relocation entries
What would be the best way to sort relocation entries before they are
written out in ELFObjectWriter::WriteRelocationsFragment?
According to the Mips ABI documents I have, there are certain
restrictions on the order relocations appear in the table (e.g.
R_MIPS_HI16 and R_MIPS_GOT16 must be followed immediately by a
R_MIPS_LO16). When I enable post RA scheduling, some of the
restrictions are violated in the generated object code, which results
in incorrect relocation values generated by the linker.
I am considering imitating what gas does in function mips_frob_file
(line 1552...
2012 Mar 22
0
[LLVMdev] Sorting relocation entries
...)($gp)
> lw $2, %got(body_ok)($gp)
> lw $3, %lo(scope_top)($3)
> addiu $2, $2, %lo(body_ok)
>
> This is the assembled program generated by gas:
> $ mips-linux-gnu-objdump -dr z29.gas.o
>
> 748: 8f830000 lw v1,0(gp)
> 748: R_MIPS_GOT16 .bss
> 74c: 8f820000 lw v0,0(gp)
> 74c: R_MIPS_GOT16 .bss
> 750: 8c630000 lw v1,0(v1)
> 750: R_MIPS_LO16 .bss
> 754: 244245d4 addiu v0,v0,17876
> ...
2012 Mar 21
0
[LLVMdev] Sorting relocation entries
...gt; What would be the best way to sort relocation entries before they are
> written out in ELFObjectWriter::WriteRelocationsFragment?
>
> According to the Mips ABI documents I have, there are certain
> restrictions on the order relocations appear in the table (e.g.
> R_MIPS_HI16 and R_MIPS_GOT16 must be followed immediately by a
> R_MIPS_LO16). When I enable post RA scheduling, some of the
> restrictions are violated in the generated object code, which results
> in incorrect relocation values generated by the linker.
>
> I am considering imitating what gas does in function...
2012 Mar 22
2
[LLVMdev] Sorting relocation entries
...($gp)
>> lw $3, %lo(scope_top)($3)
>> addiu $2, $2, %lo(body_ok)
>>
>> This is the assembled program generated by gas:
>> $ mips-linux-gnu-objdump -dr z29.gas.o
>>
>> 748: 8f830000 lw v1,0(gp)
>> 748: R_MIPS_GOT16 .bss
>> 74c: 8f820000 lw v0,0(gp)
>> 74c: R_MIPS_GOT16 .bss
>> 750: 8c630000 lw v1,0(v1)
>> 750: R_MIPS_LO16 .bss
>> 754: 244245d4 addiu v0,v...
2012 Mar 23
0
[LLVMdev] Sorting relocation entries
...o(scope_top)($3)
>>> addiu $2, $2, %lo(body_ok)
>>>
>>> This is the assembled program generated by gas:
>>> $ mips-linux-gnu-objdump -dr z29.gas.o
>>>
>>> 748: 8f830000 lw v1,0(gp)
>>> 748: R_MIPS_GOT16 .bss
>>> 74c: 8f820000 lw v0,0(gp)
>>> 74c: R_MIPS_GOT16 .bss
>>> 750: 8c630000 lw v1,0(v1)
>>> 750: R_MIPS_LO16 .bss
>>> 754: 244245d4...
2012 Mar 23
1
[LLVMdev] Sorting relocation entries
...gt; addiu $2, $2, %lo(body_ok)
>>>>
>>>> This is the assembled program generated by gas:
>>>> $ mips-linux-gnu-objdump -dr z29.gas.o
>>>>
>>>> 748: 8f830000 lw v1,0(gp)
>>>> 748: R_MIPS_GOT16 .bss
>>>> 74c: 8f820000 lw v0,0(gp)
>>>> 74c: R_MIPS_GOT16 .bss
>>>> 750: 8c630000 lw v1,0(v1)
>>>> 750: R_MIPS_LO16 .bss
>>>>...