[PATCH] D37615: [AVR] implement the relocation of LDI for LLD
Leslie Zhai via Phabricator via llvm-commits
llvm-commits at lists.llvm.org
Sat Sep 9 19:54:27 PDT 2017
xiangzhai added a comment.
Dear Rui,
幸せな先生の日!
> doing nothing for R_AVR_HI8_LDI seems apparently odd.
00000000 <main>:
0: 0e 94 00 00 call 0 ; 0x0 <main>
4: 10 e0 ldi r17, 0x00 ; 0
6: 20 e0 ldi r18, 0x00 ; 0
8: 30 e0 ldi r19, 0x00 ; 0
0000000a <foo>:
a: 0c 94 00 00 jmp 0 ; 0x0 <main>
relocated to by avr-ld:
00000000 <__ctors_end>:
0: 0e 94 05 00 call 0xa ; 0xa <foo>
4: 1a e0 ldi r17, 0x0A ; 10
6: 20 e0 ldi r18, 0x00 ; 0 <-- *without* change at all?
8: 3a e0 ldi r19, 0x0A ; 10
0000000a <foo>:
a: 0c 94 05 00 jmp 0xa ; 0xa <foo>
so I argue that it doesn't need to be relocated (doing nothing) for R_AVR_HI8_LDI, sorry for my foolish...
> Firstly, can you give me a documentation about AVR relocations?
There is no exp about AVR relocation in the http://www.atmel.com/images/Atmel-0856-AVR-Instruction-Set-Manual.pdf no even such lesson in my assembly language or compiler principle courses 15 years ago, but only binutils's source code <http://sourceware.org/git/gitweb.cgi?p=binutils-gdb.git;a=blob;f=bfd/elf32-avr.c;h=830da288f3cd3e6a070b5ced908ca05d6b11e4b0;hb=HEAD> about it.
https://reviews.llvm.org/D32991 I can *not* understand your relocation method <https://reviews.llvm.org/D32991#779825> about `0e 94 00 00` -> `0e 94 05 00` for `0xa` relocation address. why not `write16le(Loc, read16le(Loc));` for `0e 94`?
> took 70+ messages and more than a month to review despite its smallness, and I don't want both of us to spend that much time this time.
先生 sorry for wasting your time! I need to go deepin to binutils to learn how to relocate, thanks again for your help Orz
Regards,
Leslie Zhai
Repository:
rL LLVM
https://reviews.llvm.org/D37615
More information about the llvm-commits
mailing list