Displaying 7 results from an estimated 7 matches for "body_ok".
2012 Mar 22
2
[LLVMdev] Sorting relocation entries
...to be reordered so that the
got16/lo16 or hi16/lo16 pairs appear consecutively in the relocation
table. As a result, relocations can appear in a different order than
the instructions that they're for.
For example, in this code, the post-RA scheduler inserts an
instruction with relocation %got(body_ok) between %got(scope_top) and
%lo(scope_top).
$ 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 l...
2012 Mar 22
0
[LLVMdev] Sorting relocation entries
...> got16/lo16 or hi16/lo16 pairs appear consecutively in the relocation
> table. As a result, relocations can appear in a different order than
> the instructions that they're for.
>
> For example, in this code, the post-RA scheduler inserts an
> instruction with relocation %got(body_ok) between %got(scope_top) and
> %lo(scope_top).
>
> $ 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...
2012 Mar 22
2
[LLVMdev] Sorting relocation entries
...16/lo16 pairs appear consecutively in the relocation
>> table. As a result, relocations can appear in a different order than
>> the instructions that they're for.
>>
>> For example, in this code, the post-RA scheduler inserts an
>> instruction with relocation %got(body_ok) between %got(scope_top) and
>> %lo(scope_top).
>>
>> $ 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 ga...
2012 Mar 21
0
[LLVMdev] Sorting relocation entries
Hi Akira,
If I follow correctly, the relocation entries can thus be in a different order than the instructions that they're for? That seems a bit odd, but I suppose there's nothing inherently wrong with that. It's just not something, AFAIK, that llvm has had to deal with before. This should definitely be a target-specific thing, not a general ELFObjectWriter thing, as other targets
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
2012 Mar 23
0
[LLVMdev] Sorting relocation entries
...r consecutively in the relocation
>>> table. As a result, relocations can appear in a different order than
>>> the instructions that they're for.
>>>
>>> For example, in this code, the post-RA scheduler inserts an
>>> instruction with relocation %got(body_ok) between %got(scope_top) and
>>> %lo(scope_top).
>>>
>>> $ 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...
2012 Mar 23
1
[LLVMdev] Sorting relocation entries
...e relocation
>>>> table. As a result, relocations can appear in a different order than
>>>> the instructions that they're for.
>>>>
>>>> For example, in this code, the post-RA scheduler inserts an
>>>> instruction with relocation %got(body_ok) between %got(scope_top) and
>>>> %lo(scope_top).
>>>>
>>>> $ 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)
>>...