Displaying 3 results from an estimated 3 matches for "addrloc".
Did you mean:
addloc
2017 Sep 19
1
Do I need to modify the AddrLoc of LLD for ARC target?
...put a .thumb directive in the file, or pass -mthumb to the assembler
via arm-linux-gnu-gcc -Wa,-mthumb (I think).
I'm not able to explain what you are seeing in your print out as it
doesn't quite match the map file. Looking at your source diff I think
I may have found a bug:
uint64_t AddrLoc = getOutputSection()->Addr + Offset;
RelExpr Expr = Rel.Expr;
+ if ((Expr == R_PC || Expr == R_GOT_PC) &&
+ (Config->EMachine == EM_ARC_COMPACT ||
+ Config->EMachine == EM_ARC_COMPACT2)) {
+ uint64_t M = 0;
+ if (Type == R_ARC_32_PCREL || Type == R_...
2017 Sep 18
1
Do I need to modify the AddrLoc of LLD for ARC target?
...r this when resolving the relocation
>> R_ARM_THM_CALL.
>>
>> To handle the alignment difference for this one special case in lld I
>> accounted for the alignment difference in relocateOne. You may be able
>> to use a similar method for Arc rather than writing modifyARCAddrLoc.
>> Again I know nothing about Arc so you'll need to look at the
>> Architecture reference manual to understand what the instruction the
>> relocation applies to works.
>>
>> Peter
>>
>>
>> On 15 September 2017 at 04:19, Leslie Zhai <lesliezhai...
2017 Sep 14
4
Do I need to modify the AddrLoc of LLD for ARC target?
....input_section->output_offset + (reloc_data.reloc_offset -
> (reloc_data.bitsize >= 32 ? 4 : 0))) & ~0x3;
>
> for example, R_ARC_S25W_PCREL's bitsize < 32, P = (6 + 0 + 0 - 0) & ~0x3 =
> 4, when vma is 6, output and reloc offset is 0.
>
> How LLD calculates P (AddrLoc)?
>
> P = getOutputSection()->Addr + getOffset(Rel.Offset);
>
> for example, the same high address 0x6, LLD's P is 8, different with arc-ld?
> so do I need to modify the value of P for R_PC case in the getRelocTargetVA?
> please give me some hints, thanks a lot!
>
>
&...